Refined both admin and marketing layouts for a clearer design. Newly added components for the admin page include admin-account-page, admin-members-table and admin-memberships-table. Also included in this update are route renaming, minor text edits and corrections in the code.
40 lines
1.1 KiB
TypeScript
40 lines
1.1 KiB
TypeScript
import { getSupabaseServerComponentClient } from '@kit/supabase/server-component-client';
|
|
import { Separator } from '@kit/ui/separator';
|
|
|
|
import { SiteFooter } from '~/(marketing)/_components/site-footer';
|
|
import { SiteHeader } from '~/(marketing)/_components/site-header';
|
|
import { withI18n } from '~/lib/i18n/with-i18n';
|
|
|
|
async function SiteLayout(props: React.PropsWithChildren) {
|
|
const user = await getUser();
|
|
|
|
return (
|
|
<div className={'flex flex-col space-y-6 xl:space-y-10 2xl:space-y-12'}>
|
|
<SiteHeader user={user} />
|
|
|
|
{props.children}
|
|
|
|
<Separator />
|
|
|
|
<SiteFooter />
|
|
</div>
|
|
);
|
|
}
|
|
|
|
export default withI18n(SiteLayout);
|
|
|
|
async function getUser() {
|
|
const client = getSupabaseServerComponentClient();
|
|
|
|
// Supabase is going to be complaining about this line
|
|
// since we use getSession instead of getUser
|
|
// we don't quite care because we only need to know if the user is logged in
|
|
// to display the user menu in the header.
|
|
// There is no need to ping the server while navigating to marketing pages.
|
|
const {
|
|
data: { session },
|
|
} = await client.auth.getSession();
|
|
|
|
return session?.user;
|
|
}
|