This commit modifies several language labels and refines hooks related to 'teams' and 'billing' modules for better clarity and consistency. It also includes the deletion of unused locale files and package dependencies transfered to 'peerDependencies'. Lastly, it introduces minor enhancements in server command, error logging functionality, and scripts to interact with Stripe.
71 lines
1.7 KiB
TypeScript
71 lines
1.7 KiB
TypeScript
'use client';
|
|
|
|
import { Suspense } from 'react';
|
|
|
|
import Link from 'next/link';
|
|
|
|
import type { Session } from '@supabase/supabase-js';
|
|
|
|
import { ChevronRight } from 'lucide-react';
|
|
|
|
import { PersonalAccountDropdown } from '@kit/accounts/personal-account-dropdown';
|
|
import { useSignOut } from '@kit/supabase/hooks/use-sign-out';
|
|
import { useUserSession } from '@kit/supabase/hooks/use-user-session';
|
|
import { Button } from '@kit/ui/button';
|
|
import { If } from '@kit/ui/if';
|
|
import { Trans } from '@kit/ui/trans';
|
|
|
|
import pathsConfig from '~/config/paths.config';
|
|
|
|
export function SiteHeaderAccountSection(
|
|
props: React.PropsWithChildren<{
|
|
session: Session | null;
|
|
}>,
|
|
) {
|
|
if (!props.session) {
|
|
return <AuthButtons />;
|
|
}
|
|
|
|
return (
|
|
<SuspendedPersonalAccountDropdown session={props.session} />
|
|
);
|
|
}
|
|
|
|
function SuspendedPersonalAccountDropdown(props: { session: Session | null }) {
|
|
const signOut = useSignOut();
|
|
const userSession = useUserSession(props.session);
|
|
|
|
return (
|
|
<If condition={userSession.data} fallback={<AuthButtons />}>
|
|
{(session) => (
|
|
<PersonalAccountDropdown
|
|
paths={{
|
|
home: pathsConfig.app.home,
|
|
}}
|
|
session={session}
|
|
signOutRequested={() => signOut.mutateAsync()}
|
|
/>
|
|
)}
|
|
</If>
|
|
);
|
|
}
|
|
|
|
function AuthButtons() {
|
|
return (
|
|
<div className={'hidden space-x-2 lg:flex'}>
|
|
<Button variant={'link'}>
|
|
<Link href={pathsConfig.auth.signIn}>
|
|
<Trans i18nKey={'auth:signIn'} />
|
|
</Link>
|
|
</Button>
|
|
|
|
<Link href={pathsConfig.auth.signUp}>
|
|
<Button className={'rounded-full'}>
|
|
<Trans i18nKey={'auth:signUp'} />
|
|
<ChevronRight className={'h-4'} />
|
|
</Button>
|
|
</Link>
|
|
</div>
|
|
);
|
|
}
|