mirror of
https://github.com/vitodeploy/vito.git
synced 2025-07-02 06:26:16 +00:00
101 lines
1.9 KiB
TypeScript
101 lines
1.9 KiB
TypeScript
import { type BreadcrumbItem, type NavItem } from '@/types';
|
|
import {
|
|
BellIcon,
|
|
CloudIcon,
|
|
CodeIcon,
|
|
CommandIcon,
|
|
DatabaseIcon,
|
|
KeyIcon,
|
|
ListIcon,
|
|
LogsIcon,
|
|
PlugIcon,
|
|
TagIcon,
|
|
UserIcon,
|
|
UsersIcon,
|
|
} from 'lucide-react';
|
|
import { ReactNode } from 'react';
|
|
import Layout from '@/layouts/app/layout';
|
|
import VitoIcon from '@/icons/vito';
|
|
|
|
const sidebarNavItems: NavItem[] = [
|
|
{
|
|
title: 'Profile',
|
|
href: route('profile'),
|
|
icon: UserIcon,
|
|
},
|
|
{
|
|
title: 'Users',
|
|
href: route('users'),
|
|
icon: UsersIcon,
|
|
},
|
|
{
|
|
title: 'Projects',
|
|
href: route('projects'),
|
|
icon: ListIcon,
|
|
},
|
|
{
|
|
title: 'Server Providers',
|
|
href: route('server-providers'),
|
|
icon: CloudIcon,
|
|
},
|
|
{
|
|
title: 'Source Controls',
|
|
href: route('source-controls'),
|
|
icon: CodeIcon,
|
|
},
|
|
{
|
|
title: 'Storage Providers',
|
|
href: route('storage-providers'),
|
|
icon: DatabaseIcon,
|
|
},
|
|
{
|
|
title: 'Notification Channels',
|
|
href: route('notification-channels'),
|
|
icon: BellIcon,
|
|
},
|
|
{
|
|
title: 'SSH Keys',
|
|
href: route('ssh-keys'),
|
|
icon: KeyIcon,
|
|
},
|
|
{
|
|
title: 'Tags',
|
|
href: route('tags'),
|
|
icon: TagIcon,
|
|
},
|
|
{
|
|
title: 'API Keys',
|
|
href: route('api-keys'),
|
|
icon: CommandIcon,
|
|
},
|
|
{
|
|
title: 'Plugins',
|
|
href: route('plugins'),
|
|
icon: PlugIcon,
|
|
},
|
|
{
|
|
title: 'Vito Settings',
|
|
href: route('vito-settings'),
|
|
icon: VitoIcon,
|
|
},
|
|
{
|
|
title: 'Vito Logs',
|
|
href: route('log-viewer.index'),
|
|
icon: LogsIcon,
|
|
external: true,
|
|
},
|
|
];
|
|
|
|
export default function SettingsLayout({ children, breadcrumbs }: { children: ReactNode; breadcrumbs?: BreadcrumbItem[] }) {
|
|
// When server-side rendering, we only render the layout on the client...
|
|
if (typeof window === 'undefined') {
|
|
return null;
|
|
}
|
|
|
|
return (
|
|
<Layout breadcrumbs={breadcrumbs} secondNavItems={sidebarNavItems} secondNavTitle="Settings">
|
|
{children}
|
|
</Layout>
|
|
);
|
|
}
|