diff --git a/apps/compliance-portal/index.html b/apps/compliance-portal/index.html index 83ed320a3..a2c4ffedd 100644 --- a/apps/compliance-portal/index.html +++ b/apps/compliance-portal/index.html @@ -13,12 +13,15 @@ diff --git a/apps/compliance-portal/src/_locales/de-DE.json b/apps/compliance-portal/src/_locales/de-DE.json index 7731eb4a7..87cb15da3 100644 --- a/apps/compliance-portal/src/_locales/de-DE.json +++ b/apps/compliance-portal/src/_locales/de-DE.json @@ -16,7 +16,9 @@ "subscribe": "Aktualisierungen abonnieren", "subscribed": "Aktualisierungen abonniert", "signOut": "Abmelden", - "signOutFailed": "Abmelden nicht möglich" + "signOutFailed": "Abmelden nicht möglich", + "switchToDarkMode": "Zum dunklen Modus wechseln", + "switchToLightMode": "Zum hellen Modus wechseln" }, "common": { "cancel": "Abbrechen", diff --git a/apps/compliance-portal/src/_locales/en-US.json b/apps/compliance-portal/src/_locales/en-US.json index 453cfa103..04a2e59da 100644 --- a/apps/compliance-portal/src/_locales/en-US.json +++ b/apps/compliance-portal/src/_locales/en-US.json @@ -16,7 +16,9 @@ "subscribe": "Subscribe to updates", "subscribed": "Subscribed to updates", "signOut": "Sign out", - "signOutFailed": "Cannot sign out" + "signOutFailed": "Cannot sign out", + "switchToDarkMode": "Switch to dark mode", + "switchToLightMode": "Switch to light mode" }, "locale": { "label": "Language", diff --git a/apps/compliance-portal/src/_locales/es-ES.json b/apps/compliance-portal/src/_locales/es-ES.json index 2f6f611bd..9f792e358 100644 --- a/apps/compliance-portal/src/_locales/es-ES.json +++ b/apps/compliance-portal/src/_locales/es-ES.json @@ -16,7 +16,9 @@ "subscribe": "Suscribirse a las actualizaciones", "subscribed": "Suscrito a las actualizaciones", "signOut": "Cerrar sesión", - "signOutFailed": "No se puede cerrar sesión" + "signOutFailed": "No se puede cerrar sesión", + "switchToDarkMode": "Cambiar a modo oscuro", + "switchToLightMode": "Cambiar a modo claro" }, "common": { "cancel": "Cancelar", diff --git a/apps/compliance-portal/src/_locales/fr-FR.json b/apps/compliance-portal/src/_locales/fr-FR.json index f504ad2ed..c03e76b59 100644 --- a/apps/compliance-portal/src/_locales/fr-FR.json +++ b/apps/compliance-portal/src/_locales/fr-FR.json @@ -16,7 +16,9 @@ "subscribe": "S'abonner aux mises à jour", "subscribed": "Abonné aux mises à jour", "signOut": "Se déconnecter", - "signOutFailed": "Impossible de se déconnecter" + "signOutFailed": "Impossible de se déconnecter", + "switchToDarkMode": "Passer en mode sombre", + "switchToLightMode": "Passer en mode clair" }, "common": { "cancel": "Annuler", diff --git a/apps/compliance-portal/src/_locales/id-ID.json b/apps/compliance-portal/src/_locales/id-ID.json index 144ac7860..7dd938dfd 100644 --- a/apps/compliance-portal/src/_locales/id-ID.json +++ b/apps/compliance-portal/src/_locales/id-ID.json @@ -16,7 +16,9 @@ "subscribe": "Berlangganan pembaruan", "subscribed": "Sudah berlangganan pembaruan", "signOut": "Keluar", - "signOutFailed": "Tidak dapat keluar" + "signOutFailed": "Tidak dapat keluar", + "switchToDarkMode": "Beralih ke mode gelap", + "switchToLightMode": "Beralih ke mode terang" }, "common": { "cancel": "Batal", diff --git a/apps/compliance-portal/src/_locales/it-IT.json b/apps/compliance-portal/src/_locales/it-IT.json index 29be537c5..a8baf0968 100644 --- a/apps/compliance-portal/src/_locales/it-IT.json +++ b/apps/compliance-portal/src/_locales/it-IT.json @@ -16,7 +16,9 @@ "subscribe": "Iscriviti agli aggiornamenti", "subscribed": "Iscritto agli aggiornamenti", "signOut": "Esci", - "signOutFailed": "Impossibile uscire" + "signOutFailed": "Impossibile uscire", + "switchToDarkMode": "Passa alla modalità scura", + "switchToLightMode": "Passa alla modalità chiara" }, "common": { "cancel": "Annulla", diff --git a/apps/compliance-portal/src/_locales/ja-JP.json b/apps/compliance-portal/src/_locales/ja-JP.json index 596679c21..e15eaf6c9 100644 --- a/apps/compliance-portal/src/_locales/ja-JP.json +++ b/apps/compliance-portal/src/_locales/ja-JP.json @@ -16,7 +16,9 @@ "subscribe": "アップデートを購読", "subscribed": "アップデート購読中", "signOut": "サインアウト", - "signOutFailed": "サインアウトできません" + "signOutFailed": "サインアウトできません", + "switchToDarkMode": "ダークモードに切り替え", + "switchToLightMode": "ライトモードに切り替え" }, "common": { "cancel": "キャンセル", diff --git a/apps/compliance-portal/src/_locales/ko-KR.json b/apps/compliance-portal/src/_locales/ko-KR.json index 9ac725e0a..fc07107fb 100644 --- a/apps/compliance-portal/src/_locales/ko-KR.json +++ b/apps/compliance-portal/src/_locales/ko-KR.json @@ -16,7 +16,9 @@ "subscribe": "업데이트 구독", "subscribed": "업데이트 구독 중", "signOut": "로그아웃", - "signOutFailed": "로그아웃할 수 없습니다" + "signOutFailed": "로그아웃할 수 없습니다", + "switchToDarkMode": "다크 모드로 전환", + "switchToLightMode": "라이트 모드로 전환" }, "common": { "cancel": "취소", diff --git a/apps/compliance-portal/src/_locales/pl-PL.json b/apps/compliance-portal/src/_locales/pl-PL.json index 5b500d7f9..e0203a311 100644 --- a/apps/compliance-portal/src/_locales/pl-PL.json +++ b/apps/compliance-portal/src/_locales/pl-PL.json @@ -16,7 +16,9 @@ "subscribe": "Subskrybuj aktualizacje", "subscribed": "Subskrybowano aktualizacje", "signOut": "Wyloguj się", - "signOutFailed": "Nie można się wylogować" + "signOutFailed": "Nie można się wylogować", + "switchToDarkMode": "Przełącz na tryb ciemny", + "switchToLightMode": "Przełącz na tryb jasny" }, "common": { "cancel": "Anuluj", diff --git a/apps/compliance-portal/src/_locales/pt-PT.json b/apps/compliance-portal/src/_locales/pt-PT.json index cf2e2a883..9bfa4ad45 100644 --- a/apps/compliance-portal/src/_locales/pt-PT.json +++ b/apps/compliance-portal/src/_locales/pt-PT.json @@ -16,7 +16,9 @@ "subscribe": "Subscrever atualizações", "subscribed": "Subscrito às atualizações", "signOut": "Terminar sessão", - "signOutFailed": "Não é possível terminar a sessão" + "signOutFailed": "Não é possível terminar a sessão", + "switchToDarkMode": "Mudar para o modo escuro", + "switchToLightMode": "Mudar para o modo claro" }, "common": { "cancel": "Cancelar", diff --git a/apps/compliance-portal/src/_locales/tr-TR.json b/apps/compliance-portal/src/_locales/tr-TR.json index 74918721d..b9892b765 100644 --- a/apps/compliance-portal/src/_locales/tr-TR.json +++ b/apps/compliance-portal/src/_locales/tr-TR.json @@ -16,7 +16,9 @@ "subscribe": "Güncellemelere abone ol", "subscribed": "Güncellemelere abone olundu", "signOut": "Çıkış yap", - "signOutFailed": "Çıkış yapılamıyor" + "signOutFailed": "Çıkış yapılamıyor", + "switchToDarkMode": "Karanlık moda geç", + "switchToLightMode": "Aydınlık moda geç" }, "common": { "cancel": "İptal", diff --git a/apps/compliance-portal/src/_locales/uk-UA.json b/apps/compliance-portal/src/_locales/uk-UA.json index 1904b71dc..1db13c4b2 100644 --- a/apps/compliance-portal/src/_locales/uk-UA.json +++ b/apps/compliance-portal/src/_locales/uk-UA.json @@ -16,7 +16,9 @@ "subscribe": "Підписатися на оновлення", "subscribed": "Підписано на оновлення", "signOut": "Вийти", - "signOutFailed": "Не вдалося вийти" + "signOutFailed": "Не вдалося вийти", + "switchToDarkMode": "Перейти в темний режим", + "switchToLightMode": "Перейти у світлий режим" }, "common": { "cancel": "Скасувати", diff --git a/apps/compliance-portal/src/_locales/zh-CN.json b/apps/compliance-portal/src/_locales/zh-CN.json index 9d8eb9012..ca0e71a04 100644 --- a/apps/compliance-portal/src/_locales/zh-CN.json +++ b/apps/compliance-portal/src/_locales/zh-CN.json @@ -16,7 +16,9 @@ "subscribe": "订阅更新", "subscribed": "已订阅更新", "signOut": "退出登录", - "signOutFailed": "无法退出登录" + "signOutFailed": "无法退出登录", + "switchToDarkMode": "切换到深色模式", + "switchToLightMode": "切换到浅色模式" }, "common": { "cancel": "取消", diff --git a/apps/compliance-portal/src/components/TopBar/TopBarMobileNav.tsx b/apps/compliance-portal/src/components/TopBar/TopBarMobileNav.tsx index d360604ec..0fa32ab1b 100644 --- a/apps/compliance-portal/src/components/TopBar/TopBarMobileNav.tsx +++ b/apps/compliance-portal/src/components/TopBar/TopBarMobileNav.tsx @@ -23,7 +23,9 @@ import { BellRingingIcon, ListIcon, LockSimpleIcon, + MoonIcon, SignOutIcon, + SunIcon, XIcon, } from "@phosphor-icons/react"; import { Button } from "@probo/ui/src/v2/Button/Button"; @@ -45,6 +47,7 @@ import { useLocation } from "react-router"; import { getSafeContinueUrl, redirectToInitiate } from "#/lib/auth/continueUrl"; import { useSignOut } from "#/lib/auth/useSignOut"; +import { useDisplayMode } from "#/lib/displayMode/useDisplayMode"; import { useLocalizedPath } from "#/lib/i18n/useLocale"; import { useSubscribeDialog } from "#/lib/mailingList/subscribeDialogContext"; @@ -75,6 +78,7 @@ export function TopBarMobileNav({ identityKey }: TopBarMobileNavProps) { const { pathname } = useLocation(); const { openSubscribe, isSubscribed, unsubscribe, isUnsubscribing } = useSubscribeDialog(); const [signOut, isSigningOut] = useSignOut(); + const { displayMode, toggleDisplayMode } = useDisplayMode(); const [open, setOpen] = useState(false); // Select menus portal to body at z-3 by default; mount them on the drawer // popup so they stack inside the modal layer (z-5) instead of under it. @@ -202,6 +206,20 @@ export function TopBarMobileNav({ identityKey }: TopBarMobileNavProps) { > {isSubscribed ? t("userMenu.subscribed") : t("userMenu.subscribe")} +