fix: ensure items entries has one empty line atleast.

This commit is contained in:
a.bouhuolia
2021-08-03 21:41:53 +02:00
parent 6cd6bd8700
commit 1f3ed79f2a
5 changed files with 84 additions and 25 deletions

View File

@@ -1,12 +1,17 @@
import React from 'react';
import { useFormikContext } from 'formik';
import moment from 'moment';
import * as R from 'ramda';
import {
defaultFastFieldShouldUpdate,
transactionNumber,
repeatValue,
transformToForm,
} from 'utils';
import {
updateItemsEntriesTotal,
ensureEntriesHaveEmptyLine,
} from 'containers/Entries/utils';
export const MIN_LINES_NUMBER = 4;
@@ -35,9 +40,8 @@ export const defaultReceipt = {
/**
* Transform to form in edit mode.
*/
export const transformToEditForm = (receipt) => ({
...transformToForm(receipt, defaultReceipt),
entries: [
export const transformToEditForm = (receipt) => {
const initialEntries = [
...receipt.entries.map((entry) => ({
...transformToForm(entry, defaultReceiptEntry),
})),
@@ -45,8 +49,17 @@ export const transformToEditForm = (receipt) => ({
defaultReceiptEntry,
Math.max(MIN_LINES_NUMBER - receipt.entries.length, 0),
),
],
});
];
const entries = R.compose(
ensureEntriesHaveEmptyLine(defaultReceiptEntry),
updateItemsEntriesTotal,
)(initialEntries);
return {
...transformToForm(receipt, defaultReceipt),
entries,
};
};
export const useObserveReceiptNoSettings = (prefix, nextNumber) => {
const { setFieldValue } = useFormikContext();