From 9368849bf5e0b9494ca5b52b37f58ed030a031b6 Mon Sep 17 00:00:00 2001 From: Jairo Campos Date: Mon, 13 May 2019 07:46:24 -0600 Subject: [PATCH] Fixed delete issue --- .../shex-form-builder.component.js | 2 +- src/lib/hooks/useForm.js | 6 ++---- src/lib/hooks/useShex.js | 18 ++++-------------- 3 files changed, 7 insertions(+), 19 deletions(-) diff --git a/src/lib/components/ShexFormBuilder/shex-form-builder.component.js b/src/lib/components/ShexFormBuilder/shex-form-builder.component.js index 58e1991d..7db461c1 100644 --- a/src/lib/components/ShexFormBuilder/shex-form-builder.component.js +++ b/src/lib/components/ShexFormBuilder/shex-form-builder.component.js @@ -67,7 +67,7 @@ const ShexFormBuilder = ({ const onDelete = useCallback(async (shexj: ShexJ, parent: any = false) => { try { const deleted = await deleteFn(shexj, parent); - if (deleted) { + if (!formError) { updateShexJ(deleted, "delete"); successCallback(); } diff --git a/src/lib/hooks/useForm.js b/src/lib/hooks/useForm.js index 0d587afe..d36cb259 100644 --- a/src/lib/hooks/useForm.js +++ b/src/lib/hooks/useForm.js @@ -68,7 +68,6 @@ export const useForm = (documentUri: String) => { const onDelete = async (shexj: ShexJ, parent: any = false) => { try { - let deleted = null; const { _formFocus } = shexj; const { parentSubject, name, value, isNew } = _formFocus; if (_formFocus && !isNew) { @@ -79,12 +78,11 @@ export const useForm = (documentUri: String) => { await ldflex[parentSubject][predicate].delete(value); } - deleted = name; } // Delete field from formValues object const { [name]: omit, ...res } = formValues; setFormValues(res); - return deleted; + return name; } catch (error) { onError(error); } @@ -208,7 +206,7 @@ export const useForm = (documentUri: String) => { value = namedNode(value); defaultValue = namedNode(defaultValue); } - + const field = { ...formValues[key], value: _setFieldValue( diff --git a/src/lib/hooks/useShex.js b/src/lib/hooks/useShex.js index 64bded90..171a2471 100644 --- a/src/lib/hooks/useShex.js +++ b/src/lib/hooks/useShex.js @@ -309,22 +309,12 @@ export const useShex = (fileShex: String, documentUri: String, rootShape: String for (let y = 0; y < newExpressions[i]._formValues.length; y++) { if (newExpressions[i]._formValues[y]._formFocus.name === options.key) { - if (action === 'delete') { // If field is the last one will keep it but will update value and name - newExpressions[i]._formValues.splice(y, y + 1); - if(newExpressions[i]._formValues.length > 1) { - - } /* else { - newExpressions[i]._formValues[0] = { - ...newExpressions[i]._formValues[0], - _formFocus: { - ...newExpressions[i]._formValues[0]._formFocus, - value: '', - name: unique() - } - } - } */ + let toIndex = newExpressions[i]._formValues.length === 1 ? 1 : 0; + + newExpressions[i]._formValues.splice(y, y + toIndex); + } else { newExpressions[i]._formValues[y] = { ...newExpressions[i]._formValues[y],