fix: move service token form to separate component to prevent reset issue

This commit is contained in:
Scott Wilson
2025-06-17 14:10:48 -07:00
parent 796d6bfc85
commit 0a39e138a1
@@ -67,13 +67,12 @@ type Props = {
handlePopUpToggle: (popUpName: keyof UsePopUpState<["createAPIToken"]>, state?: boolean) => void; handlePopUpToggle: (popUpName: keyof UsePopUpState<["createAPIToken"]>, state?: boolean) => void;
}; };
export const AddServiceTokenModal = ({ popUp, handlePopUpToggle }: Props) => { const ServiceTokenForm = () => {
const { t } = useTranslation(); const { t } = useTranslation();
const { currentWorkspace } = useWorkspace(); const { currentWorkspace } = useWorkspace();
const { const {
control, control,
reset,
handleSubmit, handleSubmit,
formState: { isSubmitting } formState: { isSubmitting }
} = useForm<FormData>({ } = useForm<FormData>({
@@ -152,24 +151,7 @@ export const AddServiceTokenModal = ({ popUp, handlePopUpToggle }: Props) => {
} }
}; };
return ( return !hasServiceToken ? (
<Modal
isOpen={popUp?.createAPIToken?.isOpen}
onOpenChange={(open) => {
handlePopUpToggle("createAPIToken", open);
reset();
setToken("");
}}
>
<ModalContent
title={
t("section.token.add-dialog.title", {
target: currentWorkspace?.name
}) as string
}
subTitle={t("section.token.add-dialog.description") as string}
>
{!hasServiceToken ? (
<form onSubmit={handleSubmit(onFormSubmit)}> <form onSubmit={handleSubmit(onFormSubmit)}>
<Controller <Controller
control={control} control={control}
@@ -295,11 +277,7 @@ export const AddServiceTokenModal = ({ popUp, handlePopUpToggle }: Props) => {
] as const; ] as const;
return ( return (
<FormControl <FormControl label="Permissions" errorText={error?.message} isError={Boolean(error)}>
label="Permissions"
errorText={error?.message}
isError={Boolean(error)}
>
<> <>
{options.map(({ label, value: optionValue }) => { {options.map(({ label, value: optionValue }) => {
return ( return (
@@ -326,12 +304,7 @@ export const AddServiceTokenModal = ({ popUp, handlePopUpToggle }: Props) => {
}} }}
/> />
<div className="mt-8 flex items-center"> <div className="mt-8 flex items-center">
<Button <Button className="mr-4" type="submit" isDisabled={isSubmitting} isLoading={isSubmitting}>
className="mr-4"
type="submit"
isDisabled={isSubmitting}
isLoading={isSubmitting}
>
Create Create
</Button> </Button>
<ModalClose asChild> <ModalClose asChild>
@@ -356,7 +329,30 @@ export const AddServiceTokenModal = ({ popUp, handlePopUpToggle }: Props) => {
</span> </span>
</IconButton> </IconButton>
</div> </div>
)} );
};
export const AddServiceTokenModal = ({ popUp, handlePopUpToggle }: Props) => {
const { t } = useTranslation();
const { currentWorkspace } = useWorkspace();
return (
<Modal
isOpen={popUp?.createAPIToken?.isOpen}
onOpenChange={(open) => {
handlePopUpToggle("createAPIToken", open);
}}
>
<ModalContent
title={
t("section.token.add-dialog.title", {
target: currentWorkspace?.name
}) as string
}
subTitle={t("section.token.add-dialog.description") as string}
>
<ServiceTokenForm />
</ModalContent> </ModalContent>
</Modal> </Modal>
); );