From 078692c8181da533e6c570f3e1a8a4fef3107e2c Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Thu, 4 Dec 2025 17:56:11 -0500 Subject: [PATCH] invalidate queries on save --- messages/en-US.json | 3 ++- .../settings/clients/machine/create/page.tsx | 2 +- .../CreateInternalResourceDialog.tsx | 10 ++------ src/components/EditInternalResourceDialog.tsx | 23 ++++++++++++------- 4 files changed, 20 insertions(+), 18 deletions(-) diff --git a/messages/en-US.json b/messages/en-US.json index 8f219a41..ee2a7b3d 100644 --- a/messages/en-US.json +++ b/messages/en-US.json @@ -2233,5 +2233,6 @@ "identifier": "Identifier", "deviceLoginUseDifferentAccount": "Not you? Use a different account.", "deviceLoginDeviceRequestingAccessToAccount": "A device is requesting access to this account.", - "noData": "No Data" + "noData": "No Data", + "machineClients": "Machine Clients" } diff --git a/src/app/[orgId]/settings/clients/machine/create/page.tsx b/src/app/[orgId]/settings/clients/machine/create/page.tsx index 67972eb6..f1c231a0 100644 --- a/src/app/[orgId]/settings/clients/machine/create/page.tsx +++ b/src/app/[orgId]/settings/clients/machine/create/page.tsx @@ -262,7 +262,7 @@ export default function Page() { if (res && res.status === 201) { const data = res.data.data; - router.push(`/${orgId}/settings/clients/${data.clientId}`); + router.push(`/${orgId}/settings/clients/machine/${data.clientId}`); } setCreateLoading(false); diff --git a/src/components/CreateInternalResourceDialog.tsx b/src/components/CreateInternalResourceDialog.tsx index 9db438a8..bf6914ae 100644 --- a/src/components/CreateInternalResourceDialog.tsx +++ b/src/components/CreateInternalResourceDialog.tsx @@ -528,7 +528,7 @@ export default function CreateInternalResourceDialog({ )} /> - {/* + {/* {mode === "port" && ( <>
@@ -811,7 +811,7 @@ export default function CreateInternalResourceDialog({ render={({ field }) => ( - {t("clients")} + {t("machineClients")} - - {t( - "resourceClientDescription" - ) || - "Machine clients that can access this resource"} - )} /> diff --git a/src/components/EditInternalResourceDialog.tsx b/src/components/EditInternalResourceDialog.tsx index 91ac57e5..eaa9c126 100644 --- a/src/components/EditInternalResourceDialog.tsx +++ b/src/components/EditInternalResourceDialog.tsx @@ -45,7 +45,7 @@ import { ListClientsResponse } from "@server/routers/client/listClients"; import { Tag, TagInput } from "@app/components/tags/tag-input"; import { AxiosResponse } from "axios"; import { UserType } from "@server/types/UserTypes"; -import { useQueries, useQuery } from "@tanstack/react-query"; +import { useQueries, useQuery, useQueryClient } from "@tanstack/react-query"; import { orgQueries, resourceQueries } from "@app/lib/queries"; type InternalResourceData = { @@ -80,6 +80,7 @@ export default function EditInternalResourceDialog({ }: EditInternalResourceDialogProps) { const t = useTranslations(); const api = createApiClient(useEnvContext()); + const queryClient = useQueryClient(); const [isSubmitting, setIsSubmitting] = useState(false); const formSchema = z.object({ @@ -310,6 +311,16 @@ export default function EditInternalResourceDialog({ // }) // ]); + await queryClient.invalidateQueries( + resourceQueries.resourceRoles({ resourceId: resource.id }) + ); + await queryClient.invalidateQueries( + resourceQueries.resourceUsers({ resourceId: resource.id }) + ); + await queryClient.invalidateQueries( + resourceQueries.resourceClients({ resourceId: resource.id }) + ); + toast({ title: t("editInternalResourceDialogSuccess"), description: t( @@ -367,6 +378,8 @@ export default function EditInternalResourceDialog({ users: [], clients: [] }); + // Reset initialization flag so form can re-initialize with fresh data when reopened + hasInitialized.current = false; } setOpen(open); }} @@ -730,7 +743,7 @@ export default function EditInternalResourceDialog({ render={({ field }) => ( - {t("clients")} + {t("machineClients")} - - {t( - "resourceClientDescription" - ) || - "Machine clients that can access this resource"} - )} />