Replace session with user in various files

This change mainly involves replacing 'session' with 'user' in various files in several applications. The function calls related to 'session' have been refactored to reflect 'user'. The '@supabase/supabase-js' package dependency has
This commit is contained in:
giancarlo
2024-03-28 21:14:12 +08:00
parent 15d4533949
commit 348eec8495
14 changed files with 50 additions and 117 deletions

View File

@@ -38,7 +38,6 @@ export function AppSidebar(props: {
account: string;
accounts: AccountModel[];
collapsed: boolean;
session: Session | null;
}) {
return (
<Sidebar collapsed={props.collapsed}>
@@ -48,7 +47,6 @@ export function AppSidebar(props: {
setCollapsed={setCollapsed}
account={props.account}
accounts={props.accounts}
session={props.session}
/>
)}
</Sidebar>
@@ -58,7 +56,6 @@ export function AppSidebar(props: {
function SidebarContainer(props: {
account: string;
accounts: AccountModel[];
session: Session | null;
collapsed: boolean;
setCollapsed: (collapsed: boolean) => void;
}) {
@@ -89,10 +86,7 @@ function SidebarContainer(props: {
<div className={'absolute bottom-4 left-0 w-full'}>
<SidebarContent>
<ProfileAccountDropdownContainer
session={props.session}
collapsed={props.collapsed}
/>
<ProfileAccountDropdownContainer collapsed={props.collapsed} />
<AppSidebarFooterMenu
collapsed={props.collapsed}

View File

@@ -25,12 +25,10 @@ export const loadTeamWorkspace = cache(async (accountSlug: string) => {
});
const accountsPromise = client.from('user_accounts').select('*');
const userSessionPromise = client.auth.getSession();
const [accountResult, accountsResult, sessionResult] = await Promise.all([
const [accountResult, accountsResult] = await Promise.all([
accountPromise,
accountsPromise,
userSessionPromise,
]);
if (accountResult.error) {
@@ -53,13 +51,8 @@ export const loadTeamWorkspace = cache(async (accountSlug: string) => {
throw accountsResult.error;
}
if (sessionResult.error ?? !sessionResult.data.session?.user) {
throw new Error('User session not found');
}
return {
account: accountData,
accounts: accountsResult.data,
user: sessionResult.data.session.user,
};
});

View File

@@ -2,7 +2,6 @@ import { use } from 'react';
import { parseSidebarStateCookie } from '@kit/shared/cookies/sidebar-state.cookie';
import { parseThemeCookie } from '@kit/shared/cookies/theme.cookie';
import { getSupabaseServerComponentClient } from '@kit/supabase/server-component-client';
import { Page } from '@kit/ui/page';
import { AppSidebar } from '~/(dashboard)/home/[account]/_components/app-sidebar';
@@ -19,10 +18,7 @@ function TeamWorkspaceLayout({
}: React.PropsWithChildren<{
params: Params;
}>) {
const [data, session] = use(
Promise.all([loadTeamWorkspace(params.account), loadSession()]),
);
const data = use(loadTeamWorkspace(params.account));
const ui = getUIStateCookies();
const sidebarCollapsed = ui.sidebarState === 'collapsed';
@@ -38,7 +34,6 @@ function TeamWorkspaceLayout({
<AppSidebar
collapsed={sidebarCollapsed}
account={params.account}
session={session}
accounts={accounts}
/>
}
@@ -56,18 +51,3 @@ function getUIStateCookies() {
sidebarState: parseSidebarStateCookie(),
};
}
async function loadSession() {
const client = getSupabaseServerComponentClient();
const {
data: { session },
error,
} = await client.auth.getSession();
if (error) {
throw error;
}
return session;
}

View File

@@ -11,7 +11,7 @@ import { personalAccountSidebarConfig } from '~/config/personal-account-sidebar.
export function HomeSidebar() {
const collapsed = getSidebarCollapsed();
const { session, accounts } = use(loadUserWorkspace());
const { accounts } = use(loadUserWorkspace());
return (
<Sidebar collapsed={collapsed}>
@@ -25,10 +25,7 @@ export function HomeSidebar() {
<div className={'absolute bottom-4 left-0 w-full'}>
<SidebarContent>
<ProfileAccountDropdownContainer
session={session}
collapsed={collapsed}
/>
<ProfileAccountDropdownContainer collapsed={collapsed} />
</SidebarContent>
</div>
</Sidebar>

View File

@@ -1,18 +1,15 @@
'use client';
import type { Session } from '@supabase/supabase-js';
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 featuresFlagConfig from '~/config/feature-flags.config';
import pathsConfig from '~/config/paths.config';
export function ProfileAccountDropdownContainer(props: {
collapsed: boolean;
session: Session | null;
}) {
export function ProfileAccountDropdownContainer(props: { collapsed: boolean }) {
const signOut = useSignOut();
const user = useUser();
return (
<div className={props.collapsed ? '' : 'w-full'}>
@@ -25,7 +22,7 @@ export function ProfileAccountDropdownContainer(props: {
}}
className={'w-full'}
showProfileName={!props.collapsed}
session={props.session}
user={user.data ?? null}
signOutRequested={() => signOut.mutateAsync()}
/>
</div>

View File

@@ -3,32 +3,13 @@ import { cache } from 'react';
import { getSupabaseServerComponentClient } from '@kit/supabase/server-component-client';
export const loadUserWorkspace = cache(async () => {
const [accounts, session] = await Promise.all([
loadUserAccounts(),
loadSession(),
]);
const accounts = await loadUserAccounts();
return {
accounts,
session,
};
});
async function loadSession() {
const client = getSupabaseServerComponentClient();
const {
data: { session },
error,
} = await client.auth.getSession();
if (error) {
throw error;
}
return session;
}
async function loadUserAccounts() {
const client = getSupabaseServerComponentClient();