Files
myeasycms-v2/apps/web/app/(dashboard)/home/_lib/load-user-workspace.ts
giancarlo 67e9c8b676 Update Next.js version and improve session handling
Next.js version has been upgraded from 14.2.0-canary.58 to 14.2.0-canary.60 for performance and stability improvements. Additionally, account session handling has been improved by fetching the session data during server-side processing and passing it to various components, thus optimizing the user experience.
2024-04-06 14:34:05 +08:00

36 lines
798 B
TypeScript

import { cache } from 'react';
import { getSupabaseServerComponentClient } from '@kit/supabase/server-component-client';
export const loadUserWorkspace = cache(async () => {
const client = getSupabaseServerComponentClient();
const accounts = await loadUserAccounts(client);
const { data } = await client.auth.getSession();
return {
accounts,
session: data.session,
};
});
async function loadUserAccounts(
client: ReturnType<typeof getSupabaseServerComponentClient>,
) {
const { data: accounts, error } = await client
.from('user_accounts')
.select(`name, slug, picture_url`);
if (error) {
throw error;
}
return accounts.map(({ name, slug, picture_url }) => {
return {
label: name,
value: slug,
image: picture_url,
};
});
}