import { ServerDataLoader } from '@makerkit/data-loader-supabase-nextjs'; import { AdminAccountsTable } from '@kit/admin/components/admin-accounts-table'; import { AdminGuard } from '@kit/admin/components/admin-guard'; import { getSupabaseServerComponentClient } from '@kit/supabase/server-component-client'; import { PageBody, PageHeader } from '@kit/ui/page'; interface SearchParams { page?: string; account_type?: 'all' | 'team' | 'personal'; query?: string; } export const metadata = { title: `Accounts`, }; function AccountsPage({ searchParams }: { searchParams: SearchParams }) { const client = getSupabaseServerComponentClient({ admin: true, }); const page = searchParams.page ? parseInt(searchParams.page) : 1; const filters = getFilters(searchParams); return ( <> {({ data, page, pageSize, pageCount }) => { return ( ); }} ); } function getFilters(params: SearchParams) { const filters: Record< string, { eq?: boolean | string; like?: string; } > = {}; if (params.account_type && params.account_type !== 'all') { filters.is_personal_account = { eq: params.account_type === 'personal', }; } if (params.query) { filters.name = { like: `%${params.query}%`, }; } return filters; } export default AdminGuard(AccountsPage);