From 6c1f2372ed6aa203d1f89bfcc6487bf3501b3ca6 Mon Sep 17 00:00:00 2001 From: Mauricio Siu Date: Sun, 1 Mar 2026 14:15:47 -0600 Subject: [PATCH] refactor: clean up project dashboard and API response structure Removed unused imports and redundant code in the project dashboard component to enhance readability. Updated the API project router to streamline the data structure by eliminating unnecessary domain retrievals, while ensuring essential application and compose details are still included. This refactor improves maintainability and optimizes data handling for the project management interface. --- .../components/dashboard/projects/show.tsx | 128 ------------------ .../settings/users/add-permissions.tsx | 1 - apps/dokploy/server/api/routers/project.ts | 10 +- 3 files changed, 4 insertions(+), 135 deletions(-) diff --git a/apps/dokploy/components/dashboard/projects/show.tsx b/apps/dokploy/components/dashboard/projects/show.tsx index c3d4d498b..f25fb6d47 100644 --- a/apps/dokploy/components/dashboard/projects/show.tsx +++ b/apps/dokploy/components/dashboard/projects/show.tsx @@ -2,7 +2,6 @@ import { AlertTriangle, ArrowUpDown, BookIcon, - ExternalLinkIcon, FolderInput, Loader2, MoreHorizontalIcon, @@ -16,7 +15,6 @@ import { toast } from "sonner"; import { BreadcrumbSidebar } from "@/components/shared/breadcrumb-sidebar"; import { DateTooltip } from "@/components/shared/date-tooltip"; import { FocusShortcutInput } from "@/components/shared/focus-shortcut-input"; -import { StatusTooltip } from "@/components/shared/status-tooltip"; import { AlertDialog, AlertDialogAction, @@ -40,10 +38,8 @@ import { import { DropdownMenu, DropdownMenuContent, - DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, - DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { @@ -280,14 +276,6 @@ export const ShowProjects = () => { ) .reduce((acc, curr) => acc + curr, 0); - const haveServicesWithDomains = project?.environments - .map( - (env) => - env.applications.length > 0 || - env.compose.length > 0, - ) - .some(Boolean); - // Find default environment from accessible environments, or fall back to first accessible environment const accessibleEnvironment = project?.environments.find((env) => env.isDefault) || @@ -313,122 +301,6 @@ export const ShowProjects = () => { }} > - {haveServicesWithDomains ? ( - - - - - e.stopPropagation()} - > - {project.environments.some( - (env) => env.applications.length > 0, - ) && ( - - - Applications - - {project.environments.map((env) => - env.applications.map((app) => ( -
- - - - {app.name} - - - - {app.domains.map((domain) => ( - - - - {domain.host} - - - - - ))} - -
- )), - )} -
- )} - {project.environments.some( - (env) => env.compose.length > 0, - ) && ( - - - Compose - - {project.environments.map((env) => - env.compose.map((comp) => ( -
- - - - {comp.name} - - - - {comp.domains.map((domain) => ( - - - - {domain.host} - - - - - ))} - -
- )), - )} -
- )} -
-
- ) : null} diff --git a/apps/dokploy/components/dashboard/settings/users/add-permissions.tsx b/apps/dokploy/components/dashboard/settings/users/add-permissions.tsx index eb3ca3f7a..d0a2a26fa 100644 --- a/apps/dokploy/components/dashboard/settings/users/add-permissions.tsx +++ b/apps/dokploy/components/dashboard/settings/users/add-permissions.tsx @@ -33,7 +33,6 @@ type ProjectForPermissions = RouterOutputs["project"]["allForPermissions"][number]; type EnvironmentForPermissions = ProjectForPermissions["environments"][number]; -type Project = ProjectForPermissions; type Environment = EnvironmentForPermissions; export type Services = { diff --git a/apps/dokploy/server/api/routers/project.ts b/apps/dokploy/server/api/routers/project.ts index 395530c43..b026b6d2c 100644 --- a/apps/dokploy/server/api/routers/project.ts +++ b/apps/dokploy/server/api/routers/project.ts @@ -284,11 +284,10 @@ export const projectRouter = createTRPCRouter({ environments: { with: { applications: { - with: { - domains: true, - }, columns: { applicationId: true, + name: true, + applicationStatus: true, }, }, mariadb: { @@ -317,11 +316,10 @@ export const projectRouter = createTRPCRouter({ }, }, compose: { - with: { - domains: true, - }, columns: { composeId: true, + name: true, + composeStatus: true, }, }, },