From cad08f29bb82196d6597f364af3eda29d6e2f8e0 Mon Sep 17 00:00:00 2001 From: Nikola Ubavic <53820106+ubavic@users.noreply.github.com> Date: Mon, 15 Nov 2021 22:32:50 +0100 Subject: [PATCH 1/3] fix: remove duplicate CashBox history --- new-lamassu-admin/src/pages/Maintenance/CashCassettes.js | 1 - 1 file changed, 1 deletion(-) diff --git a/new-lamassu-admin/src/pages/Maintenance/CashCassettes.js b/new-lamassu-admin/src/pages/Maintenance/CashCassettes.js index d138065c..0bb108bf 100644 --- a/new-lamassu-admin/src/pages/Maintenance/CashCassettes.js +++ b/new-lamassu-admin/src/pages/Maintenance/CashCassettes.js @@ -300,7 +300,6 @@ const CashCassettes = () => { {showHistory && ( )} - {showHistory && } Date: Tue, 16 Nov 2021 16:01:42 +0100 Subject: [PATCH 2/3] fix: `Performed by` are independent --- .../src/pages/Maintenance/CashboxHistory.js | 46 +++++++++++++------ 1 file changed, 31 insertions(+), 15 deletions(-) diff --git a/new-lamassu-admin/src/pages/Maintenance/CashboxHistory.js b/new-lamassu-admin/src/pages/Maintenance/CashboxHistory.js index 6809cfdf..7e2cd8f4 100644 --- a/new-lamassu-admin/src/pages/Maintenance/CashboxHistory.js +++ b/new-lamassu-admin/src/pages/Maintenance/CashboxHistory.js @@ -65,9 +65,8 @@ const useStyles = makeStyles(styles) const CashboxHistory = ({ machines, currency }) => { const classes = useStyles() - const [editing, setEditing] = useState(false) const [error, setError] = useState(false) - const [fields, setFields] = useState({}) + const [fields, setFields] = useState([]) const { data, loading } = useQuery(GET_BATCHES) @@ -111,21 +110,27 @@ const CashboxHistory = ({ machines, currency }) => { } const save = row => { + const _performedBy = R.prop( + 'performedBy', + R.find(f => f.id === row.id, fields) + ) + + const performedBy = _performedBy === '' ? null : _performedBy + schema - .isValid(fields) + .isValid(performedBy) .then(() => { setError(false) editBatch({ - variables: { id: row.id, performedBy: fields?.performedBy } + variables: { id: row.id, performedBy: performedBy } }) }) .catch(setError(true)) - return close() + return close(row.id) } - const close = () => { - setFields({}) - return setEditing(false) + const close = id => { + setFields(R.filter(f => f.id !== id, fields)) } const elements = [ @@ -192,16 +197,25 @@ const CashboxHistory = ({ machines, currency }) => { width: 180, textAlign: 'left', view: it => { - if (!editing) + if (!R.any(R.propEq('id', it.id), fields)) return R.isNil(it.performedBy) ? 'Unknown entity' : it.performedBy return ( - setFields({ ...fields, performedBy: e.target.value }) + setFields( + R.map( + f => + f.id === it.id ? { ...f, performedBy: e.target.value } : f, + fields + ) + ) } error={error} width={190 * 0.85} - value={fields.performedBy ?? ''} + value={R.prop( + 'performedBy', + R.find(f => f.id === it.id, fields) + )} /> ) } @@ -212,12 +226,14 @@ const CashboxHistory = ({ machines, currency }) => { width: 150, textAlign: 'right', view: it => { - if (!editing) + if (!R.any(R.propEq('id', it.id), fields)) return ( { - setFields({}) - setEditing(true) + setFields([ + ...fields, + { id: it.id, performedBy: it.performedBy } + ]) }}> @@ -227,7 +243,7 @@ const CashboxHistory = ({ machines, currency }) => { save(it)}> Save - + close(it.id)}> Cancel From 784c4c3ab1bccb10144b9610a2ffb762ff64f063 Mon Sep 17 00:00:00 2001 From: Nikola Ubavic <53820106+ubavic@users.noreply.github.com> Date: Tue, 16 Nov 2021 22:57:11 +0100 Subject: [PATCH 3/3] fix: validation chore: create `notEditing` function --- .../src/pages/Maintenance/CashboxHistory.js | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/new-lamassu-admin/src/pages/Maintenance/CashboxHistory.js b/new-lamassu-admin/src/pages/Maintenance/CashboxHistory.js index 7e2cd8f4..1846bebe 100644 --- a/new-lamassu-admin/src/pages/Maintenance/CashboxHistory.js +++ b/new-lamassu-admin/src/pages/Maintenance/CashboxHistory.js @@ -110,15 +110,11 @@ const CashboxHistory = ({ machines, currency }) => { } const save = row => { - const _performedBy = R.prop( - 'performedBy', - R.find(f => f.id === row.id, fields) - ) - - const performedBy = _performedBy === '' ? null : _performedBy + const field = R.find(f => f.id === row.id, fields) + const performedBy = field.performedBy === '' ? null : field.performedBy schema - .isValid(performedBy) + .isValid(field) .then(() => { setError(false) editBatch({ @@ -133,6 +129,8 @@ const CashboxHistory = ({ machines, currency }) => { setFields(R.filter(f => f.id !== id, fields)) } + const notEditing = id => !R.any(R.propEq('id', id), fields) + const elements = [ { name: 'operation', @@ -197,7 +195,7 @@ const CashboxHistory = ({ machines, currency }) => { width: 180, textAlign: 'left', view: it => { - if (!R.any(R.propEq('id', it.id), fields)) + if (notEditing(it.id)) return R.isNil(it.performedBy) ? 'Unknown entity' : it.performedBy return ( { width: 150, textAlign: 'right', view: it => { - if (!R.any(R.propEq('id', it.id), fields)) + if (notEditing(it.id)) return ( {