From 1a71f61d24340cdf5b9a9d093681f7e568ccd214 Mon Sep 17 00:00:00 2001 From: Ragnar Laud Date: Mon, 4 Sep 2023 16:42:10 +0300 Subject: [PATCH] Fix column not being saved properly (#1429) * Fix email column not being saved * Fix URL fields not being clearable * Fix phone number clearing --- .../components/GenericEditableURLCellEditMode.tsx | 2 +- .../type/components/PhoneCellEdit.tsx | 5 ++++- .../ui/table/hooks/useUpdateEntityField.ts | 15 +++++++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableURLCellEditMode.tsx b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableURLCellEditMode.tsx index 8c381bf5d..6803202d0 100644 --- a/front/src/modules/ui/table/editable-cell/type/components/GenericEditableURLCellEditMode.tsx +++ b/front/src/modules/ui/table/editable-cell/type/components/GenericEditableURLCellEditMode.tsx @@ -30,7 +30,7 @@ export function GenericEditableURLCellEditMode({ columnDefinition }: OwnProps) { function handleSubmit(newText: string) { if (newText === fieldValue) return; - if (!isURL(newText)) return; + if (newText !== '' && !isURL(newText)) return; setFieldValue(newText); diff --git a/front/src/modules/ui/table/editable-cell/type/components/PhoneCellEdit.tsx b/front/src/modules/ui/table/editable-cell/type/components/PhoneCellEdit.tsx index d0f66a66d..01bb50cf0 100644 --- a/front/src/modules/ui/table/editable-cell/type/components/PhoneCellEdit.tsx +++ b/front/src/modules/ui/table/editable-cell/type/components/PhoneCellEdit.tsx @@ -85,7 +85,10 @@ export function PhoneCellEdit({ const wrapperRef = useRef(null); function handleSubmit() { - if (isPossiblePhoneNumber(internalValue ?? '')) { + if ( + internalValue === undefined || + isPossiblePhoneNumber(internalValue ?? '') + ) { onSubmit(internalValue ?? ''); } } diff --git a/front/src/modules/ui/table/hooks/useUpdateEntityField.ts b/front/src/modules/ui/table/hooks/useUpdateEntityField.ts index 36c67a121..08b1fa5f2 100644 --- a/front/src/modules/ui/table/hooks/useUpdateEntityField.ts +++ b/front/src/modules/ui/table/hooks/useUpdateEntityField.ts @@ -10,6 +10,8 @@ import { isViewFieldDoubleText } from '@/ui/editable-field/types/guards/isViewFi import { isViewFieldDoubleTextChip } from '@/ui/editable-field/types/guards/isViewFieldDoubleTextChip'; import { isViewFieldDoubleTextChipValue } from '@/ui/editable-field/types/guards/isViewFieldDoubleTextChipValue'; import { isViewFieldDoubleTextValue } from '@/ui/editable-field/types/guards/isViewFieldDoubleTextValue'; +import { isViewFieldEmail } from '@/ui/editable-field/types/guards/isViewFieldEmail'; +import { isViewFieldEmailValue } from '@/ui/editable-field/types/guards/isViewFieldEmailValue'; import { isViewFieldMoney } from '@/ui/editable-field/types/guards/isViewFieldMoney'; import { isViewFieldMoneyValue } from '@/ui/editable-field/types/guards/isViewFieldMoneyValue'; import { isViewFieldNumber } from '@/ui/editable-field/types/guards/isViewFieldNumber'; @@ -183,6 +185,19 @@ export function useUpdateEntityField() { ) { const newContent = newFieldValueUnknown; + updateEntity({ + variables: { + where: { id: currentEntityId }, + data: { [columnDefinition.metadata.fieldName]: newContent }, + }, + }); + // Email + } else if ( + isViewFieldEmail(columnDefinition) && + isViewFieldEmailValue(newFieldValueUnknown) + ) { + const newContent = newFieldValueUnknown; + updateEntity({ variables: { where: { id: currentEntityId },