Skip to content

Commit

Permalink
Draft
Browse files Browse the repository at this point in the history
  • Loading branch information
usavkov-epam committed Dec 29, 2023
1 parent 0ddd1f0 commit 91677c1
Show file tree
Hide file tree
Showing 8 changed files with 130 additions and 13 deletions.
14 changes: 13 additions & 1 deletion src/TitleDetails/AddPieceModal/AddPieceModal.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { includes } from 'lodash';
import includes from 'lodash/includes';
import noop from 'lodash/noop';

Check warning on line 2 in src/TitleDetails/AddPieceModal/AddPieceModal.js

View workflow job for this annotation

GitHub Actions / github-actions-ci

'noop' is defined but never used. Allowed unused vars must match /React/u
import PropTypes from 'prop-types';
import {
useCallback,
Expand Down Expand Up @@ -60,6 +61,8 @@ const AddPieceModal = ({
locationIds,
locations,
onCheckIn,
onClaimDelay: onClaimDelayProp,
onClaimSend,
pieceFormatOptions,
values: formValues,
poLine,
Expand Down Expand Up @@ -147,6 +150,11 @@ const AddPieceModal = ({
onSave();
}, [change, onSave]);

const onClaimDelay = useCallback(() => {
onSave();
onClaimDelayProp();
}, [onClaimDelayProp, onSave]);

const start = (
<Button
data-test-add-piece-cancel
Expand All @@ -163,6 +171,8 @@ const AddPieceModal = ({
isCreateAnother={isCreateAnother}
isEditMode={Boolean(id)}
onCreateAnotherPiece={onCreateAnotherPiece}
onClaimDelay={onClaimDelay}
onClaimSend={onClaimSend}
onDelete={toggleDeleteConfirmation}
onReceive={onReceive}
onSave={onSave}
Expand Down Expand Up @@ -407,6 +417,8 @@ AddPieceModal.propTypes = {
values: PropTypes.object.isRequired,
instanceId: PropTypes.string,
onCheckIn: PropTypes.func.isRequired,
onClaimDelay: PropTypes.func.isRequired,
onClaimSend: PropTypes.func.isRequired,
pieceFormatOptions: PropTypes.arrayOf(PropTypes.shape({
label: PropTypes.string,
value: PropTypes.string,
Expand Down
10 changes: 8 additions & 2 deletions src/TitleDetails/AddPieceModal/AddPieceModalContainer.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React, { useCallback, useMemo } from 'react';
import { useCallback, useMemo } from 'react';
import PropTypes from 'prop-types';
import { omit } from 'lodash';
import omit from 'lodash/omit';

import {
ORDER_FORMATS,
Expand All @@ -19,6 +19,8 @@ const AddPieceModalContainer = ({
locations,
locationIds,
onCheckIn,
onClaimDelay,
onClaimSend,
onSubmit,
poLine,
getHoldingsItemsAndPieces,
Expand Down Expand Up @@ -68,6 +70,8 @@ const AddPieceModalContainer = ({
locationIds={locationIds}
locations={locations}
onCheckIn={onQuickReceive}
onClaimDelay={onClaimDelay}
onClaimSend={onClaimSend}
onSubmit={onSavePiece}
pieceFormatOptions={pieceFormatOptions}
poLine={poLine}
Expand All @@ -85,6 +89,8 @@ AddPieceModalContainer.propTypes = {
locations: PropTypes.arrayOf(PropTypes.object),
locationIds: PropTypes.arrayOf(PropTypes.string),
onCheckIn: PropTypes.func.isRequired,
onClaimDelay: PropTypes.func.isRequired,
onClaimSend: PropTypes.func.isRequired,
onSubmit: PropTypes.func.isRequired,
poLine: PropTypes.object.isRequired,
getHoldingsItemsAndPieces: PropTypes.func.isRequired,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import PropTypes from 'prop-types';
import React from 'react';
import { FormattedMessage } from 'react-intl';

import {
Expand All @@ -18,6 +17,8 @@ export const ModalActionButtons = ({
canDeletePiece,
disabled,
isEditMode,
onClaimDelay,
onClaimSend,
onCreateAnotherPiece,
onDelete,
onReceive,
Expand All @@ -29,6 +30,8 @@ export const ModalActionButtons = ({
canDeletePiece,
disabled,
isEditMode,
onClaimDelay,
onClaimSend,
onCreateAnotherPiece,
onDelete,
onReceive,
Expand Down Expand Up @@ -83,11 +86,13 @@ ModalActionButtons.propTypes = {
canDeletePiece: PropTypes.bool,
disabled: PropTypes.bool,
isEditMode: PropTypes.bool.isRequired,
onCreateAnotherPiece: PropTypes.func,
onDelete: PropTypes.func,
onReceive: PropTypes.func,
onClaimDelay: PropTypes.func.isRequired,
onClaimSend: PropTypes.func.isRequired,
onCreateAnotherPiece: PropTypes.func.isRequired,
onDelete: PropTypes.func.isRequired,
onReceive: PropTypes.func.isRequired,
onSave: PropTypes.func.isRequired,
onStatusChange: PropTypes.func,
onStatusChange: PropTypes.func.isRequired,
status: PropTypes.string,
};

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import { noop } from 'lodash';
import { FormattedMessage } from 'react-intl';

import {
Expand Down Expand Up @@ -51,6 +50,8 @@ export const PIECE_ACTIONS = ({
canDeletePiece,
disabled,
isEditMode,
onClaimDelay,
onClaimSend,
onCreateAnotherPiece,
onStatusChange,
onDelete,
Expand All @@ -60,7 +61,7 @@ export const PIECE_ACTIONS = ({
<Button
disabled={disabled}
buttonStyle="dropdownItem"
onClick={noop} // TODO UIOR-1160
onClick={onClaimDelay}
>
<Icon icon="calendar">
<FormattedMessage id="ui-receiving.piece.action.button.delayClaim" />
Expand Down Expand Up @@ -119,7 +120,7 @@ export const PIECE_ACTIONS = ({
<Button
disabled={disabled}
buttonStyle="dropdownItem"
onClick={noop} // TODO UIOR-1152
onClick={onClaimSend}
>
<Icon icon="envelope">
<FormattedMessage id="ui-receiving.piece.action.button.sendClaim" />
Expand Down
64 changes: 64 additions & 0 deletions src/TitleDetails/DelayClaimModal/DelayClaimModal.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
import PropTypes from 'prop-types';
import {
FormattedMessage,
useIntl,
} from 'react-intl';

import {
Button,
Modal,
} from '@folio/stripes/components';
import { ModalFooter } from '@folio/stripes-acq-components';

export const DelayClaimModal = ({
onCancel,
onConfirm,
}) => {
const intl = useIntl();
const modalLabel = intl.formatMessage({ id: 'ui-receiving.modal.delayClaim.heading' });

const start = (
<Button
marginBottom0
onClick={onCancel}
>
<FormattedMessage id="stripes-acq-components.FormFooter.cancel" />
</Button>
);
const end = (
<>
<Button
buttonStyle="primary"
marginBottom0
onClick={onConfirm}
>
<FormattedMessage id="stripes-acq-components.FormFooter.save" />
</Button>
</>
);

const footer = (
<ModalFooter
renderStart={start}
renderEnd={end}
/>
);

return (
<Modal
open
id="delay-claim-modal"
size="small"
footer={footer}
label={modalLabel}
aria-label={modalLabel}
>
Hello
</Modal>
);
};

DelayClaimModal.propTypes = {
onCancel: PropTypes.func.isRequired,
onConfirm: PropTypes.func.isRequired,
};
1 change: 1 addition & 0 deletions src/TitleDetails/DelayClaimModal/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { DelayClaimModal } from './DelayClaimModal';
29 changes: 27 additions & 2 deletions src/TitleDetails/TitleDetails.js
Original file line number Diff line number Diff line change
@@ -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';
Expand Down Expand Up @@ -58,6 +58,7 @@ import {
TITLE_ACCORDION_LABELS,
UNRECEIVABLE_PIECE_COLUMN_MAPPING,
} from './constants';
import { DelayClaimModal } from './DelayClaimModal';
import {
TitleDetailsExpectedActions,
TitleDetailsReceivedActions,
Expand Down Expand Up @@ -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');
Expand Down Expand Up @@ -284,6 +288,18 @@ const TitleDetails = ({
: onReceive(values);
}, [isOrderClosed, confirmReceiving, onCheckIn, getPieceValues, onCreateAnotherPiece]);

const delayClaim = useCallback(() => {
console.log('delay claim', pieceValues.id);

Check warning on line 292 in src/TitleDetails/TitleDetails.js

View workflow job for this annotation

GitHub Actions / github-actions-ci

Unexpected console statement
toggleClaimDelayModal();
}, [pieceValues.id, toggleClaimDelayModal]);

console.log('pieceValues', pieceValues);

Check warning on line 296 in src/TitleDetails/TitleDetails.js

View workflow job for this annotation

GitHub Actions / github-actions-ci

Unexpected console statement

const cancelClaimDelay = useCallback(() => {
toggleClaimDelayModal();
openAddPieceModal(null, pieceValues);
}, [openAddPieceModal, pieceValues, toggleClaimDelayModal]);

const hasReceive = Boolean(piecesExistance?.[EXPECTED_PIECES_SEARCH_VALUE]);

const [isExpectedPiecesLoading, setExpectedPiecesLoading] = useState(false);
Expand Down Expand Up @@ -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}
Expand All @@ -615,6 +633,13 @@ const TitleDetails = ({
open
/>
)}

{isClaimDelayModalOpen && (
<DelayClaimModal
onCancel={cancelClaimDelay}
onConfirm={delayClaim}
/>
)}
</Pane>
</HasCommand>
);
Expand Down
3 changes: 3 additions & 0 deletions translations/ui-receiving/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",

Expand Down

0 comments on commit 91677c1

Please sign in to comment.