From 2d3c6a0b1c9741a9f7ca0dd3d0fc118c3218f74c Mon Sep 17 00:00:00 2001 From: ogzhanolguncu Date: Thu, 12 Feb 2026 15:53:51 +0300 Subject: [PATCH 1/2] fix: domain refetch and promotion disable rule --- .../[projectId]/(overview)/data-provider.tsx | 27 ++++++++++++------- .../components/table/deployments-list.tsx | 4 ++- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/web/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/data-provider.tsx b/web/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/data-provider.tsx index cfbd8a4d06..ebcbb43ea5 100644 --- a/web/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/data-provider.tsx +++ b/web/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/data-provider.tsx @@ -7,7 +7,7 @@ import type { Environment } from "@/lib/collections/deploy/environments"; import type { Project } from "@/lib/collections/deploy/projects"; import { eq, useLiveQuery } from "@tanstack/react-db"; import { useParams } from "next/navigation"; -import { type PropsWithChildren, createContext, useContext, useMemo } from "react"; +import { type PropsWithChildren, createContext, useContext, useEffect, useMemo } from "react"; type ProjectDataContextType = { projectId: string; @@ -43,15 +43,6 @@ export const ProjectDataProvider = ({ children }: PropsWithChildren) => { throw new Error("ProjectDataProvider must be used within a project route"); } - const domainsQuery = useLiveQuery( - (q) => - q - .from({ domain: collection.domains }) - .where(({ domain }) => eq(domain.projectId, projectId)) - .orderBy(({ domain }) => domain.createdAt, "desc"), - [projectId], - ); - const deploymentsQuery = useLiveQuery( (q) => q @@ -67,6 +58,22 @@ export const ProjectDataProvider = ({ children }: PropsWithChildren) => { [projectId], ); + const project = projectQuery.data?.at(0); + const domainsQuery = useLiveQuery( + (q) => + q + .from({ domain: collection.domains }) + .where(({ domain }) => eq(domain.projectId, projectId)) + .orderBy(({ domain }) => domain.createdAt, "desc"), + [projectId], + ); + // refetch domains when live deployment changes + useEffect(() => { + if (project?.liveDeploymentId) { + collection.domains.utils.refetch(); + } + }, [project?.liveDeploymentId]); + const environmentsQuery = useLiveQuery( (q) => q.from({ env: collection.environments }).where(({ env }) => eq(env.projectId, projectId)), diff --git a/web/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/deployments/components/table/deployments-list.tsx b/web/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/deployments/components/table/deployments-list.tsx index a20eb56abe..6f5a02a51c 100644 --- a/web/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/deployments/components/table/deployments-list.tsx +++ b/web/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/deployments/components/table/deployments-list.tsx @@ -292,7 +292,9 @@ export const DeploymentsList = () => { deployment: Deployment; environment?: Environment; }) => { - const liveDeployment = getDeploymentById(deployment.id); + const liveDeployment = project?.liveDeploymentId + ? getDeploymentById(project?.liveDeploymentId) + : undefined; return (
Date: Thu, 12 Feb 2026 17:36:33 +0300 Subject: [PATCH 2/2] fix: regression --- .../custom-domain-row.tsx | 2 +- .../env-variables-section/add-env-vars.tsx | 2 +- .../details/env-variables-section/index.tsx | 45 +++++++++++++------ 3 files changed, 33 insertions(+), 16 deletions(-) diff --git a/web/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/details/custom-domains-section/custom-domain-row.tsx b/web/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/details/custom-domains-section/custom-domain-row.tsx index 7eb518a1be..4d7eb9d396 100644 --- a/web/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/details/custom-domains-section/custom-domain-row.tsx +++ b/web/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/details/custom-domains-section/custom-domain-row.tsx @@ -165,7 +165,7 @@ export function CustomDomainRow({ domain, onDelete, onRetry }: CustomDomainRowPr variant="outline" disabled={isLoading} onClick={() => setIsConfirmOpen(true)} - className="size-7 text-gray-9 hover:text-error-9 opacity-0 group-hover:opacity-100 transition-opacity" + className="size-7 text-gray-9 hover:text-error-9" > diff --git a/web/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/details/env-variables-section/add-env-vars.tsx b/web/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/details/env-variables-section/add-env-vars.tsx index 12dce95a4e..80f379311e 100644 --- a/web/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/details/env-variables-section/add-env-vars.tsx +++ b/web/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/details/env-variables-section/add-env-vars.tsx @@ -291,7 +291,7 @@ export function AddEnvVars({ className="h-[32px] w-[32px] text-gray-9 hover:text-gray-11 hover:bg-gray-3 shrink-0" > - {" "} +
); })} diff --git a/web/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/details/env-variables-section/index.tsx b/web/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/details/env-variables-section/index.tsx index f69cee1b4d..bbafc3b75b 100644 --- a/web/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/details/env-variables-section/index.tsx +++ b/web/apps/dashboard/app/(app)/[workspaceSlug]/projects/[projectId]/(overview)/details/env-variables-section/index.tsx @@ -64,20 +64,37 @@ export function EnvironmentVariablesSection({ {title} {envVars.length > 0 && `(${envVars.length})`} - +
+ {!isAddingNew && ( + + )} + +
{/* Expandable Content */}