From 9216e3685ac3bb6d5da137c42700cab592f5c7fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Goral?= Date: Mon, 24 Mar 2025 12:50:35 +0100 Subject: [PATCH 1/2] fixes --- src/components/Dialogs/CreateProjectDialogContainer.tsx | 8 ++++---- src/index.css | 5 +++++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/components/Dialogs/CreateProjectDialogContainer.tsx b/src/components/Dialogs/CreateProjectDialogContainer.tsx index 395e8dc8..ccadb9bb 100644 --- a/src/components/Dialogs/CreateProjectDialogContainer.tsx +++ b/src/components/Dialogs/CreateProjectDialogContainer.tsx @@ -33,7 +33,7 @@ export function CreateProjectDialogContainer({ const { register, handleSubmit, - reset, + resetField, setValue, formState: { errors }, watch, @@ -57,9 +57,6 @@ export function CreateProjectDialogContainer({ { name: username, roles: [MemberRoles.admin], kind: 'User' }, ]); } - return () => { - reset(); - }; }, []); const toast = useToast(); @@ -86,6 +83,9 @@ export function CreateProjectDialogContainer({ ); setIsOpen(false); toast.show(t('CreateProjectDialog.toastMessage')); + resetField('name'); + resetField('chargingTarget'); + resetField('displayName'); return true; } catch (e) { console.error(e); diff --git a/src/index.css b/src/index.css index 52252e3a..aa404973 100644 --- a/src/index.css +++ b/src/index.css @@ -107,4 +107,9 @@ body { ui5-form-item { margin-bottom: 24px; +} + +ui5-toast { + width: 50ch; + max-width: 100%; } \ No newline at end of file From bd0aa9356a3a6524e36b2f2d1e6026ed7b70134c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Goral?= Date: Mon, 24 Mar 2025 15:39:15 +0100 Subject: [PATCH 2/2] form fix --- .../Dialogs/CreateProjectDialogContainer.tsx | 16 +++++++++++----- .../Dialogs/CreateWorkspaceDialogContainer.tsx | 16 +++++++++++----- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/components/Dialogs/CreateProjectDialogContainer.tsx b/src/components/Dialogs/CreateProjectDialogContainer.tsx index ccadb9bb..7de801de 100644 --- a/src/components/Dialogs/CreateProjectDialogContainer.tsx +++ b/src/components/Dialogs/CreateProjectDialogContainer.tsx @@ -1,4 +1,4 @@ -import { useEffect, useRef } from 'react'; +import { useCallback, useEffect, useRef } from 'react'; import { useApiResourceMutation } from '../../lib/api/useApiResource'; import { ErrorDialogHandle } from '../Shared/ErrorMessageBox.tsx'; import { APIError } from '../../lib/api/error'; @@ -51,13 +51,22 @@ export function CreateProjectDialogContainer({ const { t } = useTranslation(); + const clearForm = useCallback(() => { + resetField('name'); + resetField('chargingTarget'); + resetField('displayName'); + }, [resetField]); + useEffect(() => { if (username) { setValue('members', [ { name: username, roles: [MemberRoles.admin], kind: 'User' }, ]); } - }, []); + if (!isOpen) { + clearForm(); + } + }, [resetField, setValue, username, isOpen, clearForm]); const toast = useToast(); @@ -83,9 +92,6 @@ export function CreateProjectDialogContainer({ ); setIsOpen(false); toast.show(t('CreateProjectDialog.toastMessage')); - resetField('name'); - resetField('chargingTarget'); - resetField('displayName'); return true; } catch (e) { console.error(e); diff --git a/src/components/Dialogs/CreateWorkspaceDialogContainer.tsx b/src/components/Dialogs/CreateWorkspaceDialogContainer.tsx index a8db0e83..96ab0f24 100644 --- a/src/components/Dialogs/CreateWorkspaceDialogContainer.tsx +++ b/src/components/Dialogs/CreateWorkspaceDialogContainer.tsx @@ -1,4 +1,4 @@ -import { useEffect, useRef } from 'react'; +import { useCallback, useEffect, useRef } from 'react'; import { useApiResourceMutation, useRevalidateApiResource, @@ -61,13 +61,22 @@ export function CreateWorkspaceDialogContainer({ const { t } = useTranslation(); + const clearForm = useCallback(() => { + resetField('name'); + resetField('chargingTarget'); + resetField('displayName'); + }, [resetField]); + useEffect(() => { if (username) { setValue('members', [ { name: username, roles: [MemberRoles.admin], kind: 'User' }, ]); } - }, [username]); + if (!isOpen) { + clearForm(); + } + }, [resetField, setValue, username, isOpen, clearForm]); const namespace = projectnameToNamespace(project); const toast = useToast(); @@ -94,9 +103,6 @@ export function CreateWorkspaceDialogContainer({ await revalidate(); setIsOpen(false); toast.show(t('CreateWorkspaceDialog.toastMessage')); - resetField('name'); - resetField('chargingTarget'); - resetField('displayName'); return true; } catch (e) { console.error(e);