diff --git a/src/automats/manifestDraftAutomat.js b/src/automats/manifestDraftAutomat.js index 743f611..82d05f9 100644 --- a/src/automats/manifestDraftAutomat.js +++ b/src/automats/manifestDraftAutomat.js @@ -11,6 +11,7 @@ import { emptyLine, lineFromApi, dateInputValue, + todayInputValue, parseNum, } from '../components/manifest/manifestConfig'; @@ -25,7 +26,7 @@ export function createInitialManifestDraftState(kind) { kind, mode: 'create', id: null, - date: '', + date: kind === 'quote' ? todayInputValue() : '', partyId: null, number: '', externalNumber: '', diff --git a/src/components/manifest/ManifestForm.jsx b/src/components/manifest/ManifestForm.jsx index fce6a22..594bfdf 100644 --- a/src/components/manifest/ManifestForm.jsx +++ b/src/components/manifest/ManifestForm.jsx @@ -22,6 +22,7 @@ import { buildManifestBody, restoreAttachmentsFromApi, dateInputValue, + todayInputValue, emptyLine, lineFromApi, loadParties, @@ -55,12 +56,25 @@ class ManifestForm extends PureComponent { : null; const initialDoc = initialDraft || initialEdit; + const initialDate = + initialDoc?.date || + (props.mode === 'create' && props.kind === 'quote' ? todayInputValue() : ''); + + if ( + props.mode === 'create' && + props.kind === 'quote' && + this.draftAutomat && + !this.draftAutomat.state.date + ) { + this.draftAutomat.setState({ date: initialDate }); + } + this.state = { status: props.mode === 'edit' && !initialEdit ? 'loading' : (partiesReady ? 'ready' : 'loadingParties'), error: null, parties: initialParties, partiesLoading: !partiesReady, - date: initialDoc?.date || '', + date: initialDate, partyId: initialDoc?.partyId ?? null, number: initialDoc?.number || '', externalNumber: initialDoc?.externalNumber || '', diff --git a/src/components/manifest/index.js b/src/components/manifest/index.js index b39dd73..8e91876 100644 --- a/src/components/manifest/index.js +++ b/src/components/manifest/index.js @@ -29,4 +29,5 @@ export { collectFilesForUpload, restoreAttachmentsFromApi, dateInputValue, + todayInputValue, } from './manifestConfig'; diff --git a/src/components/manifest/manifestConfig.js b/src/components/manifest/manifestConfig.js index 541cb10..ae47429 100644 --- a/src/components/manifest/manifestConfig.js +++ b/src/components/manifest/manifestConfig.js @@ -77,6 +77,14 @@ export function numberDisplay(value) { return String(value); } +export function todayInputValue() { + const d = new Date(); + const year = d.getFullYear(); + const month = String(d.getMonth() + 1).padStart(2, '0'); + const day = String(d.getDate()).padStart(2, '0'); + return `${year}-${month}-${day}`; +} + export function dateInputValue(iso) { if (!iso) return ''; const d = new Date(iso);