From 91677c137b48c1c0cc83a0eacabc5c9bd231369b Mon Sep 17 00:00:00 2001 From: Yury Saukou Date: Fri, 29 Dec 2023 16:36:19 +0400 Subject: [PATCH] Draft --- .../AddPieceModal/AddPieceModal.js | 14 +++- .../AddPieceModal/AddPieceModalContainer.js | 10 ++- .../ModalActionButtons/ModalActionButtons.js | 15 +++-- .../ModalActionButtons/constants.js | 7 +- .../DelayClaimModal/DelayClaimModal.js | 64 +++++++++++++++++++ src/TitleDetails/DelayClaimModal/index.js | 1 + src/TitleDetails/TitleDetails.js | 29 ++++++++- translations/ui-receiving/en.json | 3 + 8 files changed, 130 insertions(+), 13 deletions(-) create mode 100644 src/TitleDetails/DelayClaimModal/DelayClaimModal.js create mode 100644 src/TitleDetails/DelayClaimModal/index.js diff --git a/src/TitleDetails/AddPieceModal/AddPieceModal.js b/src/TitleDetails/AddPieceModal/AddPieceModal.js index d94f5c6d..9469e00f 100644 --- a/src/TitleDetails/AddPieceModal/AddPieceModal.js +++ b/src/TitleDetails/AddPieceModal/AddPieceModal.js @@ -1,4 +1,5 @@ -import { includes } from 'lodash'; +import includes from 'lodash/includes'; +import noop from 'lodash/noop'; import PropTypes from 'prop-types'; import { useCallback, @@ -60,6 +61,8 @@ const AddPieceModal = ({ locationIds, locations, onCheckIn, + onClaimDelay: onClaimDelayProp, + onClaimSend, pieceFormatOptions, values: formValues, poLine, @@ -147,6 +150,11 @@ const AddPieceModal = ({ onSave(); }, [change, onSave]); + const onClaimDelay = useCallback(() => { + onSave(); + onClaimDelayProp(); + }, [onClaimDelayProp, onSave]); + const start = ( + ); + const end = ( + <> + + + ); + + const footer = ( + + ); + + return ( + + Hello + + ); +}; + +DelayClaimModal.propTypes = { + onCancel: PropTypes.func.isRequired, + onConfirm: PropTypes.func.isRequired, +}; diff --git a/src/TitleDetails/DelayClaimModal/index.js b/src/TitleDetails/DelayClaimModal/index.js new file mode 100644 index 00000000..baf2620e --- /dev/null +++ b/src/TitleDetails/DelayClaimModal/index.js @@ -0,0 +1 @@ +export { DelayClaimModal } from './DelayClaimModal'; diff --git a/src/TitleDetails/TitleDetails.js b/src/TitleDetails/TitleDetails.js index 7bdf6212..3605580c 100644 --- a/src/TitleDetails/TitleDetails.js +++ b/src/TitleDetails/TitleDetails.js @@ -1,4 +1,4 @@ -import React, { useCallback, useMemo, useState, useRef } from 'react'; +import { useCallback, useMemo, useState, useRef } from 'react'; import PropTypes from 'prop-types'; import { withRouter } from 'react-router-dom'; import ReactRouterPropTypes from 'react-router-prop-types'; @@ -58,6 +58,7 @@ import { TITLE_ACCORDION_LABELS, UNRECEIVABLE_PIECE_COLUMN_MAPPING, } from './constants'; +import { DelayClaimModal } from './DelayClaimModal'; import { TitleDetailsExpectedActions, TitleDetailsReceivedActions, @@ -108,11 +109,14 @@ const TitleDetails = ({ }) => { const intl = useIntl(); const stripes = useStripes(); + const [isAcknowledgeNote, toggleAcknowledgeNote] = useModalToggle(); const [isAddPieceModalOpened, toggleAddPieceModal] = useModalToggle(); const [pieceValues, setPieceValues] = useState({}); - const [confirmAcknowledgeNote, setConfirmAcknowledgeNote] = useState(); const [isConfirmReceiving, toggleConfirmReceiving] = useModalToggle(); + const [isClaimDelayModalOpen, toggleClaimDelayModal] = useModalToggle(); + + const [confirmAcknowledgeNote, setConfirmAcknowledgeNote] = useState(); const confirmReceivingPromise = useRef({}); const accordionStatusRef = useRef(); const receivingNote = get(poLine, 'details.receivingNote'); @@ -284,6 +288,18 @@ const TitleDetails = ({ : onReceive(values); }, [isOrderClosed, confirmReceiving, onCheckIn, getPieceValues, onCreateAnotherPiece]); + const delayClaim = useCallback(() => { + console.log('delay claim', pieceValues.id); + toggleClaimDelayModal(); + }, [pieceValues.id, toggleClaimDelayModal]); + + console.log('pieceValues', pieceValues); + + const cancelClaimDelay = useCallback(() => { + toggleClaimDelayModal(); + openAddPieceModal(null, pieceValues); + }, [openAddPieceModal, pieceValues, toggleClaimDelayModal]); + const hasReceive = Boolean(piecesExistance?.[EXPECTED_PIECES_SEARCH_VALUE]); const [isExpectedPiecesLoading, setExpectedPiecesLoading] = useState(false); @@ -597,6 +613,8 @@ const TitleDetails = ({ locations={locations} locationIds={locationIds} onCheckIn={onQuickReceive} + onClaimDelay={toggleClaimDelayModal} + onClaimSend={noop} // TODO: UIOR-1152 onSubmit={onSave} poLine={poLine} getHoldingsItemsAndPieces={getHoldingsItemsAndPieces} @@ -615,6 +633,13 @@ const TitleDetails = ({ open /> )} + + {isClaimDelayModalOpen && ( + + )} ); diff --git a/translations/ui-receiving/en.json b/translations/ui-receiving/en.json index 69d50554..0fe7abb6 100644 --- a/translations/ui-receiving/en.json +++ b/translations/ui-receiving/en.json @@ -223,6 +223,9 @@ "requests.message.itemId": "Item ({itemId})", "requests.footer.close": "Close", + "modal.delayClaim.heading": "Delay piece", + "modal.delayClaim.field.delayTo": "Delay to", + "shortcut.receive": "Receive pieces/Quick receive", "shortcut.piece.saveAndCreateAnother": "Save a piece and create another",