diff --git a/apps/console/src/pages/iam/organizations/people/_components/AddPersonDialog.tsx b/apps/console/src/pages/iam/organizations/people/_components/AddPersonDialog.tsx
index c0190fdf6..306da419a 100644
--- a/apps/console/src/pages/iam/organizations/people/_components/AddPersonDialog.tsx
+++ b/apps/console/src/pages/iam/organizations/people/_components/AddPersonDialog.tsx
@@ -1,5 +1,5 @@
import { useTranslate } from "@probo/i18n";
-import { Dialog } from "@probo/ui";
+import { Dialog, useDialogRef } from "@probo/ui";
import { type PropsWithChildren } from "react";
import type { DataID } from "relay-runtime";
@@ -9,7 +9,7 @@ export function AddPersonDialog(props: PropsWithChildren<{
connectionId: DataID;
}>) {
const { children, connectionId } = props;
-
+ const dialogRef = useDialogRef();
const { __ } = useTranslate();
return (
@@ -17,9 +17,10 @@ export function AddPersonDialog(props: PropsWithChildren<{
title={__("Add Person")}
trigger={children}
className="max-w-xl"
+ ref={dialogRef}
>
-
+
dialogRef.current?.close()} />
);
diff --git a/apps/console/src/pages/iam/organizations/people/_components/PersonForm.tsx b/apps/console/src/pages/iam/organizations/people/_components/PersonForm.tsx
index dac5c81fc..7d93a1f12 100644
--- a/apps/console/src/pages/iam/organizations/people/_components/PersonForm.tsx
+++ b/apps/console/src/pages/iam/organizations/people/_components/PersonForm.tsx
@@ -77,6 +77,7 @@ export function PersonForm(props: {
connectionId?: DataID;
disabled?: boolean;
defaultValues?: z.infer;
+ onSubmit?: () => void;
}) {
const {
id,
@@ -92,6 +93,7 @@ export function PersonForm(props: {
contractStartDate: null,
contractEndDate: null,
},
+ onSubmit,
} = props;
const organizationId = useOrganizationId();
@@ -99,7 +101,7 @@ export function PersonForm(props: {
const { role } = use(CurrentUser);
const availableRoles = getAssignableRoles(role);
- const { control, formState, handleSubmit, register, reset }
+ const { control, formState, handleSubmit: handleSubmitWrapper, register, reset }
= useFormWithSchema(schema, { defaultValues });
const watchedRole = useWatch({
control,
@@ -120,7 +122,7 @@ export function PersonForm(props: {
errorMessage: __("Failed to update person"),
},
);
- const onSubmit = handleSubmit(async (data: z.infer) => {
+ const handleSubmit = handleSubmitWrapper(async (data: z.infer) => {
const input = {
fullName: data.fullName,
emailAddress: data.emailAddress,
@@ -137,6 +139,7 @@ export function PersonForm(props: {
variables: { input: { ...input, id } },
onCompleted: () => {
reset(data);
+ onSubmit?.();
},
});
} else {
@@ -147,13 +150,14 @@ export function PersonForm(props: {
},
onCompleted: () => {
reset(data);
+ onSubmit?.();
},
});
}
});
return (
-