From 26eea1d971ced0fdc30a09409c268c83acec530f Mon Sep 17 00:00:00 2001 From: deetz99 Date: Mon, 21 Oct 2024 10:27:30 -0700 Subject: [PATCH 1/6] handle no reset function --- nuxt/layers/core/app/utils/resetPiniaStores.ts | 14 +++++++++++++- nuxt/layers/core/nuxt.config.ts | 3 ++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/nuxt/layers/core/app/utils/resetPiniaStores.ts b/nuxt/layers/core/app/utils/resetPiniaStores.ts index 33e9f89..f5be26c 100644 --- a/nuxt/layers/core/app/utils/resetPiniaStores.ts +++ b/nuxt/layers/core/app/utils/resetPiniaStores.ts @@ -4,14 +4,26 @@ import { getActivePinia } from 'pinia' interface ExtendedPinia extends Pinia { _s: Map; } + +/** + * Resets all Pinia stores that have a `$reset` method. +*/ export function resetPiniaStores (): void { const pinia = getActivePinia() as ExtendedPinia + const env = useRuntimeConfig().public.environment if (!pinia) { console.error('There are no stores') } + // null check still fails so must catch error instead pinia._s.forEach((store) => { - store.$reset() + try { + store.$reset() + } catch { + if (env === 'Development') { + console.warn(`Store "${store.$id}" does not implement $reset. Skipping reset.`) + } + } }) } diff --git a/nuxt/layers/core/nuxt.config.ts b/nuxt/layers/core/nuxt.config.ts index 11ab225..f4a9607 100644 --- a/nuxt/layers/core/nuxt.config.ts +++ b/nuxt/layers/core/nuxt.config.ts @@ -72,7 +72,8 @@ export default defineNuxtConfig({ ldClientId: process.env.NUXT_LD_CLIENT_ID || '', appName: process.env.npm_package_name || '', registryHomeURL: process.env.NUXT_REGISTRY_HOME_URL, - version: `BRD UI v${process.env.npm_package_version || ''}` + version: `BRD UI v${process.env.npm_package_version || ''}`, + environment: process.env.NUXT_ENVIRONMENT_HEADER || '' } }, From 6ee3cafbc60db0ed1b40ee6105875e7c1a662c26 Mon Sep 17 00:00:00 2001 From: deetz99 Date: Mon, 21 Oct 2024 11:46:33 -0700 Subject: [PATCH 2/6] add actions prop to page section component --- .../core/.playground/app/pages/index.vue | 16 ++++++- .../app/components/Connect/PageSection.vue | 45 ++++++++++++++----- 2 files changed, 50 insertions(+), 11 deletions(-) diff --git a/nuxt/layers/core/.playground/app/pages/index.vue b/nuxt/layers/core/.playground/app/pages/index.vue index 092bf0e..ef1bc61 100644 --- a/nuxt/layers/core/.playground/app/pages/index.vue +++ b/nuxt/layers/core/.playground/app/pages/index.vue @@ -2,6 +2,19 @@ const { isAuthenticated, login, logout } = useKeycloak() const ldStore = useConnectLaunchdarklyStore() +const actions = [ + { + label: 'test 1', + variant: 'outline', + click: () => console.log('clicked 1') + }, + { + label: 'test 2', + to: 'https://ui.nuxt.com/components/button#props', + external: true + } +] + setBreadcrumbs([ { label: 'test', to: useRuntimeConfig().public.registryHomeURL }, { label: 'test 2', to: useRuntimeConfig().public.registryHomeURL }, @@ -29,7 +42,8 @@ onMounted(() => { some stuff diff --git a/nuxt/layers/core/app/components/Connect/PageSection.vue b/nuxt/layers/core/app/components/Connect/PageSection.vue index 269c765..95d9f1c 100644 --- a/nuxt/layers/core/app/components/Connect/PageSection.vue +++ b/nuxt/layers/core/app/components/Connect/PageSection.vue @@ -1,4 +1,12 @@ From fa36d9e5a7268afd07fc7b505d8df04cfb4fbc3b Mon Sep 17 00:00:00 2001 From: deetz99 Date: Mon, 21 Oct 2024 11:52:01 -0700 Subject: [PATCH 3/6] add italic option to i18n helper component --- nuxt/layers/core/.playground/app/pages/index.vue | 2 ++ nuxt/layers/core/app/components/Connect/I18n/Bold.vue | 4 +++- nuxt/layers/core/app/locales/en-CA.ts | 3 ++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/nuxt/layers/core/.playground/app/pages/index.vue b/nuxt/layers/core/.playground/app/pages/index.vue index ef1bc61..93f6b6c 100644 --- a/nuxt/layers/core/.playground/app/pages/index.vue +++ b/nuxt/layers/core/.playground/app/pages/index.vue @@ -47,5 +47,7 @@ onMounted(() => { > some stuff + + diff --git a/nuxt/layers/core/app/components/Connect/I18n/Bold.vue b/nuxt/layers/core/app/components/Connect/I18n/Bold.vue index d90041f..86f0676 100644 --- a/nuxt/layers/core/app/components/Connect/I18n/Bold.vue +++ b/nuxt/layers/core/app/components/Connect/I18n/Bold.vue @@ -11,7 +11,9 @@ const textToDisplay = computed(() => { const translationProps = { ...attrs, boldStart: '', - boldEnd: '' + boldEnd: '', + italicStart: '', + italicEnd: '' } return $sanitize(t(props.translationPath, translationProps)) }) diff --git a/nuxt/layers/core/app/locales/en-CA.ts b/nuxt/layers/core/app/locales/en-CA.ts index 5658f92..0bf2661 100644 --- a/nuxt/layers/core/app/locales/en-CA.ts +++ b/nuxt/layers/core/app/locales/en-CA.ts @@ -64,7 +64,8 @@ export default { test: { i18nBold: { strong: 'This should have {boldStart} bold {boldEnd} text', - strongWithProps: 'This should have {boldStart} bold {boldEnd} text and allow a {prop}' + strongWithProps: 'This should have {boldStart} bold {boldEnd} text and allow a {prop}', + italic: 'Italic test {italicStart} goes here {italicEnd}.' } } } From 814deb95c6884cb8649f3a9b4b9966fb23f44204 Mon Sep 17 00:00:00 2001 From: deetz99 Date: Mon, 21 Oct 2024 11:56:09 -0700 Subject: [PATCH 4/6] update redirect url to location.href --- nuxt/layers/core/.playground/app/pages/test-2.vue | 12 ++++++++++++ nuxt/layers/core/app/composables/useKeycloak.ts | 6 +++--- 2 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 nuxt/layers/core/.playground/app/pages/test-2.vue diff --git a/nuxt/layers/core/.playground/app/pages/test-2.vue b/nuxt/layers/core/.playground/app/pages/test-2.vue new file mode 100644 index 0000000..9347324 --- /dev/null +++ b/nuxt/layers/core/.playground/app/pages/test-2.vue @@ -0,0 +1,12 @@ + + diff --git a/nuxt/layers/core/app/composables/useKeycloak.ts b/nuxt/layers/core/app/composables/useKeycloak.ts index a7bec8a..b773f8e 100644 --- a/nuxt/layers/core/app/composables/useKeycloak.ts +++ b/nuxt/layers/core/app/composables/useKeycloak.ts @@ -1,5 +1,5 @@ export const useKeycloak = () => { - const { $keycloak, $i18n } = useNuxtApp() + const { $keycloak } = useNuxtApp() /** * Logs the user in using the idpHint 'bcsc', 'idir' or 'bceid' and an optional redirect URL. @@ -9,7 +9,7 @@ export const useKeycloak = () => { */ function login (idpHint: IdpHint, redirect?: string): Promise { const loginRedirectUrl = sessionStorage.getItem(ConnectStorageKeys.LOGIN_REDIRECT_URL) - const redirectUri = redirect ?? loginRedirectUrl ?? `${location.origin}/${$i18n.locale.value}` + const redirectUri = redirect ?? loginRedirectUrl ?? window.location.href return $keycloak.login( { @@ -26,7 +26,7 @@ export const useKeycloak = () => { */ function logout (redirect?: string): Promise { const logoutRedirectUrl = sessionStorage.getItem(ConnectStorageKeys.LOGOUT_REDIRECT_URL) - const redirectUri = redirect ?? logoutRedirectUrl ?? `${location.origin}/${$i18n.locale.value}` + const redirectUri = redirect ?? logoutRedirectUrl ?? window.location.href resetPiniaStores() return $keycloak.logout({ From 70bfbae3896aeb328d3f7c4474ee23ed8f7ddeb6 Mon Sep 17 00:00:00 2001 From: deetz99 Date: Mon, 21 Oct 2024 11:56:57 -0700 Subject: [PATCH 5/6] bump layer version --- nuxt/layers/core/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nuxt/layers/core/package.json b/nuxt/layers/core/package.json index f500e6a..01f7f4c 100644 --- a/nuxt/layers/core/package.json +++ b/nuxt/layers/core/package.json @@ -1,7 +1,7 @@ { "name": "@daxiom/nuxt-core-layer-test", "type": "module", - "version": "0.0.7", + "version": "0.0.8", "main": "./nuxt.config.ts", "scripts": { "dev": "nuxi dev .playground --port 3000", From a25c70b733f9e7721ad77b37fada6aa13c5f616d Mon Sep 17 00:00:00 2001 From: deetz99 Date: Mon, 21 Oct 2024 12:02:02 -0700 Subject: [PATCH 6/6] remove unecessary sanitize from i18n helper --- nuxt/layers/core/app/components/Connect/I18n/Bold.vue | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/nuxt/layers/core/app/components/Connect/I18n/Bold.vue b/nuxt/layers/core/app/components/Connect/I18n/Bold.vue index 86f0676..b0cb613 100644 --- a/nuxt/layers/core/app/components/Connect/I18n/Bold.vue +++ b/nuxt/layers/core/app/components/Connect/I18n/Bold.vue @@ -5,7 +5,6 @@ const props = defineProps({ const attrs = useAttrs() const { t } = useI18n() -const { $sanitize } = useNuxtApp() const textToDisplay = computed(() => { const translationProps = { @@ -15,7 +14,7 @@ const textToDisplay = computed(() => { italicStart: '', italicEnd: '' } - return $sanitize(t(props.translationPath, translationProps)) + return t(props.translationPath, translationProps) })