From fee0071223fe70216f4a9aefa010b327e2864e9c Mon Sep 17 00:00:00 2001 From: Mauricio Siu Date: Fri, 28 Aug 2026 15:47:46 -0600 Subject: [PATCH 1/2] fix: disable delete/unlink user button while mutation is pending Prevents double-submit when clicking Confirm on the Delete/Unlink User dialog before the request resolves (issue #5063). --- .../components/dashboard/settings/users/show-users.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/dokploy/components/dashboard/settings/users/show-users.tsx b/apps/dokploy/components/dashboard/settings/users/show-users.tsx index 126981bc4..6e6743fd4 100644 --- a/apps/dokploy/components/dashboard/settings/users/show-users.tsx +++ b/apps/dokploy/components/dashboard/settings/users/show-users.tsx @@ -35,7 +35,7 @@ import { ChangeRole } from "./change-role"; export const ShowUsers = () => { const { data: isCloud } = api.settings.isCloud.useQuery(); const { data, isPending, refetch } = api.user.all.useQuery(); - const { mutateAsync } = api.user.remove.useMutation(); + const { mutateAsync, isPending: isRemoving } = api.user.remove.useMutation(); const { data: permissions } = api.user.getPermissions.useQuery(); const { data: hasValidLicense } = api.licenseKey.haveValidLicenseKey.useQuery(); @@ -237,6 +237,7 @@ export const ShowUsers = () => { title="Delete User" description="Are you sure you want to delete this user?" type="destructive" + disabled={isRemoving} onClick={async () => { await mutateAsync({ userId: member.user.id, @@ -269,6 +270,7 @@ export const ShowUsers = () => { title="Unlink User" description="Are you sure you want to unlink this user?" type="destructive" + disabled={isRemoving} onClick={async () => { if (!isCloud) { const orgCount = From a1cc2778f309bb8fc3ed8f9d97a6ec1fea95bdbd Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Fri, 28 Aug 2026 21:48:23 +0000 Subject: [PATCH 2/2] [autofix.ci] apply automated fixes --- .../dokploy/__test__/traefik/write-app-traefik-config.test.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/dokploy/__test__/traefik/write-app-traefik-config.test.ts b/apps/dokploy/__test__/traefik/write-app-traefik-config.test.ts index 2f80e811b..47142f2f9 100644 --- a/apps/dokploy/__test__/traefik/write-app-traefik-config.test.ts +++ b/apps/dokploy/__test__/traefik/write-app-traefik-config.test.ts @@ -10,7 +10,9 @@ const mocks = vi.hoisted(() => ({ vi.mock("@dokploy/server/utils/process/execAsync", async (importOriginal) => { const actual = - await importOriginal(); + await importOriginal< + typeof import("@dokploy/server/utils/process/execAsync") + >(); return { ...actual, execAsyncRemote: mocks.execAsyncRemote,