Messing with sites

This commit is contained in:
Owen Schwartz 2024-10-13 23:16:52 -04:00
parent 41e1c7e859
commit 95cdc3ca0f
No known key found for this signature in database
GPG key ID: 8271FDFFD9E0CCBD
4 changed files with 34 additions and 35 deletions

View file

@ -18,7 +18,6 @@ export type GetSiteResponse = {
siteId: number;
name: string;
subdomain: string;
pubKey: string;
subnet: string;
}
@ -59,7 +58,12 @@ export async function getSite(req: Request, res: Response, next: NextFunction):
}
return response(res, {
data: site[0],
data: {
siteId: site[0].siteId,
name: site[0].name,
subdomain: site[0].subdomain,
subnet: site[0].subnet,
},
success: true,
error: false,
message: "Site retrieved successfully",

View file

@ -12,29 +12,25 @@ export const metadata: Metadata = {
const sidebarNavItems = [
{
title: "Profile",
href: "/configuration/resources/{resourceId}/",
},
{
title: "Account",
href: "/configuration/resources/{resourceId}/account",
href: "/{orgId}/resources/{resourceId}/",
},
{
title: "Appearance",
href: "/configuration/resources/{resourceId}/appearance",
href: "/{orgId}/resources/{resourceId}/appearance",
},
{
title: "Notifications",
href: "/configuration/resources/{resourceId}/notifications",
href: "/{orgId}/resources/{resourceId}/notifications",
},
{
title: "Display",
href: "/configuration/resources/{resourceId}/display",
href: "/{orgId}/resources/{resourceId}/display",
},
]
interface SettingsLayoutProps {
children: React.ReactNode,
params: { resourceId: string }
params: { resourceId: string, orgId: string }
}
export default function SettingsLayout({ children, params }: SettingsLayoutProps) {
@ -66,7 +62,7 @@ export default function SettingsLayout({ children, params }: SettingsLayoutProps
<Separator className="my-6" />
<div className="flex flex-col space-y-8 lg:flex-row lg:space-x-12 lg:space-y-0">
<aside className="-mx-4 lg:w-1/5">
<SidebarNav items={sidebarNavItems.map(i => { i.href = i.href.replace("{resourceId}", params.resourceId); return i})} />
<SidebarNav items={sidebarNavItems.map(i => { i.href = i.href.replace("{resourceId}", params.resourceId).replace("{orgId}", params.orgId); return i})} />
</aside>
<div className="flex-1 lg:max-w-2xl">{children}</div>
</div>

View file

@ -17,32 +17,31 @@ export const metadata: Metadata = {
const sidebarNavItems = [
{
title: "Profile",
href: "/configuration/sites/{siteId}/",
},
{
title: "Account",
href: "/configuration/sites/{siteId}/account",
href: "/{orgId}/sites/{siteId}/",
},
{
title: "Appearance",
href: "/configuration/sites/{siteId}/appearance",
href: "/{orgId}/sites/{siteId}/appearance",
},
{
title: "Notifications",
href: "/configuration/sites/{siteId}/notifications",
href: "/{orgId}/sites/{siteId}/notifications",
},
{
title: "Display",
href: "/configuration/sites/{siteId}/display",
href: "/{orgId}/sites/{siteId}/display",
},
]
interface SettingsLayoutProps {
children: React.ReactNode,
params: { siteId: string }
params: { siteId: string, orgId: string }
}
export default async function SettingsLayout({ children, params }: SettingsLayoutProps) {
let site = null;
if (params.siteId !== "create") {
try {
const sessionId = cookies().get("session")?.value ?? null;
const res = await internal
.get<AxiosResponse<GetSiteResponse>>(`/site/${params.siteId}`, {
@ -51,11 +50,11 @@ export default async function SettingsLayout({ children, params }: SettingsLayou
},
});
if (!res || res.status !== 200) {
return <div>Failed to load site</div>;
site = res.data.data;
} catch {
return null;
}
}
const site = res.data.data;
return (
<>
@ -85,7 +84,7 @@ export default async function SettingsLayout({ children, params }: SettingsLayou
<Separator className="my-6" />
<div className="flex flex-col space-y-8 lg:flex-row lg:space-x-12 lg:space-y-0">
<aside className="-mx-4 lg:w-1/5">
<SidebarNav items={sidebarNavItems.map(i => { i.href = i.href.replace("{siteId}", params.siteId); return i})} disabled={params.siteId == "create"} />
<SidebarNav items={sidebarNavItems.map(i => { i.href = i.href.replace("{siteId}", params.siteId).replace("{orgId}", params.orgId); return i})} disabled={params.siteId == "create"} />
</aside>
<div className="flex-1 lg:max-w-2xl">
<SiteProvider site={site}>

View file

@ -5,7 +5,7 @@ import { GetSiteResponse } from "@server/routers/site/getSite";
import { ReactNode } from "react";
type LandingProviderProps = {
site: GetSiteResponse;
site: GetSiteResponse | null;
children: ReactNode;
};