Files
myeasycms-v2/apps/web/components/personal-account-dropdown-container.tsx
Giancarlo Buomprisco 7ebff31475 Next.js Supabase V3 (#463)
Version 3 of the kit:
- Radix UI replaced with Base UI (using the Shadcn UI patterns)
- next-intl replaces react-i18next
- enhanceAction deprecated; usage moved to next-safe-action
- main layout now wrapped with [locale] path segment
- Teams only mode
- Layout updates
- Zod v4
- Next.js 16.2
- Typescript 6
- All other dependencies updated
- Removed deprecated Edge CSRF
- Dynamic Github Action runner
2026-03-24 13:40:38 +08:00

51 lines
1.3 KiB
TypeScript

'use client';
import { PersonalAccountDropdown } from '@kit/accounts/personal-account-dropdown';
import { useSignOut } from '@kit/supabase/hooks/use-sign-out';
import { useUser } from '@kit/supabase/hooks/use-user';
import { JWTUserData } from '@kit/supabase/types';
import featuresFlagConfig from '~/config/feature-flags.config';
import pathsConfig from '~/config/paths.config';
const features = {
enableThemeToggle: featuresFlagConfig.enableThemeToggle,
};
export function ProfileAccountDropdownContainer(props: {
user?: JWTUserData | null;
showProfileName?: boolean;
accountSlug?: string;
account?: {
id: string | null;
name: string | null;
picture_url: string | null;
};
}) {
const signOut = useSignOut();
const user = useUser(props.user);
const userData = user.data;
if (!userData) {
return null;
}
const homePath =
featuresFlagConfig.enableTeamsOnly && props.accountSlug
? pathsConfig.app.accountHome.replace('[account]', props.accountSlug)
: pathsConfig.app.home;
return (
<PersonalAccountDropdown
className={'w-full'}
paths={{ home: homePath }}
features={features}
user={userData}
account={props.account}
signOutRequested={() => signOut.mutateAsync()}
showProfileName={props.showProfileName}
/>
);
}