* Fix: fix accounts view, menu * add migration * add application_role to account-related fields
62 lines
1.5 KiB
TypeScript
62 lines
1.5 KiB
TypeScript
'use client';
|
|
|
|
import type { User } from '@supabase/supabase-js';
|
|
|
|
import { PersonalAccountDropdown } from '@kit/accounts/personal-account-dropdown';
|
|
import { ApplicationRole } from '@kit/accounts/types/accounts';
|
|
import { useSignOut } from '@kit/supabase/hooks/use-sign-out';
|
|
import { useUser } from '@kit/supabase/hooks/use-user';
|
|
|
|
import featuresFlagConfig from '~/config/feature-flags.config';
|
|
import pathsConfig from '~/config/paths.config';
|
|
|
|
const paths = {
|
|
home: pathsConfig.app.home,
|
|
admin: pathsConfig.app.admin,
|
|
doctor: pathsConfig.app.doctor,
|
|
personalAccountSettings: pathsConfig.app.personalAccountSettings,
|
|
};
|
|
|
|
const features = {
|
|
enableThemeToggle: featuresFlagConfig.enableThemeToggle,
|
|
};
|
|
|
|
export function ProfileAccountDropdownContainer(props: {
|
|
user?: User;
|
|
showProfileName?: boolean;
|
|
|
|
account?: {
|
|
id: string | null;
|
|
name: string | null;
|
|
picture_url: string | null;
|
|
application_role: ApplicationRole | null;
|
|
};
|
|
accounts: {
|
|
label: string | null;
|
|
value: string | null;
|
|
image?: string | null;
|
|
application_role: ApplicationRole | null;
|
|
}[];
|
|
}) {
|
|
const signOut = useSignOut();
|
|
const user = useUser(props.user);
|
|
const userData = user.data;
|
|
|
|
if (!userData) {
|
|
return null;
|
|
}
|
|
|
|
return (
|
|
<PersonalAccountDropdown
|
|
className={'w-full'}
|
|
paths={paths}
|
|
features={features}
|
|
user={userData}
|
|
account={props.account}
|
|
accounts={props.accounts}
|
|
signOutRequested={() => signOut.mutateAsync()}
|
|
showProfileName={props.showProfileName}
|
|
/>
|
|
);
|
|
}
|