From a87a3a3a3e6d2c8cbd0d610c49645c7c857fbd07 Mon Sep 17 00:00:00 2001 From: chavda-bhavik Date: Wed, 17 Jul 2024 15:44:25 +0530 Subject: [PATCH 1/3] feat: Added auto focus to create import input --- .../imports/forms/CreateImportForm.tsx | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/apps/web/components/imports/forms/CreateImportForm.tsx b/apps/web/components/imports/forms/CreateImportForm.tsx index b4956a3cd..407dbb929 100644 --- a/apps/web/components/imports/forms/CreateImportForm.tsx +++ b/apps/web/components/imports/forms/CreateImportForm.tsx @@ -1,6 +1,6 @@ import { useForm } from 'react-hook-form'; import { useFocusTrap } from '@mantine/hooks'; -import { Stack, TextInput as Input } from '@mantine/core'; +import { Stack, TextInput as Input, FocusTrap } from '@mantine/core'; import { Button } from '@ui/button'; @@ -17,13 +17,21 @@ export function CreateImportForm({ onSubmit }: CreateImportFormProps) { } = useForm(); return ( -
- - - - -
+ +
+ + + + +
+
); } From 959d77ac021762b4f8c4cb5ed74e307ca9b31c89 Mon Sep 17 00:00:00 2001 From: chavda-bhavik Date: Wed, 17 Jul 2024 15:46:13 +0530 Subject: [PATCH 2/3] fix: Auto column formatting --- .../app/review/usecases/do-review/base-review.usecase.ts | 6 +++--- apps/widget/src/components/Common/Table/Table.tsx | 5 +++-- apps/widget/src/components/widget/Phases/Phase3/Phase3.tsx | 4 ++-- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/apps/api/src/app/review/usecases/do-review/base-review.usecase.ts b/apps/api/src/app/review/usecases/do-review/base-review.usecase.ts index d6d243f99..e9008d427 100644 --- a/apps/api/src/app/review/usecases/do-review/base-review.usecase.ts +++ b/apps/api/src/app/review/usecases/do-review/base-review.usecase.ts @@ -111,13 +111,13 @@ export class BaseReview { break; case ColumnTypesEnum.NUMBER: property = { - allOf: [{ type: 'integer' }, ...(!column.isRequired ? [{ type: ['integer', 'null'] }] : [])], + allOf: [{ type: ['integer', 'null'] }], ...(!column.isRequired && { default: null }), }; break; case ColumnTypesEnum.DOUBLE: property = { - allOf: [{ type: 'number' }, ...(!column.isRequired ? [{ type: ['number', 'null'] }] : [])], + allOf: [{ type: ['number', 'null'] }], ...(!column.isRequired && { default: null }), }; break; @@ -281,7 +281,7 @@ export class BaseReview { if (heading === '_') return acc; let val = record[index]; - if (numberColumnHeadings.has(heading) && val !== '' && !isNaN(val)) val = Number(val); + if (numberColumnHeadings.has(heading)) val = val !== '' && !isNaN(val) ? Number(val) : null; if (typeof val === 'string') val = val.trim(); if (multiSelectColumnHeadings[heading]) { if (val) diff --git a/apps/widget/src/components/Common/Table/Table.tsx b/apps/widget/src/components/Common/Table/Table.tsx index 6c100a627..322786d0f 100644 --- a/apps/widget/src/components/Common/Table/Table.tsx +++ b/apps/widget/src/components/Common/Table/Table.tsx @@ -64,7 +64,8 @@ Handsontable.renderers.registerRenderer( TD.classList.add('custom-cell'); TD.ariaLabel = ''; const soureData = instance.getSourceDataAtRow(row) as IRecord; - let fieldValue = typeof soureData.record[name] === 'undefined' ? '' : soureData.record[name]; + let fieldValue = + typeof soureData.record[name] === 'undefined' || soureData.record[name] === null ? null : soureData.record[name]; if (typeof fieldValue === 'string' && fieldValue.length > name.length + 20) fieldValue = value.substring(0, name.length + 20) + '...'; @@ -91,7 +92,7 @@ Handsontable.renderers.registerRenderer( if (soureData.updated?.[name] || soureData.errors?.[name]) { valueSpan.classList.add('cell-value'); } - valueSpan.appendChild(document.createTextNode(fieldValue)); + if (fieldValue !== null) valueSpan.appendChild(document.createTextNode(fieldValue)); TD.appendChild(valueSpan); if (soureData.updated && soureData.updated[name]) { errorSvg.setAttribute('style', 'vertical-align: middle;float: right;cursor: pointer;color:#795e00;'); diff --git a/apps/widget/src/components/widget/Phases/Phase3/Phase3.tsx b/apps/widget/src/components/widget/Phases/Phase3/Phase3.tsx index e8c2241fa..710c2e559 100644 --- a/apps/widget/src/components/widget/Phases/Phase3/Phase3.tsx +++ b/apps/widget/src/components/widget/Phases/Phase3/Phase3.tsx @@ -111,12 +111,12 @@ export function Phase3(props: IPhase3Props) { currentData && oldVal != newVal && !(oldVal === '' && newVal === undefined) && - !(newVal === '' && oldVal === undefined) + !(newVal === '' && (oldVal === undefined || oldVal === null)) ) { if (!currentData[row].updated) { currentData[row].updated = {}; } - currentData[row].record[name] = newVal; + currentData[row].record[name] = newVal === '' ? null : newVal; currentData[row].updated[name] = true; setReviewData(currentData); updateRecord({ From e61d288bd0d0e1f02021ea2d01872f010b22b420 Mon Sep 17 00:00:00 2001 From: chavda-bhavik Date: Wed, 17 Jul 2024 15:46:50 +0530 Subject: [PATCH 3/3] fix: Column Form Values getting lost --- apps/web/components/imports/schema/ColumnsTable.tsx | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/apps/web/components/imports/schema/ColumnsTable.tsx b/apps/web/components/imports/schema/ColumnsTable.tsx index 985323a51..34a599bbd 100644 --- a/apps/web/components/imports/schema/ColumnsTable.tsx +++ b/apps/web/components/imports/schema/ColumnsTable.tsx @@ -43,9 +43,8 @@ export function ColumnsTable({ templateId }: ColumnsTableProps) { }); const onValidationsButtonClick = () => { - const name = getValues('name'); - const type = getValues('type'); - onValidationsClick({ name, key: name, type }); + const values = getValues(); + onValidationsClick({ ...values, key: values.key || values.name }); }; return (