Skip to content

Commit

Permalink
Freeze manual prior notification form during send
Browse files Browse the repository at this point in the history
  • Loading branch information
ivangabriele committed Aug 14, 2024
1 parent 5b2ee03 commit cb77c96
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ export function Content({ detail, isValidatingOnChange, onClose, onSubmit, onVer
!!detail?.state &&
[PriorNotification.State.PENDING_AUTO_SEND, PriorNotification.State.PENDING_SEND].includes(detail?.state)
const isPendingVerification = detail?.state === PriorNotification.State.PENDING_VERIFICATION
const isReadOnly = isPendingSend || isInvalidated
const isVerifiedAndSent = detail?.state === PriorNotification.State.VERIFIED_AND_SENT
const hasDesignatedPorts = editedPriorNotificationComputedValues?.types?.find(type => type.hasDesignatedPorts)
const priorNotificationIdentifier = getPriorNotificationIdentifier(detail)
Expand Down Expand Up @@ -171,9 +172,9 @@ export function Content({ detail, isValidatingOnChange, onClose, onSubmit, onVer

<hr />

<Form isInvalidated={isInvalidated} />
<Form isReadOnly={isReadOnly} />

{!!detail && !isInvalidated && (
{!!detail && !isInvalidated && !isPendingSend && (
<InvalidateButton
accent={Accent.SECONDARY}
Icon={Icon.Invalid}
Expand Down Expand Up @@ -201,7 +202,7 @@ export function Content({ detail, isValidatingOnChange, onClose, onSubmit, onVer

<Button
accent={Accent.PRIMARY}
disabled={(isInvalidated && !isPriorNotificationFormDirty) || (isValidatingOnChange && !isValid)}
disabled={(isReadOnly && !isPriorNotificationFormDirty) || (isValidatingOnChange && !isValid)}
onClick={handleSubmit}
title={
isInvalidated
Expand All @@ -215,7 +216,7 @@ export function Content({ detail, isValidatingOnChange, onClose, onSubmit, onVer
{!isNewPriorNotification && (
<Button
accent={Accent.PRIMARY}
disabled={isInvalidated || isPendingSend || isVerifiedAndSent}
disabled={isReadOnly || isVerifiedAndSent}
Icon={isVerifiedAndSent ? Icon.Check : Icon.Send}
onClick={onVerifyAndSend}
title={
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ import type { ManualPriorNotificationFormValues } from './types'
import type { VesselIdentity } from '../../../../domain/entities/vessel/types'

type FormProps = Readonly<{
isInvalidated: boolean
isReadOnly: boolean
}>
export function Form({ isInvalidated }: FormProps) {
export function Form({ isReadOnly }: FormProps) {
const { values } = useFormikContext<ManualPriorNotificationFormValues>()

const dispatch = useMainAppDispatch()
Expand Down Expand Up @@ -58,29 +58,29 @@ export function Form({ isInvalidated }: FormProps) {

return (
<>
<FormikVesselSelect onChange={onChange} readOnly={isInvalidated} />
<FormikVesselSelect onChange={onChange} readOnly={isReadOnly} />

<FormikSelect
isCleanable={false}
label="Raison du préavis"
name="purpose"
options={getOptionsFromLabelledEnum(PriorNotification.PURPOSE_LABEL)}
readOnly={isInvalidated}
readOnly={isReadOnly}
/>

<FormikDatePicker
isStringDate
label="Date et heure de réception du préavis (UTC)"
name="sentAt"
readOnly={isInvalidated}
readOnly={isReadOnly}
withTime
/>

<FormikDatePicker
isStringDate
label="Date et heure estimées d'arrivée au port (UTC)"
name="expectedArrivalDate"
readOnly={isInvalidated}
readOnly={isReadOnly}
withTime
/>

Expand All @@ -90,13 +90,13 @@ export function Form({ isInvalidated }: FormProps) {
isStringDate
label="Date et heure prévues de débarque (UTC)"
name="expectedLandingDate"
readOnly={isInvalidated}
readOnly={isReadOnly}
withTime
/>
<FormikCheckbox
label="équivalentes à celles de l'arrivée au port"
name="isExpectedLandingDateSameAsExpectedArrivalDate"
readOnly={isInvalidated}
readOnly={isReadOnly}
/>
</FieldGroup>

Expand All @@ -105,19 +105,19 @@ export function Form({ isInvalidated }: FormProps) {
label="Port d'arrivée"
name="portLocode"
options={portsAsOptions ?? []}
readOnly={isInvalidated}
readOnly={isReadOnly}
searchable
virtualized
/>

<FormikFishingCatchesMultiSelect readOnly={isInvalidated} />
<FormikFishingCatchesMultiSelect readOnly={isReadOnly} />

<FormikMultiSelect
disabled={!gearsAsOptions}
label="Engins utilisés"
name="tripGearCodes"
options={gearsAsOptions ?? []}
readOnly={isInvalidated}
readOnly={isReadOnly}
searchable
virtualized
/>
Expand All @@ -127,7 +127,7 @@ export function Form({ isInvalidated }: FormProps) {
label="Zone de pêche"
name="faoArea"
options={faoAreasAsOptions ?? []}
readOnly={isInvalidated}
readOnly={isReadOnly}
searchable
virtualized
/>
Expand All @@ -141,28 +141,28 @@ export function Form({ isInvalidated }: FormProps) {
label="Autorisation d'entrée au port"
name="hasPortEntranceAuthorization"
options={BOOLEAN_AS_OPTIONS}
readOnly={isInvalidated}
readOnly={isReadOnly}
/>
<StyledFormikMultiRadio
isInline
label="Autorisation de débarquement"
name="hasPortLandingAuthorization"
options={BOOLEAN_AS_OPTIONS}
readOnly={isInvalidated}
readOnly={isReadOnly}
/>
</>
)}

<FieldGroup>
<FormikTextarea label="Points d'attention identifiés par le CNSP" name="note" readOnly={isInvalidated} />
<FormikTextarea label="Points d'attention identifiés par le CNSP" name="note" readOnly={isReadOnly} />
<FormikCheckbox
label="pas de pêche après le préavis zéro"
name="didNotFishAfterZeroNotice"
readOnly={isInvalidated}
readOnly={isReadOnly}
/>
</FieldGroup>

<AuthorTrigramInput label="Saisi par" maxLength={3} name="authorTrigram" readOnly={isInvalidated} />
<AuthorTrigramInput label="Saisi par" maxLength={3} name="authorTrigram" readOnly={isReadOnly} />
</>
)
}
Expand Down

0 comments on commit cb77c96

Please sign in to comment.