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.
36 lines
798 B
TypeScript
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,
|
|
};
|
|
});
|
|
}
|