fix: doesn't crash

This commit is contained in:
Nicholas Tindle
2025-02-05 17:10:21 -06:00
parent 3ac1ce5a3f
commit d476983bd2
3 changed files with 42 additions and 5 deletions

View File

@@ -63,6 +63,8 @@ const meta = {
argTypes: {
links: { control: "object" },
menuItemGroups: { control: "object" },
mockUser: { control: "object" },
mockClientProps: { control: "object" },
},
} satisfies Meta<typeof Navbar>;
@@ -73,6 +75,22 @@ export const Default: Story = {
args: {
links: defaultLinks,
menuItemGroups: defaultMenuItemGroups,
mockUser: {
id: "123",
email: "test@test.com",
user_metadata: {
name: "Test User",
},
app_metadata: {
provider: "email",
},
aud: "test",
created_at: new Date().toISOString(),
},
mockClientProps: {
credits: 1500,
profile: mockProfileData,
},
},
parameters: {
mockBackend: {

View File

@@ -9,6 +9,8 @@ import { ProfileDetails } from "@/lib/autogpt-server-api/types";
import { NavbarLink } from "./NavbarLink";
import getServerUser from "@/lib/supabase/getServerUser";
import BackendAPI from "@/lib/autogpt-server-api";
import { User } from "@supabase/supabase-js";
import MockClient, { MockClientProps } from "@/lib/autogpt-server-api/mock_client";
// Disable theme toggle for now
// import { ThemeToggle } from "./ThemeToggle";
@@ -29,21 +31,34 @@ interface NavbarProps {
onClick?: () => void;
}[];
}[];
mockUser: User
mockClientProps?: MockClientProps;
}
async function getProfileData() {
async function getProfileData(mockClientProps?: MockClientProps) {
if (mockClientProps) {
const api = new MockClient(mockClientProps);
const profile = await Promise.resolve(api.getStoreProfile("navbar"));
return profile;
}
const api = new BackendAPI();
const profile = await Promise.resolve(api.getStoreProfile("navbar"));
return profile;
}
export const Navbar = async ({ links, menuItemGroups }: NavbarProps) => {
const { user } = await getServerUser();
export const Navbar = async ({
links,
menuItemGroups,
mockUser,
mockClientProps,
}: NavbarProps) => {
const { user } = await getServerUser(mockUser);
const isLoggedIn = user !== null;
let profile: ProfileDetails | null = null;
if (isLoggedIn) {
profile = await getProfileData();
profile = await getProfileData(mockClientProps);
}
return (

View File

@@ -1,6 +1,10 @@
import { User } from "@supabase/supabase-js";
import getServerSupabase from "./getServerSupabase";
const getServerUser = async () => {
const getServerUser = async (mockUser?: User) => {
if (mockUser) {
return { user: mockUser, role: "admin", error: null };
}
const supabase = getServerSupabase();
if (!supabase) {