mirror of
https://github.com/vitodeploy/vito.git
synced 2025-07-01 05:56:16 +00:00
103 lines
2.5 KiB
TypeScript
103 lines
2.5 KiB
TypeScript
import { type NavItem } from '@/types';
|
|
import { CloudUploadIcon, DatabaseIcon, HomeIcon, UsersIcon } from 'lucide-react';
|
|
import { ReactNode } from 'react';
|
|
import { Server } from '@/types/server';
|
|
import ServerHeader from '@/pages/servers/components/header';
|
|
import Layout from '@/layouts/app/layout';
|
|
|
|
export default function ServerLayout({ server, children }: { server: Server; children: ReactNode }) {
|
|
// When server-side rendering, we only render the layout on the client...
|
|
if (typeof window === 'undefined') {
|
|
return null;
|
|
}
|
|
const sidebarNavItems: NavItem[] = [
|
|
{
|
|
title: 'Overview',
|
|
href: route('servers.show', { server: server.id }),
|
|
onlyActivePath: route('servers.show', { server: server.id }),
|
|
icon: HomeIcon,
|
|
},
|
|
{
|
|
title: 'Database',
|
|
href: route('databases', { server: server.id }),
|
|
icon: DatabaseIcon,
|
|
children: [
|
|
{
|
|
title: 'Databases',
|
|
href: route('databases', { server: server.id }),
|
|
onlyActivePath: route('databases', { server: server.id }),
|
|
icon: DatabaseIcon,
|
|
},
|
|
{
|
|
title: 'Users',
|
|
href: route('database-users', { server: server.id }),
|
|
icon: UsersIcon,
|
|
},
|
|
{
|
|
title: 'Backups',
|
|
href: route('database-backups', { server: server.id }),
|
|
icon: CloudUploadIcon,
|
|
},
|
|
],
|
|
},
|
|
// {
|
|
// title: 'Sites',
|
|
// href: '#',
|
|
// icon: MousePointerClickIcon,
|
|
// },
|
|
// {
|
|
// title: 'Firewall',
|
|
// href: '#',
|
|
// icon: FlameIcon,
|
|
// },
|
|
// {
|
|
// title: 'CronJobs',
|
|
// href: '#',
|
|
// icon: ClockIcon,
|
|
// },
|
|
// {
|
|
// title: 'Workers',
|
|
// href: '#',
|
|
// icon: ListEndIcon,
|
|
// },
|
|
// {
|
|
// title: 'SSH Keys',
|
|
// href: '#',
|
|
// icon: KeyIcon,
|
|
// },
|
|
// {
|
|
// title: 'Services',
|
|
// href: '#',
|
|
// icon: CogIcon,
|
|
// },
|
|
// {
|
|
// title: 'Metrics',
|
|
// href: '#',
|
|
// icon: ChartPieIcon,
|
|
// },
|
|
// {
|
|
// title: 'Console',
|
|
// href: '#',
|
|
// icon: TerminalSquareIcon,
|
|
// },
|
|
// {
|
|
// title: 'Logs',
|
|
// href: '#',
|
|
// icon: LogsIcon,
|
|
// },
|
|
// {
|
|
// title: 'Settings',
|
|
// href: '#',
|
|
// icon: Settings2Icon,
|
|
// },
|
|
];
|
|
|
|
return (
|
|
<Layout secondNavItems={sidebarNavItems} secondNavTitle={server.name}>
|
|
<ServerHeader server={server} />
|
|
|
|
<div>{children}</div>
|
|
</Layout>
|
|
);
|
|
}
|