"use client" import { usePersistHydrated } from "@/hooks/use-persist-hydrated" import { useAuthStore } from "@/lib/api/auth-store" import { useAccountStore, useActiveAccount } from "@/lib/stores/account-store" /** Identity shown in header avatar / account menu (OIDC user, else active mail account). */ export function useChromeIdentity(): { name: string email: string firstName: string } | null { const authHydrated = usePersistHydrated(useAuthStore) const accountHydrated = usePersistHydrated(useAccountStore) const platformUser = useAuthStore((s) => s.user) const mailAccount = useActiveAccount() // Keep SSR and first client render identical until persist stores rehydrate. if (!authHydrated) return null if (!platformUser && !accountHydrated) return null if (platformUser) { return { name: platformUser.name, email: platformUser.email, firstName: platformUser.firstName, } } if (mailAccount) { const firstName = mailAccount.name.split(/\s+/)[0] ?? mailAccount.name return { name: mailAccount.name, email: mailAccount.email, firstName, } } return null }