diff --git a/new-lamassu-admin/src/pages/Maintenance/CashCassettes.js b/new-lamassu-admin/src/pages/Maintenance/CashCassettes.js
index d5d8d969..a9d95ac9 100644
--- a/new-lamassu-admin/src/pages/Maintenance/CashCassettes.js
+++ b/new-lamassu-admin/src/pages/Maintenance/CashCassettes.js
@@ -305,7 +305,6 @@ const CashCassettes = () => {
{showHistory && (
)}
- {showHistory && }
{
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,23 +110,27 @@ const CashboxHistory = ({ machines, currency }) => {
}
const save = row => {
+ const field = R.find(f => f.id === row.id, fields)
+ const performedBy = field.performedBy === '' ? null : field.performedBy
+
schema
- .isValid(fields)
+ .isValid(field)
.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 notEditing = id => !R.any(R.propEq('id', id), fields)
+
const elements = [
{
name: 'operation',
@@ -192,16 +195,25 @@ const CashboxHistory = ({ machines, currency }) => {
width: 180,
textAlign: 'left',
view: it => {
- if (!editing)
+ if (notEditing(it.id))
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 +224,14 @@ const CashboxHistory = ({ machines, currency }) => {
width: 150,
textAlign: 'right',
view: it => {
- if (!editing)
+ if (notEditing(it.id))
return (
{
- setFields({})
- setEditing(true)
+ setFields([
+ ...fields,
+ { id: it.id, performedBy: it.performedBy }
+ ])
}}>
@@ -227,7 +241,7 @@ const CashboxHistory = ({ machines, currency }) => {
save(it)}>
Save
-
+ close(it.id)}>
Cancel