From 54b6a850b7dece9daeec6205cc361f643cf7c370 Mon Sep 17 00:00:00 2001 From: djknaeckebrot Date: Tue, 10 Dec 2024 14:15:39 +0100 Subject: [PATCH] refactor: make command globally available --- .../components/dashboard/projects/show.tsx | 4 - .../components/dashboard/search-command.tsx | 113 +++++++++--------- apps/dokploy/pages/_app.tsx | 106 ++++++++-------- 3 files changed, 111 insertions(+), 112 deletions(-) diff --git a/apps/dokploy/components/dashboard/projects/show.tsx b/apps/dokploy/components/dashboard/projects/show.tsx index b4c86143..d05bbba2 100644 --- a/apps/dokploy/components/dashboard/projects/show.tsx +++ b/apps/dokploy/components/dashboard/projects/show.tsx @@ -36,7 +36,6 @@ import { Fragment } from "react"; import { toast } from "sonner"; import { ProjectEnviroment } from "./project-enviroment"; import { UpdateProject } from "./update"; -import { SearchCommand } from "@/components/dashboard/search-command"; export const ShowProjects = () => { const utils = api.useUtils(); @@ -54,9 +53,6 @@ export const ShowProjects = () => { return ( <> - {/*@ts-expect-error Type mismatch*/} - - {data?.length === 0 && (
diff --git a/apps/dokploy/components/dashboard/search-command.tsx b/apps/dokploy/components/dashboard/search-command.tsx index 69813d7f..3bbacae9 100644 --- a/apps/dokploy/components/dashboard/search-command.tsx +++ b/apps/dokploy/components/dashboard/search-command.tsx @@ -25,17 +25,17 @@ import { PostgresqlIcon, RedisIcon, } from "@/components/icons/data-tools-icons"; +import { api } from "@/utils/api"; +import { truncate } from "lodash"; type Project = Awaited>; -interface Props { - data: Project[]; -} - -export const SearchCommand = ({ data }: Props) => { +export const SearchCommand = () => { const router = useRouter(); const [open, setOpen] = React.useState(false); + const { data } = api.project.all.useQuery(); + React.useEffect(() => { const down = (e: KeyboardEvent) => { if (e.key === "j" && (e.metaKey || e.ctrlKey)) { @@ -53,61 +53,11 @@ export const SearchCommand = ({ data }: Props) => { return (
- + No projects added yet. Click on Create project. - - { - router.push("/dashboard/projects"); - setOpen(false); - }} - > - Projects - - { - router.push("/dashboard/monitoring"); - setOpen(false); - }} - > - Monitoring - - { - router.push("/dashboard/traefik"); - setOpen(false); - }} - > - Treafik - - { - router.push("/dashboard/docker"); - setOpen(false); - }} - > - Docker - - { - router.push("/dashboard/requests"); - setOpen(false); - }} - > - Requests - - { - router.push("/dashboard/profile"); - setOpen(false); - }} - > - Settings - - {data?.map((project) => ( @@ -162,6 +112,57 @@ export const SearchCommand = ({ data }: Props) => { })} + +
diff --git a/apps/dokploy/pages/_app.tsx b/apps/dokploy/pages/_app.tsx index e7c0befc..f91f378a 100644 --- a/apps/dokploy/pages/_app.tsx +++ b/apps/dokploy/pages/_app.tsx @@ -11,72 +11,74 @@ import { Inter } from "next/font/google"; import Head from "next/head"; import Script from "next/script"; import type { ReactElement, ReactNode } from "react"; +import { SearchCommand } from "@/components/dashboard/search-command"; const inter = Inter({ subsets: ["latin"] }); export type NextPageWithLayout

= NextPage & { - getLayout?: (page: ReactElement) => ReactNode; - // session: Session | null; - theme?: string; + getLayout?: (page: ReactElement) => ReactNode; + // session: Session | null; + theme?: string; }; type AppPropsWithLayout = AppProps & { - Component: NextPageWithLayout; + Component: NextPageWithLayout; }; const MyApp = ({ - Component, - pageProps: { ...pageProps }, + Component, + pageProps: { ...pageProps }, }: AppPropsWithLayout) => { - const getLayout = Component.getLayout ?? ((page) => page); + const getLayout = Component.getLayout ?? ((page) => page); - return ( - <> - - - Dokploy - - {process.env.NEXT_PUBLIC_UMAMI_HOST && - process.env.NEXT_PUBLIC_UMAMI_WEBSITE_ID && ( -