diff --git a/app/admin/_components/admin-menu-navigation.tsx b/app/admin/_components/admin-menu-navigation.tsx
new file mode 100644
index 0000000..7a6185d
--- /dev/null
+++ b/app/admin/_components/admin-menu-navigation.tsx
@@ -0,0 +1,27 @@
+import { AppLogo } from '@kit/shared/components/app-logo';
+import { ProfileAccountDropdownContainer } from '@kit/shared/components/personal-account-dropdown-container';
+import { SIDEBAR_WIDTH_PROPERTY } from '@/packages/ui/src/shadcn/constants';
+
+import type { UserWorkspace } from '../../home/(user)/_lib/server/load-user-workspace';
+
+export function AdminMenuNavigation(props: {
+ workspace: UserWorkspace;
+}) {
+ const { accounts } = props.workspace;
+
+ return (
+
+ );
+}
diff --git a/app/admin/_components/admin-sidebar.tsx b/app/admin/_components/admin-sidebar.tsx
index 2e777e7..20e6082 100644
--- a/app/admin/_components/admin-sidebar.tsx
+++ b/app/admin/_components/admin-sidebar.tsx
@@ -1,72 +1,25 @@
-'use client';
-
-import Link from 'next/link';
-import { usePathname } from 'next/navigation';
-
-import { UserWorkspace } from '@/app/home/(user)/_lib/server/load-user-workspace';
-import { LayoutDashboard, Users } from 'lucide-react';
-
-import { AppLogo } from '@kit/shared/components/app-logo';
-import { ProfileAccountDropdownContainer } from '@kit/shared/components/personal-account-dropdown-container';
+import { adminNavigationConfig } from '@kit/shared/config';
import {
Sidebar,
SidebarContent,
- SidebarFooter,
- SidebarGroup,
- SidebarGroupContent,
- SidebarGroupLabel,
SidebarHeader,
- SidebarMenu,
- SidebarMenuButton,
- useSidebar,
+ SidebarNavigation,
} from '@kit/ui/shadcn-sidebar';
-export function AdminSidebar({
- accounts,
-}: {
- accounts: UserWorkspace['accounts'];
-}) {
- const path = usePathname();
- const { open } = useSidebar();
+export function AdminSidebar() {
+ const collapsible = adminNavigationConfig.sidebarCollapsedStyle;
+
return (
-
-
-
+
+
+
+
Superadmin
+
-
- Super Admin
-
-
-
-
-
-
- Dashboard
-
-
-
-
-
-
- Accounts
-
-
-
-
-
+
-
-
-
-
);
}
diff --git a/app/admin/layout.tsx b/app/admin/layout.tsx
index 8317da4..43bd5e1 100644
--- a/app/admin/layout.tsx
+++ b/app/admin/layout.tsx
@@ -6,6 +6,7 @@ import { Page, PageMobileNavigation, PageNavigation } from '@kit/ui/page';
import { SidebarProvider } from '@kit/ui/shadcn-sidebar';
import { AdminSidebar } from '~/admin/_components/admin-sidebar';
+import { AdminMenuNavigation } from '~/admin/_components/admin-menu-navigation';
import { AdminMobileNavigation } from '~/admin/_components/mobile-navigation';
import { loadUserWorkspace } from '../home/(user)/_lib/server/load-user-workspace';
@@ -21,19 +22,24 @@ export default function AdminLayout(props: React.PropsWithChildren) {
const workspace = use(loadUserWorkspace());
return (
-
-
-
-
-
+
+
+
+
-
-
-
+
+
+
- {props.children}
-
-
+
+
+
+
+
+ {props.children}
+
+
+
);
}
diff --git a/app/admin/page.tsx b/app/admin/page.tsx
index 8be8bd8..60e8862 100644
--- a/app/admin/page.tsx
+++ b/app/admin/page.tsx
@@ -5,7 +5,7 @@ import { PageBody, PageHeader } from '@kit/ui/page';
function AdminPage() {
return (
<>
-
+
diff --git a/app/home/[account]/_components/team-account-layout-sidebar-navigation.tsx b/app/home/[account]/_components/team-account-layout-sidebar-navigation.tsx
deleted file mode 100644
index 9e1eeb4..0000000
--- a/app/home/[account]/_components/team-account-layout-sidebar-navigation.tsx
+++ /dev/null
@@ -1,12 +0,0 @@
-import { z } from 'zod';
-
-import { NavigationConfigSchema } from '@kit/ui/navigation-schema';
-import { SidebarNavigation } from '@kit/ui/shadcn-sidebar';
-
-export function TeamAccountLayoutSidebarNavigation({
- config,
-}: React.PropsWithChildren<{
- config: z.infer;
-}>) {
- return ;
-}
diff --git a/app/home/[account]/_components/team-account-layout-sidebar.tsx b/app/home/[account]/_components/team-account-layout-sidebar.tsx
index 76dd94f..f2c9626 100644
--- a/app/home/[account]/_components/team-account-layout-sidebar.tsx
+++ b/app/home/[account]/_components/team-account-layout-sidebar.tsx
@@ -1,20 +1,12 @@
-import type { User } from '@supabase/supabase-js';
-
import { ApplicationRole } from '@kit/accounts/types/accounts';
-import { ProfileAccountDropdownContainer } from '@kit/shared/components/personal-account-dropdown-container';
import { getTeamAccountSidebarConfig } from '@kit/shared/config';
import {
Sidebar,
SidebarContent,
- SidebarFooter,
SidebarHeader,
+ SidebarNavigation,
} from '@kit/ui/shadcn-sidebar';
-import { TeamAccountNotifications } from '~/home/[account]/_components/team-account-notifications';
-
-import { TeamAccountAccountsSelector } from '../_components/team-account-accounts-selector';
-import { TeamAccountLayoutSidebarNavigation } from './team-account-layout-sidebar-navigation';
-
type AccountModel = {
label: string | null;
value: string | null;
@@ -26,14 +18,12 @@ export function TeamAccountLayoutSidebar(props: {
account: string;
accountId: string;
accounts: AccountModel[];
- user: User;
}) {
return (
);
}
@@ -42,45 +32,27 @@ function SidebarContainer(props: {
account: string;
accountId: string;
accounts: AccountModel[];
- user: User;
}) {
- const { account, accounts, user } = props;
- const userId = user.id;
+ const { account, accounts } = props;
const config = getTeamAccountSidebarConfig(account);
const collapsible = config.sidebarCollapsedStyle;
+ const selectedAccount = accounts.find(({ value }) => value === account);
+ const accountName = selectedAccount?.label || account;
+
return (
-
-
-
-
-
-
-
+
+
+
{accountName}
-
-
+
+
-
-
-
-
-
);
}
diff --git a/app/home/[account]/layout.tsx b/app/home/[account]/layout.tsx
index 104eb72..a98a8b7 100644
--- a/app/home/[account]/layout.tsx
+++ b/app/home/[account]/layout.tsx
@@ -15,7 +15,6 @@ import { SidebarProvider } from '@kit/ui/shadcn-sidebar';
import { withI18n } from '~/lib/i18n/with-i18n';
-// local imports
import { TeamAccountLayoutMobileNavigation } from './_components/team-account-layout-mobile-navigation';
import { TeamAccountLayoutSidebar } from './_components/team-account-layout-sidebar';
import { TeamAccountNavigationMenu } from './_components/team-account-navigation-menu';
@@ -57,13 +56,12 @@ function SidebarLayout({
return (
-
+
@@ -129,23 +127,8 @@ function HeaderLayout({
account={account}
accountId={data.account.id}
accounts={accounts}
- user={data.user}
/>
-
-
-
-
-
-
-
-
{children}
diff --git a/packages/shared/src/config/admin-navigation.config.tsx b/packages/shared/src/config/admin-navigation.config.tsx
new file mode 100644
index 0000000..405fe91
--- /dev/null
+++ b/packages/shared/src/config/admin-navigation.config.tsx
@@ -0,0 +1,33 @@
+import { LayoutDashboard, Users } from 'lucide-react';
+import { z } from 'zod';
+
+import { pathsConfig } from '@kit/shared/config';
+import { NavigationConfigSchema } from '@kit/ui/navigation-schema';
+
+const iconClasses = 'w-4 stroke-[1.5px]';
+
+const routes = [
+ {
+ children: [
+ {
+ label: 'Dashboard',
+ path: pathsConfig.app.admin,
+ Icon: ,
+ end: true,
+ },
+ {
+ label: 'Accounts',
+ path: `${pathsConfig.app.admin}/accounts`,
+ Icon: ,
+ end: true,
+ },
+ ],
+ },
+] satisfies z.infer['routes'];
+
+export const adminNavigationConfig = NavigationConfigSchema.parse({
+ routes,
+ style: 'custom',
+ sidebarCollapsed: false,
+ sidebarCollapsedStyle: 'icon',
+});
diff --git a/packages/shared/src/config/index.ts b/packages/shared/src/config/index.ts
index 84be8c1..224b890 100644
--- a/packages/shared/src/config/index.ts
+++ b/packages/shared/src/config/index.ts
@@ -1,6 +1,7 @@
import appConfig from './app.config';
import authConfig from './auth.config';
import billingConfig from './billing.config';
+import { adminNavigationConfig } from './admin-navigation.config';
import {
DynamicAuthConfig,
getCachedAuthConfig,
@@ -15,6 +16,7 @@ import {
} from './team-account-navigation.config';
export {
+ adminNavigationConfig,
appConfig,
authConfig,
billingConfig,
diff --git a/packages/shared/src/config/team-account-navigation.config.tsx b/packages/shared/src/config/team-account-navigation.config.tsx
index b6f5e89..6f2c924 100644
--- a/packages/shared/src/config/team-account-navigation.config.tsx
+++ b/packages/shared/src/config/team-account-navigation.config.tsx
@@ -7,7 +7,6 @@ const iconClasses = 'w-4';
const getRoutes = (account: string) => [
{
- label: 'common:routes.application',
children: [
{
label: 'common:routes.dashboard',
@@ -15,12 +14,6 @@ const getRoutes = (account: string) => [
Icon: ,
end: true,
},
- ],
- },
- {
- label: 'common:routes.settings',
- collapsible: false,
- children: [
{
label: 'common:routes.settings',
path: createPath(pathsConfig.app.accountSettings, account),
diff --git a/public/locales/en/common.json b/public/locales/en/common.json
index 155d52b..5275611 100644
--- a/public/locales/en/common.json
+++ b/public/locales/en/common.json
@@ -80,7 +80,6 @@
"dashboard": "Dashboard",
"settings": "Settings",
"profile": "Profile",
- "application": "Application",
"pickTime": "Pick time",
"preferences": "Preferences",
"security": "Security"
diff --git a/public/locales/et/common.json b/public/locales/et/common.json
index 5da5993..32a8e6d 100644
--- a/public/locales/et/common.json
+++ b/public/locales/et/common.json
@@ -80,7 +80,6 @@
"dashboard": "Ülevaade",
"settings": "Seaded",
"profile": "Profiil",
- "application": "Rakendus",
"pickTime": "Vali aeg",
"preferences": "Eelistused",
"security": "Turvalisus"
diff --git a/public/locales/ru/common.json b/public/locales/ru/common.json
index a23f8a5..f6ccf65 100644
--- a/public/locales/ru/common.json
+++ b/public/locales/ru/common.json
@@ -80,7 +80,6 @@
"dashboard": "Обзор",
"settings": "Настройки",
"profile": "Профиль",
- "application": "Приложение",
"pickTime": "Выбрать время",
"preferences": "Предпочтения",
"security": "Безопасность"