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.
This commit is contained in:
@@ -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 (
|
||||
<Sidebar>
|
||||
<SidebarContent className={'py-4'}>
|
||||
@@ -44,7 +35,7 @@ export async function AdminSidebar() {
|
||||
</SidebarContent>
|
||||
|
||||
<SidebarContent className={'absolute bottom-4'}>
|
||||
<ProfileAccountDropdownContainer user={user.data} collapsed={false} />
|
||||
<ProfileAccountDropdownContainer user={props.user} collapsed={false} />
|
||||
</SidebarContent>
|
||||
</Sidebar>
|
||||
);
|
||||
|
||||
@@ -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 (
|
||||
<Page style={'sidebar'}>
|
||||
<PageNavigation>
|
||||
<AdminSidebar />
|
||||
<AdminSidebar user={user} />
|
||||
</PageNavigation>
|
||||
|
||||
<PageMobileNavigation>
|
||||
|
||||
Reference in New Issue
Block a user