From 4d4b833841d8d2e42043bc57932ac5a7fefcefe5 Mon Sep 17 00:00:00 2001 From: Luc Date: Thu, 19 Dec 2024 01:03:56 +0100 Subject: [PATCH] Introduce settings layout --- web/src/index.tsx | 3 + web/src/routeTree.gen.ts | 590 ++++++++++-------- web/src/routes/index.tsx | 8 +- web/src/routes/settings/_layout.tsx | 27 + web/src/routes/settings/_layout/build.tsx | 16 + .../settings/{ => _layout}/fields/index.tsx | 52 +- .../routes/settings/{ => _layout}/index.tsx | 19 +- .../routes/settings/_layout/intelligence.tsx | 16 + .../settings/{ => _layout}/logs/index.tsx | 13 +- web/src/routes/settings/_layout/pat.tsx | 20 + .../routes/settings/{ => _layout}/search.tsx | 13 +- web/src/routes/settings/_layout/sessions.tsx | 16 + web/src/routes/settings/_layout/storage.tsx | 16 + web/src/routes/settings/_layout/tags.tsx | 14 + web/src/routes/settings/_layout/users.tsx | 14 + web/src/routes/settings/build.tsx | 17 - web/src/routes/settings/intelligence.tsx | 17 - web/src/routes/settings/pat.tsx | 19 - web/src/routes/settings/sessions.tsx | 17 - web/src/routes/settings/storage.tsx | 17 - web/src/routes/settings/tags.tsx | 16 - web/src/routes/settings/users.tsx | 16 - 22 files changed, 537 insertions(+), 419 deletions(-) create mode 100644 web/src/routes/settings/_layout.tsx create mode 100644 web/src/routes/settings/_layout/build.tsx rename web/src/routes/settings/{ => _layout}/fields/index.tsx (91%) rename web/src/routes/settings/{ => _layout}/index.tsx (65%) create mode 100644 web/src/routes/settings/_layout/intelligence.tsx rename web/src/routes/settings/{ => _layout}/logs/index.tsx (67%) create mode 100644 web/src/routes/settings/_layout/pat.tsx rename web/src/routes/settings/{ => _layout}/search.tsx (62%) create mode 100644 web/src/routes/settings/_layout/sessions.tsx create mode 100644 web/src/routes/settings/_layout/storage.tsx create mode 100644 web/src/routes/settings/_layout/tags.tsx create mode 100644 web/src/routes/settings/_layout/users.tsx delete mode 100644 web/src/routes/settings/build.tsx delete mode 100644 web/src/routes/settings/intelligence.tsx delete mode 100644 web/src/routes/settings/pat.tsx delete mode 100644 web/src/routes/settings/sessions.tsx delete mode 100644 web/src/routes/settings/storage.tsx delete mode 100644 web/src/routes/settings/tags.tsx delete mode 100644 web/src/routes/settings/users.tsx diff --git a/web/src/index.tsx b/web/src/index.tsx index b20fba5..4e9e8b8 100644 --- a/web/src/index.tsx +++ b/web/src/index.tsx @@ -18,6 +18,9 @@ const router = createRouter({ routeTree, defaultPendingComponent, defaultErrorComponent: PageErrorBoundary, + context: { + title: 'Hello', + }, }); // Register the router instance for type safety diff --git a/web/src/routeTree.gen.ts b/web/src/routeTree.gen.ts index 57ec550..30c068f 100644 --- a/web/src/routeTree.gen.ts +++ b/web/src/routeTree.gen.ts @@ -8,6 +8,8 @@ // You should NOT make any changes in this file as it will be overwritten. // Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified. +import { createFileRoute } from '@tanstack/react-router' + // Import Routes import { Route as rootRoute } from './routes/__root' @@ -16,26 +18,37 @@ import { Route as CreateImport } from './routes/create' import { Route as AboutImport } from './routes/about' import { Route as ItemIdImport } from './routes/$itemId' import { Route as IndexImport } from './routes/index' -import { Route as SettingsIndexImport } from './routes/settings/index' import { Route as SearchIndexImport } from './routes/search/index' import { Route as ProductsIndexImport } from './routes/products/index' import { Route as ItemsIndexImport } from './routes/items/index' import { Route as UserUserIdImport } from './routes/user/$userId' -import { Route as SettingsUsersImport } from './routes/settings/users' -import { Route as SettingsTagsImport } from './routes/settings/tags' -import { Route as SettingsStorageImport } from './routes/settings/storage' -import { Route as SettingsSessionsImport } from './routes/settings/sessions' -import { Route as SettingsSearchImport } from './routes/settings/search' -import { Route as SettingsPatImport } from './routes/settings/pat' -import { Route as SettingsIntelligenceImport } from './routes/settings/intelligence' -import { Route as SettingsBuildImport } from './routes/settings/build' -import { Route as SettingsLogsIndexImport } from './routes/settings/logs/index' -import { Route as SettingsFieldsIndexImport } from './routes/settings/fields/index' +import { Route as SettingsLayoutImport } from './routes/settings/_layout' +import { Route as SettingsLayoutIndexImport } from './routes/settings/_layout/index' import { Route as ItemItemIdIndexImport } from './routes/item/$itemId/index' +import { Route as SettingsLayoutUsersImport } from './routes/settings/_layout/users' +import { Route as SettingsLayoutTagsImport } from './routes/settings/_layout/tags' +import { Route as SettingsLayoutStorageImport } from './routes/settings/_layout/storage' +import { Route as SettingsLayoutSessionsImport } from './routes/settings/_layout/sessions' +import { Route as SettingsLayoutSearchImport } from './routes/settings/_layout/search' +import { Route as SettingsLayoutPatImport } from './routes/settings/_layout/pat' +import { Route as SettingsLayoutIntelligenceImport } from './routes/settings/_layout/intelligence' +import { Route as SettingsLayoutBuildImport } from './routes/settings/_layout/build' import { Route as ItemItemIdEditImport } from './routes/item/$itemId/edit' +import { Route as SettingsLayoutLogsIndexImport } from './routes/settings/_layout/logs/index' +import { Route as SettingsLayoutFieldsIndexImport } from './routes/settings/_layout/fields/index' + +// Create Virtual Routes + +const SettingsImport = createFileRoute('/settings')() // Create/Update Routes +const SettingsRoute = SettingsImport.update({ + id: '/settings', + path: '/settings', + getParentRoute: () => rootRoute, +} as any) + const DebugRoute = DebugImport.update({ id: '/debug', path: '/debug', @@ -66,12 +79,6 @@ const IndexRoute = IndexImport.update({ getParentRoute: () => rootRoute, } as any) -const SettingsIndexRoute = SettingsIndexImport.update({ - id: '/settings/', - path: '/settings/', - getParentRoute: () => rootRoute, -} as any) - const SearchIndexRoute = SearchIndexImport.update({ id: '/search/', path: '/search/', @@ -96,70 +103,71 @@ const UserUserIdRoute = UserUserIdImport.update({ getParentRoute: () => rootRoute, } as any) -const SettingsUsersRoute = SettingsUsersImport.update({ - id: '/settings/users', - path: '/settings/users', - getParentRoute: () => rootRoute, +const SettingsLayoutRoute = SettingsLayoutImport.update({ + id: '/_layout', + getParentRoute: () => SettingsRoute, } as any) -const SettingsTagsRoute = SettingsTagsImport.update({ - id: '/settings/tags', - path: '/settings/tags', - getParentRoute: () => rootRoute, +const SettingsLayoutIndexRoute = SettingsLayoutIndexImport.update({ + id: '/', + path: '/', + getParentRoute: () => SettingsLayoutRoute, } as any) -const SettingsStorageRoute = SettingsStorageImport.update({ - id: '/settings/storage', - path: '/settings/storage', +const ItemItemIdIndexRoute = ItemItemIdIndexImport.update({ + id: '/item/$itemId/', + path: '/item/$itemId/', getParentRoute: () => rootRoute, } as any) -const SettingsSessionsRoute = SettingsSessionsImport.update({ - id: '/settings/sessions', - path: '/settings/sessions', - getParentRoute: () => rootRoute, +const SettingsLayoutUsersRoute = SettingsLayoutUsersImport.update({ + id: '/users', + path: '/users', + getParentRoute: () => SettingsLayoutRoute, } as any) -const SettingsSearchRoute = SettingsSearchImport.update({ - id: '/settings/search', - path: '/settings/search', - getParentRoute: () => rootRoute, +const SettingsLayoutTagsRoute = SettingsLayoutTagsImport.update({ + id: '/tags', + path: '/tags', + getParentRoute: () => SettingsLayoutRoute, } as any) -const SettingsPatRoute = SettingsPatImport.update({ - id: '/settings/pat', - path: '/settings/pat', - getParentRoute: () => rootRoute, +const SettingsLayoutStorageRoute = SettingsLayoutStorageImport.update({ + id: '/storage', + path: '/storage', + getParentRoute: () => SettingsLayoutRoute, } as any) -const SettingsIntelligenceRoute = SettingsIntelligenceImport.update({ - id: '/settings/intelligence', - path: '/settings/intelligence', - getParentRoute: () => rootRoute, +const SettingsLayoutSessionsRoute = SettingsLayoutSessionsImport.update({ + id: '/sessions', + path: '/sessions', + getParentRoute: () => SettingsLayoutRoute, } as any) -const SettingsBuildRoute = SettingsBuildImport.update({ - id: '/settings/build', - path: '/settings/build', - getParentRoute: () => rootRoute, +const SettingsLayoutSearchRoute = SettingsLayoutSearchImport.update({ + id: '/search', + path: '/search', + getParentRoute: () => SettingsLayoutRoute, } as any) -const SettingsLogsIndexRoute = SettingsLogsIndexImport.update({ - id: '/settings/logs/', - path: '/settings/logs/', - getParentRoute: () => rootRoute, +const SettingsLayoutPatRoute = SettingsLayoutPatImport.update({ + id: '/pat', + path: '/pat', + getParentRoute: () => SettingsLayoutRoute, } as any) -const SettingsFieldsIndexRoute = SettingsFieldsIndexImport.update({ - id: '/settings/fields/', - path: '/settings/fields/', - getParentRoute: () => rootRoute, -} as any) - -const ItemItemIdIndexRoute = ItemItemIdIndexImport.update({ - id: '/item/$itemId/', - path: '/item/$itemId/', - getParentRoute: () => rootRoute, +const SettingsLayoutIntelligenceRoute = SettingsLayoutIntelligenceImport.update( + { + id: '/intelligence', + path: '/intelligence', + getParentRoute: () => SettingsLayoutRoute, + } as any, +) + +const SettingsLayoutBuildRoute = SettingsLayoutBuildImport.update({ + id: '/build', + path: '/build', + getParentRoute: () => SettingsLayoutRoute, } as any) const ItemItemIdEditRoute = ItemItemIdEditImport.update({ @@ -168,6 +176,18 @@ const ItemItemIdEditRoute = ItemItemIdEditImport.update({ getParentRoute: () => rootRoute, } as any) +const SettingsLayoutLogsIndexRoute = SettingsLayoutLogsIndexImport.update({ + id: '/logs/', + path: '/logs/', + getParentRoute: () => SettingsLayoutRoute, +} as any) + +const SettingsLayoutFieldsIndexRoute = SettingsLayoutFieldsIndexImport.update({ + id: '/fields/', + path: '/fields/', + getParentRoute: () => SettingsLayoutRoute, +} as any) + // Populate the FileRoutesByPath interface declare module '@tanstack/react-router' { @@ -207,61 +227,19 @@ declare module '@tanstack/react-router' { preLoaderRoute: typeof DebugImport parentRoute: typeof rootRoute } - '/settings/build': { - id: '/settings/build' - path: '/settings/build' - fullPath: '/settings/build' - preLoaderRoute: typeof SettingsBuildImport - parentRoute: typeof rootRoute - } - '/settings/intelligence': { - id: '/settings/intelligence' - path: '/settings/intelligence' - fullPath: '/settings/intelligence' - preLoaderRoute: typeof SettingsIntelligenceImport - parentRoute: typeof rootRoute - } - '/settings/pat': { - id: '/settings/pat' - path: '/settings/pat' - fullPath: '/settings/pat' - preLoaderRoute: typeof SettingsPatImport - parentRoute: typeof rootRoute - } - '/settings/search': { - id: '/settings/search' - path: '/settings/search' - fullPath: '/settings/search' - preLoaderRoute: typeof SettingsSearchImport - parentRoute: typeof rootRoute - } - '/settings/sessions': { - id: '/settings/sessions' - path: '/settings/sessions' - fullPath: '/settings/sessions' - preLoaderRoute: typeof SettingsSessionsImport - parentRoute: typeof rootRoute - } - '/settings/storage': { - id: '/settings/storage' - path: '/settings/storage' - fullPath: '/settings/storage' - preLoaderRoute: typeof SettingsStorageImport - parentRoute: typeof rootRoute - } - '/settings/tags': { - id: '/settings/tags' - path: '/settings/tags' - fullPath: '/settings/tags' - preLoaderRoute: typeof SettingsTagsImport + '/settings': { + id: '/settings' + path: '/settings' + fullPath: '/settings' + preLoaderRoute: typeof SettingsImport parentRoute: typeof rootRoute } - '/settings/users': { - id: '/settings/users' - path: '/settings/users' - fullPath: '/settings/users' - preLoaderRoute: typeof SettingsUsersImport - parentRoute: typeof rootRoute + '/settings/_layout': { + id: '/settings/_layout' + path: '/settings' + fullPath: '/settings' + preLoaderRoute: typeof SettingsLayoutImport + parentRoute: typeof SettingsRoute } '/user/$userId': { id: '/user/$userId' @@ -291,13 +269,6 @@ declare module '@tanstack/react-router' { preLoaderRoute: typeof SearchIndexImport parentRoute: typeof rootRoute } - '/settings/': { - id: '/settings/' - path: '/settings' - fullPath: '/settings' - preLoaderRoute: typeof SettingsIndexImport - parentRoute: typeof rootRoute - } '/item/$itemId/edit': { id: '/item/$itemId/edit' path: '/item/$itemId/edit' @@ -305,6 +276,62 @@ declare module '@tanstack/react-router' { preLoaderRoute: typeof ItemItemIdEditImport parentRoute: typeof rootRoute } + '/settings/_layout/build': { + id: '/settings/_layout/build' + path: '/build' + fullPath: '/settings/build' + preLoaderRoute: typeof SettingsLayoutBuildImport + parentRoute: typeof SettingsLayoutImport + } + '/settings/_layout/intelligence': { + id: '/settings/_layout/intelligence' + path: '/intelligence' + fullPath: '/settings/intelligence' + preLoaderRoute: typeof SettingsLayoutIntelligenceImport + parentRoute: typeof SettingsLayoutImport + } + '/settings/_layout/pat': { + id: '/settings/_layout/pat' + path: '/pat' + fullPath: '/settings/pat' + preLoaderRoute: typeof SettingsLayoutPatImport + parentRoute: typeof SettingsLayoutImport + } + '/settings/_layout/search': { + id: '/settings/_layout/search' + path: '/search' + fullPath: '/settings/search' + preLoaderRoute: typeof SettingsLayoutSearchImport + parentRoute: typeof SettingsLayoutImport + } + '/settings/_layout/sessions': { + id: '/settings/_layout/sessions' + path: '/sessions' + fullPath: '/settings/sessions' + preLoaderRoute: typeof SettingsLayoutSessionsImport + parentRoute: typeof SettingsLayoutImport + } + '/settings/_layout/storage': { + id: '/settings/_layout/storage' + path: '/storage' + fullPath: '/settings/storage' + preLoaderRoute: typeof SettingsLayoutStorageImport + parentRoute: typeof SettingsLayoutImport + } + '/settings/_layout/tags': { + id: '/settings/_layout/tags' + path: '/tags' + fullPath: '/settings/tags' + preLoaderRoute: typeof SettingsLayoutTagsImport + parentRoute: typeof SettingsLayoutImport + } + '/settings/_layout/users': { + id: '/settings/_layout/users' + path: '/users' + fullPath: '/settings/users' + preLoaderRoute: typeof SettingsLayoutUsersImport + parentRoute: typeof SettingsLayoutImport + } '/item/$itemId/': { id: '/item/$itemId/' path: '/item/$itemId' @@ -312,48 +339,100 @@ declare module '@tanstack/react-router' { preLoaderRoute: typeof ItemItemIdIndexImport parentRoute: typeof rootRoute } - '/settings/fields/': { - id: '/settings/fields/' - path: '/settings/fields' + '/settings/_layout/': { + id: '/settings/_layout/' + path: '/' + fullPath: '/settings/' + preLoaderRoute: typeof SettingsLayoutIndexImport + parentRoute: typeof SettingsLayoutImport + } + '/settings/_layout/fields/': { + id: '/settings/_layout/fields/' + path: '/fields' fullPath: '/settings/fields' - preLoaderRoute: typeof SettingsFieldsIndexImport - parentRoute: typeof rootRoute + preLoaderRoute: typeof SettingsLayoutFieldsIndexImport + parentRoute: typeof SettingsLayoutImport } - '/settings/logs/': { - id: '/settings/logs/' - path: '/settings/logs' + '/settings/_layout/logs/': { + id: '/settings/_layout/logs/' + path: '/logs' fullPath: '/settings/logs' - preLoaderRoute: typeof SettingsLogsIndexImport - parentRoute: typeof rootRoute + preLoaderRoute: typeof SettingsLayoutLogsIndexImport + parentRoute: typeof SettingsLayoutImport } } } // Create and export the route tree +interface SettingsLayoutRouteChildren { + SettingsLayoutBuildRoute: typeof SettingsLayoutBuildRoute + SettingsLayoutIntelligenceRoute: typeof SettingsLayoutIntelligenceRoute + SettingsLayoutPatRoute: typeof SettingsLayoutPatRoute + SettingsLayoutSearchRoute: typeof SettingsLayoutSearchRoute + SettingsLayoutSessionsRoute: typeof SettingsLayoutSessionsRoute + SettingsLayoutStorageRoute: typeof SettingsLayoutStorageRoute + SettingsLayoutTagsRoute: typeof SettingsLayoutTagsRoute + SettingsLayoutUsersRoute: typeof SettingsLayoutUsersRoute + SettingsLayoutIndexRoute: typeof SettingsLayoutIndexRoute + SettingsLayoutFieldsIndexRoute: typeof SettingsLayoutFieldsIndexRoute + SettingsLayoutLogsIndexRoute: typeof SettingsLayoutLogsIndexRoute +} + +const SettingsLayoutRouteChildren: SettingsLayoutRouteChildren = { + SettingsLayoutBuildRoute: SettingsLayoutBuildRoute, + SettingsLayoutIntelligenceRoute: SettingsLayoutIntelligenceRoute, + SettingsLayoutPatRoute: SettingsLayoutPatRoute, + SettingsLayoutSearchRoute: SettingsLayoutSearchRoute, + SettingsLayoutSessionsRoute: SettingsLayoutSessionsRoute, + SettingsLayoutStorageRoute: SettingsLayoutStorageRoute, + SettingsLayoutTagsRoute: SettingsLayoutTagsRoute, + SettingsLayoutUsersRoute: SettingsLayoutUsersRoute, + SettingsLayoutIndexRoute: SettingsLayoutIndexRoute, + SettingsLayoutFieldsIndexRoute: SettingsLayoutFieldsIndexRoute, + SettingsLayoutLogsIndexRoute: SettingsLayoutLogsIndexRoute, +} + +const SettingsLayoutRouteWithChildren = SettingsLayoutRoute._addFileChildren( + SettingsLayoutRouteChildren, +) + +interface SettingsRouteChildren { + SettingsLayoutRoute: typeof SettingsLayoutRouteWithChildren +} + +const SettingsRouteChildren: SettingsRouteChildren = { + SettingsLayoutRoute: SettingsLayoutRouteWithChildren, +} + +const SettingsRouteWithChildren = SettingsRoute._addFileChildren( + SettingsRouteChildren, +) + export interface FileRoutesByFullPath { '/': typeof IndexRoute '/$itemId': typeof ItemIdRoute '/about': typeof AboutRoute '/create': typeof CreateRoute '/debug': typeof DebugRoute - '/settings/build': typeof SettingsBuildRoute - '/settings/intelligence': typeof SettingsIntelligenceRoute - '/settings/pat': typeof SettingsPatRoute - '/settings/search': typeof SettingsSearchRoute - '/settings/sessions': typeof SettingsSessionsRoute - '/settings/storage': typeof SettingsStorageRoute - '/settings/tags': typeof SettingsTagsRoute - '/settings/users': typeof SettingsUsersRoute + '/settings': typeof SettingsLayoutRouteWithChildren '/user/$userId': typeof UserUserIdRoute '/items': typeof ItemsIndexRoute '/products': typeof ProductsIndexRoute '/search': typeof SearchIndexRoute - '/settings': typeof SettingsIndexRoute '/item/$itemId/edit': typeof ItemItemIdEditRoute + '/settings/build': typeof SettingsLayoutBuildRoute + '/settings/intelligence': typeof SettingsLayoutIntelligenceRoute + '/settings/pat': typeof SettingsLayoutPatRoute + '/settings/search': typeof SettingsLayoutSearchRoute + '/settings/sessions': typeof SettingsLayoutSessionsRoute + '/settings/storage': typeof SettingsLayoutStorageRoute + '/settings/tags': typeof SettingsLayoutTagsRoute + '/settings/users': typeof SettingsLayoutUsersRoute '/item/$itemId': typeof ItemItemIdIndexRoute - '/settings/fields': typeof SettingsFieldsIndexRoute - '/settings/logs': typeof SettingsLogsIndexRoute + '/settings/': typeof SettingsLayoutIndexRoute + '/settings/fields': typeof SettingsLayoutFieldsIndexRoute + '/settings/logs': typeof SettingsLayoutLogsIndexRoute } export interface FileRoutesByTo { @@ -362,23 +441,23 @@ export interface FileRoutesByTo { '/about': typeof AboutRoute '/create': typeof CreateRoute '/debug': typeof DebugRoute - '/settings/build': typeof SettingsBuildRoute - '/settings/intelligence': typeof SettingsIntelligenceRoute - '/settings/pat': typeof SettingsPatRoute - '/settings/search': typeof SettingsSearchRoute - '/settings/sessions': typeof SettingsSessionsRoute - '/settings/storage': typeof SettingsStorageRoute - '/settings/tags': typeof SettingsTagsRoute - '/settings/users': typeof SettingsUsersRoute + '/settings': typeof SettingsLayoutIndexRoute '/user/$userId': typeof UserUserIdRoute '/items': typeof ItemsIndexRoute '/products': typeof ProductsIndexRoute '/search': typeof SearchIndexRoute - '/settings': typeof SettingsIndexRoute '/item/$itemId/edit': typeof ItemItemIdEditRoute + '/settings/build': typeof SettingsLayoutBuildRoute + '/settings/intelligence': typeof SettingsLayoutIntelligenceRoute + '/settings/pat': typeof SettingsLayoutPatRoute + '/settings/search': typeof SettingsLayoutSearchRoute + '/settings/sessions': typeof SettingsLayoutSessionsRoute + '/settings/storage': typeof SettingsLayoutStorageRoute + '/settings/tags': typeof SettingsLayoutTagsRoute + '/settings/users': typeof SettingsLayoutUsersRoute '/item/$itemId': typeof ItemItemIdIndexRoute - '/settings/fields': typeof SettingsFieldsIndexRoute - '/settings/logs': typeof SettingsLogsIndexRoute + '/settings/fields': typeof SettingsLayoutFieldsIndexRoute + '/settings/logs': typeof SettingsLayoutLogsIndexRoute } export interface FileRoutesById { @@ -388,23 +467,25 @@ export interface FileRoutesById { '/about': typeof AboutRoute '/create': typeof CreateRoute '/debug': typeof DebugRoute - '/settings/build': typeof SettingsBuildRoute - '/settings/intelligence': typeof SettingsIntelligenceRoute - '/settings/pat': typeof SettingsPatRoute - '/settings/search': typeof SettingsSearchRoute - '/settings/sessions': typeof SettingsSessionsRoute - '/settings/storage': typeof SettingsStorageRoute - '/settings/tags': typeof SettingsTagsRoute - '/settings/users': typeof SettingsUsersRoute + '/settings': typeof SettingsRouteWithChildren + '/settings/_layout': typeof SettingsLayoutRouteWithChildren '/user/$userId': typeof UserUserIdRoute '/items/': typeof ItemsIndexRoute '/products/': typeof ProductsIndexRoute '/search/': typeof SearchIndexRoute - '/settings/': typeof SettingsIndexRoute '/item/$itemId/edit': typeof ItemItemIdEditRoute + '/settings/_layout/build': typeof SettingsLayoutBuildRoute + '/settings/_layout/intelligence': typeof SettingsLayoutIntelligenceRoute + '/settings/_layout/pat': typeof SettingsLayoutPatRoute + '/settings/_layout/search': typeof SettingsLayoutSearchRoute + '/settings/_layout/sessions': typeof SettingsLayoutSessionsRoute + '/settings/_layout/storage': typeof SettingsLayoutStorageRoute + '/settings/_layout/tags': typeof SettingsLayoutTagsRoute + '/settings/_layout/users': typeof SettingsLayoutUsersRoute '/item/$itemId/': typeof ItemItemIdIndexRoute - '/settings/fields/': typeof SettingsFieldsIndexRoute - '/settings/logs/': typeof SettingsLogsIndexRoute + '/settings/_layout/': typeof SettingsLayoutIndexRoute + '/settings/_layout/fields/': typeof SettingsLayoutFieldsIndexRoute + '/settings/_layout/logs/': typeof SettingsLayoutLogsIndexRoute } export interface FileRouteTypes { @@ -415,6 +496,12 @@ export interface FileRouteTypes { | '/about' | '/create' | '/debug' + | '/settings' + | '/user/$userId' + | '/items' + | '/products' + | '/search' + | '/item/$itemId/edit' | '/settings/build' | '/settings/intelligence' | '/settings/pat' @@ -423,13 +510,8 @@ export interface FileRouteTypes { | '/settings/storage' | '/settings/tags' | '/settings/users' - | '/user/$userId' - | '/items' - | '/products' - | '/search' - | '/settings' - | '/item/$itemId/edit' | '/item/$itemId' + | '/settings/' | '/settings/fields' | '/settings/logs' fileRoutesByTo: FileRoutesByTo @@ -439,6 +521,12 @@ export interface FileRouteTypes { | '/about' | '/create' | '/debug' + | '/settings' + | '/user/$userId' + | '/items' + | '/products' + | '/search' + | '/item/$itemId/edit' | '/settings/build' | '/settings/intelligence' | '/settings/pat' @@ -447,12 +535,6 @@ export interface FileRouteTypes { | '/settings/storage' | '/settings/tags' | '/settings/users' - | '/user/$userId' - | '/items' - | '/products' - | '/search' - | '/settings' - | '/item/$itemId/edit' | '/item/$itemId' | '/settings/fields' | '/settings/logs' @@ -463,23 +545,25 @@ export interface FileRouteTypes { | '/about' | '/create' | '/debug' - | '/settings/build' - | '/settings/intelligence' - | '/settings/pat' - | '/settings/search' - | '/settings/sessions' - | '/settings/storage' - | '/settings/tags' - | '/settings/users' + | '/settings' + | '/settings/_layout' | '/user/$userId' | '/items/' | '/products/' | '/search/' - | '/settings/' | '/item/$itemId/edit' + | '/settings/_layout/build' + | '/settings/_layout/intelligence' + | '/settings/_layout/pat' + | '/settings/_layout/search' + | '/settings/_layout/sessions' + | '/settings/_layout/storage' + | '/settings/_layout/tags' + | '/settings/_layout/users' | '/item/$itemId/' - | '/settings/fields/' - | '/settings/logs/' + | '/settings/_layout/' + | '/settings/_layout/fields/' + | '/settings/_layout/logs/' fileRoutesById: FileRoutesById } @@ -489,23 +573,13 @@ export interface RootRouteChildren { AboutRoute: typeof AboutRoute CreateRoute: typeof CreateRoute DebugRoute: typeof DebugRoute - SettingsBuildRoute: typeof SettingsBuildRoute - SettingsIntelligenceRoute: typeof SettingsIntelligenceRoute - SettingsPatRoute: typeof SettingsPatRoute - SettingsSearchRoute: typeof SettingsSearchRoute - SettingsSessionsRoute: typeof SettingsSessionsRoute - SettingsStorageRoute: typeof SettingsStorageRoute - SettingsTagsRoute: typeof SettingsTagsRoute - SettingsUsersRoute: typeof SettingsUsersRoute + SettingsRoute: typeof SettingsRouteWithChildren UserUserIdRoute: typeof UserUserIdRoute ItemsIndexRoute: typeof ItemsIndexRoute ProductsIndexRoute: typeof ProductsIndexRoute SearchIndexRoute: typeof SearchIndexRoute - SettingsIndexRoute: typeof SettingsIndexRoute ItemItemIdEditRoute: typeof ItemItemIdEditRoute ItemItemIdIndexRoute: typeof ItemItemIdIndexRoute - SettingsFieldsIndexRoute: typeof SettingsFieldsIndexRoute - SettingsLogsIndexRoute: typeof SettingsLogsIndexRoute } const rootRouteChildren: RootRouteChildren = { @@ -514,23 +588,13 @@ const rootRouteChildren: RootRouteChildren = { AboutRoute: AboutRoute, CreateRoute: CreateRoute, DebugRoute: DebugRoute, - SettingsBuildRoute: SettingsBuildRoute, - SettingsIntelligenceRoute: SettingsIntelligenceRoute, - SettingsPatRoute: SettingsPatRoute, - SettingsSearchRoute: SettingsSearchRoute, - SettingsSessionsRoute: SettingsSessionsRoute, - SettingsStorageRoute: SettingsStorageRoute, - SettingsTagsRoute: SettingsTagsRoute, - SettingsUsersRoute: SettingsUsersRoute, + SettingsRoute: SettingsRouteWithChildren, UserUserIdRoute: UserUserIdRoute, ItemsIndexRoute: ItemsIndexRoute, ProductsIndexRoute: ProductsIndexRoute, SearchIndexRoute: SearchIndexRoute, - SettingsIndexRoute: SettingsIndexRoute, ItemItemIdEditRoute: ItemItemIdEditRoute, ItemItemIdIndexRoute: ItemItemIdIndexRoute, - SettingsFieldsIndexRoute: SettingsFieldsIndexRoute, - SettingsLogsIndexRoute: SettingsLogsIndexRoute, } export const routeTree = rootRoute @@ -548,23 +612,13 @@ export const routeTree = rootRoute "/about", "/create", "/debug", - "/settings/build", - "/settings/intelligence", - "/settings/pat", - "/settings/search", - "/settings/sessions", - "/settings/storage", - "/settings/tags", - "/settings/users", + "/settings", "/user/$userId", "/items/", "/products/", "/search/", - "/settings/", "/item/$itemId/edit", - "/item/$itemId/", - "/settings/fields/", - "/settings/logs/" + "/item/$itemId/" ] }, "/": { @@ -582,29 +636,28 @@ export const routeTree = rootRoute "/debug": { "filePath": "debug.tsx" }, - "/settings/build": { - "filePath": "settings/build.tsx" - }, - "/settings/intelligence": { - "filePath": "settings/intelligence.tsx" - }, - "/settings/pat": { - "filePath": "settings/pat.tsx" - }, - "/settings/search": { - "filePath": "settings/search.tsx" - }, - "/settings/sessions": { - "filePath": "settings/sessions.tsx" - }, - "/settings/storage": { - "filePath": "settings/storage.tsx" - }, - "/settings/tags": { - "filePath": "settings/tags.tsx" + "/settings": { + "filePath": "settings", + "children": [ + "/settings/_layout" + ] }, - "/settings/users": { - "filePath": "settings/users.tsx" + "/settings/_layout": { + "filePath": "settings/_layout.tsx", + "parent": "/settings", + "children": [ + "/settings/_layout/build", + "/settings/_layout/intelligence", + "/settings/_layout/pat", + "/settings/_layout/search", + "/settings/_layout/sessions", + "/settings/_layout/storage", + "/settings/_layout/tags", + "/settings/_layout/users", + "/settings/_layout/", + "/settings/_layout/fields/", + "/settings/_layout/logs/" + ] }, "/user/$userId": { "filePath": "user/$userId.tsx" @@ -618,20 +671,55 @@ export const routeTree = rootRoute "/search/": { "filePath": "search/index.tsx" }, - "/settings/": { - "filePath": "settings/index.tsx" - }, "/item/$itemId/edit": { "filePath": "item/$itemId/edit.tsx" }, + "/settings/_layout/build": { + "filePath": "settings/_layout/build.tsx", + "parent": "/settings/_layout" + }, + "/settings/_layout/intelligence": { + "filePath": "settings/_layout/intelligence.tsx", + "parent": "/settings/_layout" + }, + "/settings/_layout/pat": { + "filePath": "settings/_layout/pat.tsx", + "parent": "/settings/_layout" + }, + "/settings/_layout/search": { + "filePath": "settings/_layout/search.tsx", + "parent": "/settings/_layout" + }, + "/settings/_layout/sessions": { + "filePath": "settings/_layout/sessions.tsx", + "parent": "/settings/_layout" + }, + "/settings/_layout/storage": { + "filePath": "settings/_layout/storage.tsx", + "parent": "/settings/_layout" + }, + "/settings/_layout/tags": { + "filePath": "settings/_layout/tags.tsx", + "parent": "/settings/_layout" + }, + "/settings/_layout/users": { + "filePath": "settings/_layout/users.tsx", + "parent": "/settings/_layout" + }, "/item/$itemId/": { "filePath": "item/$itemId/index.tsx" }, - "/settings/fields/": { - "filePath": "settings/fields/index.tsx" + "/settings/_layout/": { + "filePath": "settings/_layout/index.tsx", + "parent": "/settings/_layout" + }, + "/settings/_layout/fields/": { + "filePath": "settings/_layout/fields/index.tsx", + "parent": "/settings/_layout" }, - "/settings/logs/": { - "filePath": "settings/logs/index.tsx" + "/settings/_layout/logs/": { + "filePath": "settings/_layout/logs/index.tsx", + "parent": "/settings/_layout" } } } diff --git a/web/src/routes/index.tsx b/web/src/routes/index.tsx index d6d9459..72ea893 100644 --- a/web/src/routes/index.tsx +++ b/web/src/routes/index.tsx @@ -1,4 +1,4 @@ -import { createFileRoute, Link } from '@tanstack/react-router'; +import { createFileRoute, createRootRouteWithContext, Link } from '@tanstack/react-router'; import { FiArrowRight } from 'react-icons/fi'; import { useInstanceStatistics } from '@/api/instance_settings'; @@ -48,6 +48,10 @@ const Page = () => { ); }; -export const Route = createFileRoute('/')({ +export interface MyRouterContext { + title: string; +} + +export const Route = createRootRouteWithContext()({ component: Page, }); diff --git a/web/src/routes/settings/_layout.tsx b/web/src/routes/settings/_layout.tsx new file mode 100644 index 0000000..630d949 --- /dev/null +++ b/web/src/routes/settings/_layout.tsx @@ -0,0 +1,27 @@ +import { + createFileRoute, + Outlet, + useRouteContext, + useRouterState, +} from '@tanstack/react-router'; + +import { SettingsNav } from '@/components/settings/nav'; +import { SidePage } from '@/layouts/SidebarPage'; + +export const Route = createFileRoute('/settings/_layout')({ + component: RouteComponent, +}); + +function RouteComponent() { + const matches = useRouterState({ select: (s) => s.matches }); + + // @ts-expect-error + // eslint-disable-next-line prefer-destructuring + const title = matches[matches.length - 1].context['title']; + + return ( + }> + + + ); +} diff --git a/web/src/routes/settings/_layout/build.tsx b/web/src/routes/settings/_layout/build.tsx new file mode 100644 index 0000000..4fa3be4 --- /dev/null +++ b/web/src/routes/settings/_layout/build.tsx @@ -0,0 +1,16 @@ +import { createFileRoute } from '@tanstack/react-router'; + +import { BuildDetails } from '@/components/settings/BuildDetails'; + +export const Route = createFileRoute('/settings/_layout/build')({ + component: RouteComponent, + context() { + return { + title: 'Software Info', + }; + }, +}); + +function RouteComponent() { + return ; +} diff --git a/web/src/routes/settings/fields/index.tsx b/web/src/routes/settings/_layout/fields/index.tsx similarity index 91% rename from web/src/routes/settings/fields/index.tsx rename to web/src/routes/settings/_layout/fields/index.tsx index 9c6aa42..4f690bd 100644 --- a/web/src/routes/settings/fields/index.tsx +++ b/web/src/routes/settings/_layout/fields/index.tsx @@ -15,10 +15,8 @@ import { DynamicIcon } from '@/components/DynamicIcon'; import { FieldSelect } from '@/components/form/Select'; import { BaseInput } from '@/components/input/BaseInput'; import { IconInput } from '@/components/input/IconInput'; -import { SettingsNav } from '@/components/settings/nav'; import { Button } from '@/components/ui/Button'; import * as Dialog from '@/components/ui/Dialog'; -import { SidePage } from '@/layouts/SidebarPage'; import { queryClient } from '@/util/query'; const FieldDefinitionEditor = ({ @@ -238,28 +236,25 @@ const RouteComponent = () => { const [creatingField, setCreatingField] = useState(false); return ( - } - suffix={ - - - - - - Create Field Definition - { - setCreatingField(false); - }} - /> - - - } - > + // suffix={ + // + // + // + // + // + // Create Field Definition + // { + // setCreatingField(false); + // }} + // /> + // + // + // } + <>
{data.map((field) => (
{ /> - + ); }; -export const Route = createFileRoute('/settings/fields/')({ +export const Route = createFileRoute('/settings/_layout/fields/')({ loader: async () => { queryClient.prefetchQuery(getFieldDefinitions()); }, + context() { + return { + title: 'Field Definitions', + }; + }, component: RouteComponent, }); diff --git a/web/src/routes/settings/index.tsx b/web/src/routes/settings/_layout/index.tsx similarity index 65% rename from web/src/routes/settings/index.tsx rename to web/src/routes/settings/_layout/index.tsx index fc0f495..e99b393 100644 --- a/web/src/routes/settings/index.tsx +++ b/web/src/routes/settings/_layout/index.tsx @@ -4,23 +4,20 @@ import { createFileRoute } from '@tanstack/react-router'; import { useAuth } from '@/api/auth'; import { getInstanceSettings } from '@/api/instance_settings'; import { useMe } from '@/api/me'; -import { SearchTaskTable } from '@/components/search_tasks/SearchTaskTable'; -import { BuildDetails } from '@/components/settings/BuildDetails'; import { InstanceSettings } from '@/components/settings/InstanceSettings'; -import { IntelligenceDetails } from '@/components/settings/IntelligenceDetails'; -import { SettingsNav } from '@/components/settings/nav'; -import { SearchDetails } from '@/components/settings/SearchDetails'; -import { StorageDetails } from '@/components/settings/StorageDetails'; import { Button } from '@/components/ui/Button'; -import { UserApiKeysTable } from '@/components/user_api_keys/UserApiKeysTable'; import { UserProfile } from '@/components/UserProfile'; -import { SidePage } from '@/layouts/SidebarPage'; import { queryClient } from '@/util/query'; -export const Route = createFileRoute('/settings/')({ +export const Route = createFileRoute('/settings/_layout/')({ loader: async () => { await queryClient.ensureQueryData(getInstanceSettings()); }, + context() { + return { + title: 'Settings', + }; + }, component: () => { const { token, clearAuthToken } = useAuth(); const { data: instanceSettings } = useSuspenseQuery( @@ -29,7 +26,7 @@ export const Route = createFileRoute('/settings/')({ const { data: meData } = useMe(); return ( - }> + <> {meData && (
@@ -42,7 +39,7 @@ export const Route = createFileRoute('/settings/')({
)} -
+ ); }, }); diff --git a/web/src/routes/settings/_layout/intelligence.tsx b/web/src/routes/settings/_layout/intelligence.tsx new file mode 100644 index 0000000..0f3fb53 --- /dev/null +++ b/web/src/routes/settings/_layout/intelligence.tsx @@ -0,0 +1,16 @@ +import { createFileRoute } from '@tanstack/react-router'; + +import { IntelligenceDetails } from '@/components/settings/IntelligenceDetails'; + +export const Route = createFileRoute('/settings/_layout/intelligence')({ + component: RouteComponent, + context() { + return { + title: 'Intelligence', + }; + }, +}); + +function RouteComponent() { + return ; +} diff --git a/web/src/routes/settings/logs/index.tsx b/web/src/routes/settings/_layout/logs/index.tsx similarity index 67% rename from web/src/routes/settings/logs/index.tsx rename to web/src/routes/settings/_layout/logs/index.tsx index faf1ab2..3f639e1 100644 --- a/web/src/routes/settings/logs/index.tsx +++ b/web/src/routes/settings/_layout/logs/index.tsx @@ -1,13 +1,16 @@ import { createFileRoute } from '@tanstack/react-router'; import { AllLogsSection } from '@/components/logs/AllLogsSection'; -import { SettingsNav } from '@/components/settings/nav'; -import { SidePage } from '@/layouts/SidebarPage'; -export const Route = createFileRoute('/settings/logs/')({ +export const Route = createFileRoute('/settings/_layout/logs/')({ + context() { + return { + title: 'Logs', + }; + }, component: () => { return ( - }> +

Logs are emitted anytime an item is created, edited, or @@ -16,7 +19,7 @@ export const Route = createFileRoute('/settings/logs/')({

- +
); }, }); diff --git a/web/src/routes/settings/_layout/pat.tsx b/web/src/routes/settings/_layout/pat.tsx new file mode 100644 index 0000000..19f7276 --- /dev/null +++ b/web/src/routes/settings/_layout/pat.tsx @@ -0,0 +1,20 @@ +import { createFileRoute } from '@tanstack/react-router'; + +import { UserApiKeysTable } from '@/components/user_api_keys/UserApiKeysTable'; + +export const Route = createFileRoute('/settings/_layout/pat')({ + component: RouteComponent, + context() { + return { + title: 'Personal Access Tokens', + }; + }, +}); + +function RouteComponent() { + return ( +
+ +
+ ); +} diff --git a/web/src/routes/settings/search.tsx b/web/src/routes/settings/_layout/search.tsx similarity index 62% rename from web/src/routes/settings/search.tsx rename to web/src/routes/settings/_layout/search.tsx index ecc8c1e..0fd0d07 100644 --- a/web/src/routes/settings/search.tsx +++ b/web/src/routes/settings/_layout/search.tsx @@ -1,21 +1,24 @@ import { createFileRoute } from '@tanstack/react-router'; import { SearchTaskTable } from '@/components/search_tasks/SearchTaskTable'; -import { SettingsNav } from '@/components/settings/nav'; import { SearchDetails } from '@/components/settings/SearchDetails'; -import { SidePage } from '@/layouts/SidebarPage'; -export const Route = createFileRoute('/settings/search')({ +export const Route = createFileRoute('/settings/_layout/search')({ component: RouteComponent, + context() { + return { + title: 'Search', + }; + }, }); function RouteComponent() { return ( - }> + <>
-
+ ); } diff --git a/web/src/routes/settings/_layout/sessions.tsx b/web/src/routes/settings/_layout/sessions.tsx new file mode 100644 index 0000000..f43f686 --- /dev/null +++ b/web/src/routes/settings/_layout/sessions.tsx @@ -0,0 +1,16 @@ +import { createFileRoute } from '@tanstack/react-router'; + +import { ActiveSessionsTable } from '@/components/ActiveSessionsTable'; + +export const Route = createFileRoute('/settings/_layout/sessions')({ + component: RouteComponent, + context() { + return { + title: 'Sessions', + }; + }, +}); + +function RouteComponent() { + return ; +} diff --git a/web/src/routes/settings/_layout/storage.tsx b/web/src/routes/settings/_layout/storage.tsx new file mode 100644 index 0000000..c166719 --- /dev/null +++ b/web/src/routes/settings/_layout/storage.tsx @@ -0,0 +1,16 @@ +import { createFileRoute } from '@tanstack/react-router'; + +import { StorageDetails } from '@/components/settings/StorageDetails'; + +export const Route = createFileRoute('/settings/_layout/storage')({ + component: RouteComponent, + context() { + return { + title: 'Storage', + }; + }, +}); + +function RouteComponent() { + return ; +} diff --git a/web/src/routes/settings/_layout/tags.tsx b/web/src/routes/settings/_layout/tags.tsx new file mode 100644 index 0000000..9d76602 --- /dev/null +++ b/web/src/routes/settings/_layout/tags.tsx @@ -0,0 +1,14 @@ +import { createFileRoute } from '@tanstack/react-router'; + +export const Route = createFileRoute('/settings/_layout/tags')({ + component: RouteComponent, + context(context) { + return { + title: 'Tags', + }; + }, +}); + +function RouteComponent() { + return
Hello "/settings/tags"!
; +} diff --git a/web/src/routes/settings/_layout/users.tsx b/web/src/routes/settings/_layout/users.tsx new file mode 100644 index 0000000..5219108 --- /dev/null +++ b/web/src/routes/settings/_layout/users.tsx @@ -0,0 +1,14 @@ +import { createFileRoute } from '@tanstack/react-router'; + +export const Route = createFileRoute('/settings/_layout/users')({ + component: RouteComponent, + context() { + return { + title: 'Users', + }; + }, +}); + +function RouteComponent() { + return
Hello "/settings/users"!
; +} diff --git a/web/src/routes/settings/build.tsx b/web/src/routes/settings/build.tsx deleted file mode 100644 index 3e4b080..0000000 --- a/web/src/routes/settings/build.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import { createFileRoute } from '@tanstack/react-router'; - -import { BuildDetails } from '@/components/settings/BuildDetails'; -import { SettingsNav } from '@/components/settings/nav'; -import { SidePage } from '@/layouts/SidebarPage'; - -export const Route = createFileRoute('/settings/build')({ - component: RouteComponent, -}); - -function RouteComponent() { - return ( - }> - - - ); -} diff --git a/web/src/routes/settings/intelligence.tsx b/web/src/routes/settings/intelligence.tsx deleted file mode 100644 index af07bed..0000000 --- a/web/src/routes/settings/intelligence.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import { createFileRoute } from '@tanstack/react-router'; - -import { IntelligenceDetails } from '@/components/settings/IntelligenceDetails'; -import { SettingsNav } from '@/components/settings/nav'; -import { SidePage } from '@/layouts/SidebarPage'; - -export const Route = createFileRoute('/settings/intelligence')({ - component: RouteComponent, -}); - -function RouteComponent() { - return ( - }> - - - ); -} diff --git a/web/src/routes/settings/pat.tsx b/web/src/routes/settings/pat.tsx deleted file mode 100644 index d52e6dd..0000000 --- a/web/src/routes/settings/pat.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { createFileRoute } from '@tanstack/react-router'; - -import { SettingsNav } from '@/components/settings/nav'; -import { UserApiKeysTable } from '@/components/user_api_keys/UserApiKeysTable'; -import { SidePage } from '@/layouts/SidebarPage'; - -export const Route = createFileRoute('/settings/pat')({ - component: RouteComponent, -}); - -function RouteComponent() { - return ( - }> -
- -
-
- ); -} diff --git a/web/src/routes/settings/sessions.tsx b/web/src/routes/settings/sessions.tsx deleted file mode 100644 index 1d849f8..0000000 --- a/web/src/routes/settings/sessions.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import { createFileRoute } from '@tanstack/react-router'; - -import { ActiveSessionsTable } from '@/components/ActiveSessionsTable'; -import { SettingsNav } from '@/components/settings/nav'; -import { SidePage } from '@/layouts/SidebarPage'; - -export const Route = createFileRoute('/settings/sessions')({ - component: RouteComponent, -}); - -function RouteComponent() { - return ( - }> - - - ); -} diff --git a/web/src/routes/settings/storage.tsx b/web/src/routes/settings/storage.tsx deleted file mode 100644 index 184b633..0000000 --- a/web/src/routes/settings/storage.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import { createFileRoute } from '@tanstack/react-router'; - -import { SettingsNav } from '@/components/settings/nav'; -import { StorageDetails } from '@/components/settings/StorageDetails'; -import { SidePage } from '@/layouts/SidebarPage'; - -export const Route = createFileRoute('/settings/storage')({ - component: RouteComponent, -}); - -function RouteComponent() { - return ( - }> - - - ); -} diff --git a/web/src/routes/settings/tags.tsx b/web/src/routes/settings/tags.tsx deleted file mode 100644 index 8f32bd6..0000000 --- a/web/src/routes/settings/tags.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { createFileRoute } from '@tanstack/react-router'; - -import { SettingsNav } from '@/components/settings/nav'; -import { SidePage } from '@/layouts/SidebarPage'; - -export const Route = createFileRoute('/settings/tags')({ - component: RouteComponent, -}); - -function RouteComponent() { - return ( - }> -
Hello "/settings/tags"!
-
- ); -} diff --git a/web/src/routes/settings/users.tsx b/web/src/routes/settings/users.tsx deleted file mode 100644 index 67889b7..0000000 --- a/web/src/routes/settings/users.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { createFileRoute } from '@tanstack/react-router'; - -import { SettingsNav } from '@/components/settings/nav'; -import { SidePage } from '@/layouts/SidebarPage'; - -export const Route = createFileRoute('/settings/users')({ - component: RouteComponent, -}); - -function RouteComponent() { - return ( - }> - Hello "/settings/users"! - - ); -}