From 27533c94e6292863f87a150b263fbfb2f2cd2684 Mon Sep 17 00:00:00 2001 From: gbuomprisco Date: Wed, 10 Jul 2024 09:26:25 +0800 Subject: [PATCH] Refactor user authorization in AdminSidebar The commit simplifies user authorization in 'AdminSidebar' component by removing unnecessary imports and functions and passing user directly as a prop instead. This change optimizes code readability and makes user authorization more efficient. --- apps/web/app/admin/_components/admin-sidebar.tsx | 15 +++------------ apps/web/app/admin/layout.tsx | 7 +++++-- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/apps/web/app/admin/_components/admin-sidebar.tsx b/apps/web/app/admin/_components/admin-sidebar.tsx index 5ba0575e1..c051d2728 100644 --- a/apps/web/app/admin/_components/admin-sidebar.tsx +++ b/apps/web/app/admin/_components/admin-sidebar.tsx @@ -1,9 +1,7 @@ -import { redirect } from 'next/navigation'; +import { User } from '@supabase/supabase-js'; import { Home, Users } from 'lucide-react'; -import { requireUser } from '@kit/supabase/require-user'; -import { getSupabaseServerActionClient } from '@kit/supabase/server-actions-client'; import { Sidebar, SidebarContent, @@ -14,14 +12,7 @@ import { import { AppLogo } from '~/components/app-logo'; import { ProfileAccountDropdownContainer } from '~/components/personal-account-dropdown-container'; -export async function AdminSidebar() { - const client = getSupabaseServerActionClient(); - const user = await requireUser(client); - - if (user.error) { - redirect(user.redirectTo); - } - +export function AdminSidebar(props: { user: User }) { return ( @@ -44,7 +35,7 @@ export async function AdminSidebar() { - + ); diff --git a/apps/web/app/admin/layout.tsx b/apps/web/app/admin/layout.tsx index 67caeab9c..db1792771 100644 --- a/apps/web/app/admin/layout.tsx +++ b/apps/web/app/admin/layout.tsx @@ -2,16 +2,19 @@ import { Page, PageMobileNavigation, PageNavigation } from '@kit/ui/page'; import { AdminSidebar } from '~/admin/_components/admin-sidebar'; import { AdminMobileNavigation } from '~/admin/_components/mobile-navigation'; +import { requireUserInServerComponent } from '~/lib/server/require-user-in-server-component'; export const metadata = { title: `Super Admin`, }; -export default function AdminLayout(props: React.PropsWithChildren) { +export default async function AdminLayout(props: React.PropsWithChildren) { + const user = await requireUserInServerComponent(); + return ( - +