diff --git a/ui-v2/src/components/settings/heading.tsx b/ui-v2/src/components/settings/heading.tsx new file mode 100644 index 000000000000..65fe7291b6fc --- /dev/null +++ b/ui-v2/src/components/settings/heading.tsx @@ -0,0 +1,27 @@ +import { + Breadcrumb, + BreadcrumbItem, + BreadcrumbList, +} from "@/components/ui/breadcrumb"; + +type HeadingProps = { + version: string; +}; + +export const Heading = ({ version }: HeadingProps) => { + return ( +
+ + + + Settings + + + +
+
Version
+
{version}
+
+
+ ); +}; diff --git a/ui-v2/src/components/settings/server-settings.tsx b/ui-v2/src/components/settings/server-settings.tsx new file mode 100644 index 000000000000..989d96911068 --- /dev/null +++ b/ui-v2/src/components/settings/server-settings.tsx @@ -0,0 +1,14 @@ +type ServerSettingsProps = { + settings: Record; +}; + +export const ServerSettings = ({ settings }: ServerSettingsProps) => { + return ( +
+ +
+ TODO: {JSON.stringify(settings)} +
+
+ ); +}; diff --git a/ui-v2/src/components/settings/settings-page.tsx b/ui-v2/src/components/settings/settings-page.tsx new file mode 100644 index 000000000000..6fe188efa599 --- /dev/null +++ b/ui-v2/src/components/settings/settings-page.tsx @@ -0,0 +1,20 @@ +import { buildGetSettingsQuery, buildGetVersionQuery } from "@/api/admin"; + +import { useSuspenseQuery } from "@tanstack/react-query"; +import { Heading } from "./heading"; +import { ServerSettings } from "./server-settings"; +import { ThemeSwitch } from "./theme-switch"; + +export const SettingsPage = () => { + const { data: settingsData } = useSuspenseQuery(buildGetSettingsQuery()); + const { data: versionData } = useSuspenseQuery(buildGetVersionQuery()); + + return ( +
+ + + {/** nb: open API needs to update schema */} + } /> +
+ ); +}; diff --git a/ui-v2/src/components/settings/theme-switch.tsx b/ui-v2/src/components/settings/theme-switch.tsx new file mode 100644 index 000000000000..18f6640762da --- /dev/null +++ b/ui-v2/src/components/settings/theme-switch.tsx @@ -0,0 +1,17 @@ +import { Icon } from "@/components/ui/icons"; +import { Switch } from "@/components/ui/switch"; + +// TODO: Switch for dark mode provider + +export const ThemeSwitch = () => { + return ( +
+ +
+ + + +
+
+ ); +}; diff --git a/ui-v2/src/components/ui/icons/constants.ts b/ui-v2/src/components/ui/icons/constants.ts index e61a7166d719..7551c6a54029 100644 --- a/ui-v2/src/components/ui/icons/constants.ts +++ b/ui-v2/src/components/ui/icons/constants.ts @@ -17,6 +17,7 @@ import { Cpu, ExternalLink, Loader2, + Moon, MoreHorizontal, MoreVertical, PanelLeft, @@ -26,6 +27,7 @@ import { Rocket, Search, ServerCrash, + Sun, Trash2, Variable, Workflow, @@ -51,6 +53,7 @@ export const ICONS = { Cpu, ExternalLink, Loader2, + Moon, MoreHorizontal, MoreVertical, PanelLeft, @@ -60,6 +63,7 @@ export const ICONS = { Rocket, Search, ServerCrash, + Sun, Trash2, Variable, Workflow, diff --git a/ui-v2/src/routes/settings.tsx b/ui-v2/src/routes/settings.tsx index bab155424e8a..3f39f2b465cd 100644 --- a/ui-v2/src/routes/settings.tsx +++ b/ui-v2/src/routes/settings.tsx @@ -1,8 +1,9 @@ import { buildGetSettingsQuery, buildGetVersionQuery } from "@/api/admin"; +import { SettingsPage } from "@/components/settings/settings-page"; import { createFileRoute } from "@tanstack/react-router"; export const Route = createFileRoute("/settings")({ - component: RouteComponent, + component: SettingsPage, loader: ({ context }) => Promise.all([ context.queryClient.ensureQueryData(buildGetSettingsQuery()), @@ -10,7 +11,3 @@ export const Route = createFileRoute("/settings")({ ]), wrapInSuspense: true, }); - -function RouteComponent() { - return "🚧🚧 Pardon our dust! 🚧🚧"; -}