import { cache } from 'react'; import { requireUserInServerComponent } from '@/lib/server/require-user-in-server-component'; import { createAccountsApi } from '@kit/accounts/api'; import { getSupabaseServerClient } from '@kit/supabase/server-client'; export type UserAccount = Awaited< ReturnType >; /** * @name loadUserAccount * @description * Load the user account. It's a cached per-request function that fetches the user workspace data. * It can be used across the server components to load the user workspace data. */ export const loadHasTeamMembership = cache(hasAccountTeamMembershipLoader); export async function loadHasAccountTeamMembership() { const user = await requireUserInServerComponent(); return user?.identities?.[0]?.id ? await loadHasTeamMembership(user?.identities?.[0]?.id) : null; } async function hasAccountTeamMembershipLoader( accountId: string, ): Promise { const client = getSupabaseServerClient(); const api = createAccountsApi(client); return api.hasAccountTeamMembership(accountId); }