diff --git a/src/lib/modules/Loan/actions.js b/src/lib/modules/Loan/actions.js index ae6220659..a23e6142f 100644 --- a/src/lib/modules/Loan/actions.js +++ b/src/lib/modules/Loan/actions.js @@ -14,6 +14,7 @@ export const ACTION_HAS_ERROR = 'loanAction/HAS_ERROR'; export const DETAILS_IS_LOADING = 'fetchLoanDetails/IS_LOADING'; export const DETAILS_SUCCESS = 'fetchLoanDetails/SUCCESS'; export const DETAILS_HAS_ERROR = 'fetchLoanDetails/HAS_ERROR'; +export const CLEAR = 'fetchLoanDetails/CLEAR'; export const fetchLoanDetails = ( loanPid, @@ -62,6 +63,14 @@ export const fetchLoanDetails = ( }; }; +export const clearLoanDetails = () => { + return (dispatch) => { + dispatch({ + type: CLEAR, + }); + }; +}; + export const performLoanAction = ( actionURL, documentPid, diff --git a/src/lib/modules/Loan/reducer.js b/src/lib/modules/Loan/reducer.js index d2bda7042..200041efc 100644 --- a/src/lib/modules/Loan/reducer.js +++ b/src/lib/modules/Loan/reducer.js @@ -2,6 +2,7 @@ import { ACTION_HAS_ERROR, ACTION_IS_LOADING, ACTION_SUCCESS, + CLEAR, DETAILS_HAS_ERROR, DETAILS_IS_LOADING, DETAILS_SUCCESS, @@ -66,6 +67,8 @@ export const loanDetailsReducer = (state = initialDetailsState, action) => { isLoading: false, hasError: true, }; + case CLEAR: + return { ...initialDetailsState }; default: return state; } diff --git a/src/lib/pages/backoffice/Acquisition/Order/OrderDetails/OrderDetails.js b/src/lib/pages/backoffice/Acquisition/Order/OrderDetails/OrderDetails.js index 86c1e2643..82a46062b 100644 --- a/src/lib/pages/backoffice/Acquisition/Order/OrderDetails/OrderDetails.js +++ b/src/lib/pages/backoffice/Acquisition/Order/OrderDetails/OrderDetails.js @@ -196,6 +196,11 @@ export default class OrderDetails extends React.Component { } } + componentWillUnmount() { + const { clearOrderDetails } = this.props; + clearOrderDetails(); + } + render() { const { isLoading, error, data } = this.props; const metadata = data.metadata || {}; @@ -243,6 +248,7 @@ export default class OrderDetails extends React.Component { OrderDetails.propTypes = { data: PropTypes.object.isRequired, fetchOrderDetails: PropTypes.func.isRequired, + clearOrderDetails: PropTypes.func.isRequired, isLoading: PropTypes.bool, error: PropTypes.object, match: PropTypes.shape({ diff --git a/src/lib/pages/backoffice/Acquisition/Order/OrderDetails/index.js b/src/lib/pages/backoffice/Acquisition/Order/OrderDetails/index.js index e08525aec..90054e3f2 100644 --- a/src/lib/pages/backoffice/Acquisition/Order/OrderDetails/index.js +++ b/src/lib/pages/backoffice/Acquisition/Order/OrderDetails/index.js @@ -1,6 +1,6 @@ import { connect } from 'react-redux'; -import { fetchOrderDetails } from './state/actions'; +import { fetchOrderDetails, clearOrderDetails } from './state/actions'; import OrderDetailsComponent from './OrderDetails'; const mapStateToProps = (state) => ({ @@ -12,6 +12,7 @@ const mapStateToProps = (state) => ({ const mapDispatchToProps = (dispatch) => ({ fetchOrderDetails: (orderPid) => dispatch(fetchOrderDetails(orderPid)), + clearOrderDetails: () => dispatch(clearOrderDetails()), }); export const OrderDetails = connect( diff --git a/src/lib/pages/backoffice/Acquisition/Order/OrderDetails/state/actions.js b/src/lib/pages/backoffice/Acquisition/Order/OrderDetails/state/actions.js index e537c13fd..6396f3f00 100644 --- a/src/lib/pages/backoffice/Acquisition/Order/OrderDetails/state/actions.js +++ b/src/lib/pages/backoffice/Acquisition/Order/OrderDetails/state/actions.js @@ -4,6 +4,15 @@ import { sendErrorNotification } from '@components/Notifications'; export const IS_LOADING = 'fetchOrderDetails/IS_LOADING'; export const SUCCESS = 'fetchOrderDetails/SUCCESS'; export const HAS_ERROR = 'fetchOrderDetails/HAS_ERROR'; +export const CLEAR = 'fetchOrderDetails/CLEAR'; + +export const clearOrderDetails = () => { + return (dispatch) => { + dispatch({ + type: CLEAR, + }); + }; +}; export const fetchOrderDetails = (pid) => { return async (dispatch) => { diff --git a/src/lib/pages/backoffice/Acquisition/Order/OrderDetails/state/reducer.js b/src/lib/pages/backoffice/Acquisition/Order/OrderDetails/state/reducer.js index 4c7574e3c..069862ae5 100644 --- a/src/lib/pages/backoffice/Acquisition/Order/OrderDetails/state/reducer.js +++ b/src/lib/pages/backoffice/Acquisition/Order/OrderDetails/state/reducer.js @@ -1,4 +1,4 @@ -import { IS_LOADING, SUCCESS, HAS_ERROR } from './actions'; +import { IS_LOADING, SUCCESS, HAS_ERROR, CLEAR } from './actions'; export const initialState = { isLoading: true, @@ -26,6 +26,8 @@ export default (state = initialState, action) => { error: action.payload, hasError: true, }; + case CLEAR: + return { ...initialState }; default: return state; } diff --git a/src/lib/pages/backoffice/Document/DocumentDetails/DocumentDetails.js b/src/lib/pages/backoffice/Document/DocumentDetails/DocumentDetails.js index fc74500a3..b56114c26 100644 --- a/src/lib/pages/backoffice/Document/DocumentDetails/DocumentDetails.js +++ b/src/lib/pages/backoffice/Document/DocumentDetails/DocumentDetails.js @@ -44,6 +44,11 @@ export default class DocumentDetails extends Component { } } + componentWillUnmount() { + const { clearDocumentDetails } = this.props; + clearDocumentDetails(); + } + render() { const { isLoading, error, data } = this.props; return ( @@ -99,6 +104,7 @@ DocumentDetails.propTypes = { error: PropTypes.object, data: PropTypes.object.isRequired, fetchDocumentDetails: PropTypes.func.isRequired, + clearDocumentDetails: PropTypes.func.isRequired, match: PropTypes.shape({ params: PropTypes.shape({ documentPid: PropTypes.string, diff --git a/src/lib/pages/backoffice/Document/DocumentDetails/index.js b/src/lib/pages/backoffice/Document/DocumentDetails/index.js index e191f95e3..7e984f1a5 100644 --- a/src/lib/pages/backoffice/Document/DocumentDetails/index.js +++ b/src/lib/pages/backoffice/Document/DocumentDetails/index.js @@ -1,6 +1,6 @@ import { connect } from 'react-redux'; -import { fetchDocumentDetails } from './state/actions'; +import { fetchDocumentDetails, clearDocumentDetails } from './state/actions'; import DocumentDetailsComponent from './DocumentDetails'; const mapStateToProps = (state) => ({ @@ -13,6 +13,7 @@ const mapStateToProps = (state) => ({ const mapDispatchToProps = (dispatch) => ({ fetchDocumentDetails: (documentPid) => dispatch(fetchDocumentDetails(documentPid)), + clearDocumentDetails: () => dispatch(clearDocumentDetails()), }); export const DocumentDetails = connect( diff --git a/src/lib/pages/backoffice/Document/DocumentDetails/state/actions.js b/src/lib/pages/backoffice/Document/DocumentDetails/state/actions.js index 88f1333ea..689807cb9 100644 --- a/src/lib/pages/backoffice/Document/DocumentDetails/state/actions.js +++ b/src/lib/pages/backoffice/Document/DocumentDetails/state/actions.js @@ -19,11 +19,20 @@ import { Icon } from 'semantic-ui-react'; export const IS_LOADING = 'fetchDocumentDetails/IS_LOADING'; export const SUCCESS = 'fetchDocumentDetails/SUCCESS'; export const HAS_ERROR = 'fetchDocumentDetails/HAS_ERROR'; +export const CLEAR = 'fetchDocumentDetails/CLEAR'; export const DELETE_IS_LOADING = 'deleteDocument/DELETE_IS_LOADING'; export const DELETE_SUCCESS = 'deleteDocument/DELETE_SUCCESS'; export const DELETE_HAS_ERROR = 'deleteDocument/DELETE_HAS_ERROR'; +export const clearDocumentDetails = () => { + return (dispatch) => { + dispatch({ + type: CLEAR, + }); + }; +}; + export const fetchDocumentDetails = (documentPid) => { return async (dispatch) => { dispatch({ diff --git a/src/lib/pages/backoffice/Document/DocumentDetails/state/reducer.js b/src/lib/pages/backoffice/Document/DocumentDetails/state/reducer.js index 372ccec83..d6c5e2efe 100644 --- a/src/lib/pages/backoffice/Document/DocumentDetails/state/reducer.js +++ b/src/lib/pages/backoffice/Document/DocumentDetails/state/reducer.js @@ -5,6 +5,7 @@ import { IS_LOADING, SUCCESS, HAS_ERROR, + CLEAR, } from './actions'; export const initialState = { @@ -48,6 +49,8 @@ export default (state = initialState, action) => { error: action.payload, hasError: true, }; + case CLEAR: + return { ...initialState }; default: return state; } diff --git a/src/lib/pages/backoffice/DocumentRequest/DocumentRequestDetails/DocumentRequestDetails.js b/src/lib/pages/backoffice/DocumentRequest/DocumentRequestDetails/DocumentRequestDetails.js index 9da854175..548dcc098 100644 --- a/src/lib/pages/backoffice/DocumentRequest/DocumentRequestDetails/DocumentRequestDetails.js +++ b/src/lib/pages/backoffice/DocumentRequest/DocumentRequestDetails/DocumentRequestDetails.js @@ -31,6 +31,11 @@ export default class DocumentRequestDetails extends Component { } } + componentWillUnmount() { + const { clearDocumentRequestDetails } = this.props; + clearDocumentRequestDetails(); + } + render() { const { data, isLoading, error } = this.props; return ( @@ -72,6 +77,7 @@ export default class DocumentRequestDetails extends Component { DocumentRequestDetails.propTypes = { fetchDocumentRequestDetails: PropTypes.func.isRequired, + clearDocumentRequestDetails: PropTypes.func.isRequired, data: PropTypes.object.isRequired, isLoading: PropTypes.bool, error: PropTypes.object, diff --git a/src/lib/pages/backoffice/DocumentRequest/DocumentRequestDetails/index.js b/src/lib/pages/backoffice/DocumentRequest/DocumentRequestDetails/index.js index 42cceb0f2..39dfcc0e2 100644 --- a/src/lib/pages/backoffice/DocumentRequest/DocumentRequestDetails/index.js +++ b/src/lib/pages/backoffice/DocumentRequest/DocumentRequestDetails/index.js @@ -1,6 +1,9 @@ import { connect } from 'react-redux'; import DocumentRequestDetailsComponent from './DocumentRequestDetails'; -import { fetchDocumentRequestDetails } from './state/actions'; +import { + fetchDocumentRequestDetails, + clearDocumentRequestDetails, +} from './state/actions'; const mapStateToProps = (state) => ({ data: state.documentRequestDetails.data, @@ -11,6 +14,7 @@ const mapStateToProps = (state) => ({ const mapDispatchToProps = (dispatch) => ({ fetchDocumentRequestDetails: (documentRequestPid) => dispatch(fetchDocumentRequestDetails(documentRequestPid)), + clearDocumentRequestDetails: () => dispatch(clearDocumentRequestDetails()), }); export const DocumentRequestDetails = connect( diff --git a/src/lib/pages/backoffice/DocumentRequest/DocumentRequestDetails/state/actions.js b/src/lib/pages/backoffice/DocumentRequest/DocumentRequestDetails/state/actions.js index 332084ab9..68f697621 100644 --- a/src/lib/pages/backoffice/DocumentRequest/DocumentRequestDetails/state/actions.js +++ b/src/lib/pages/backoffice/DocumentRequest/DocumentRequestDetails/state/actions.js @@ -9,11 +9,20 @@ import { BackOfficeRoutes } from '@routes/urls'; export const IS_LOADING = 'fetchDocumentRequestDetails/IS_LOADING'; export const SUCCESS = 'fetchDocumentRequestDetails/SUCCESS'; export const HAS_ERROR = 'fetchDocumentRequestDetails/HAS_ERROR'; +export const CLEAR = 'fetchDocumentRequestDetails/CLEAR'; export const DELETE_IS_LOADING = 'deleteDocumentRequest/DELETE_IS_LOADING'; export const DELETE_SUCCESS = 'deleteDocumentRequest/DELETE_SUCCESS'; export const DELETE_HAS_ERROR = 'deleteDocumentRequest/DELETE_HAS_ERROR'; +export const clearDocumentRequestDetails = () => { + return (dispatch) => { + dispatch({ + type: CLEAR, + }); + }; +}; + export const fetchDocumentRequestDetails = (documentRequestPid) => { return async (dispatch) => { dispatch({ diff --git a/src/lib/pages/backoffice/DocumentRequest/DocumentRequestDetails/state/reducer.js b/src/lib/pages/backoffice/DocumentRequest/DocumentRequestDetails/state/reducer.js index a52a0da32..95bfa4057 100644 --- a/src/lib/pages/backoffice/DocumentRequest/DocumentRequestDetails/state/reducer.js +++ b/src/lib/pages/backoffice/DocumentRequest/DocumentRequestDetails/state/reducer.js @@ -4,6 +4,7 @@ import { HAS_ERROR, IS_LOADING, SUCCESS, + CLEAR, } from './actions'; export const initialState = { @@ -34,6 +35,8 @@ export default (state = initialState, action) => { isLoading: false, hasError: true, }; + case CLEAR: + return { ...initialState }; default: return state; } diff --git a/src/lib/pages/backoffice/EItem/EItemDetails/EItemDetails.js b/src/lib/pages/backoffice/EItem/EItemDetails/EItemDetails.js index 532e9fe25..1e77f6d64 100644 --- a/src/lib/pages/backoffice/EItem/EItemDetails/EItemDetails.js +++ b/src/lib/pages/backoffice/EItem/EItemDetails/EItemDetails.js @@ -29,6 +29,11 @@ export default class EItemDetails extends Component { } } + componentWillUnmount() { + const { clearEItemDetails } = this.props; + clearEItemDetails(); + } + render() { const { isLoading, error, data } = this.props; return ( @@ -69,6 +74,7 @@ export default class EItemDetails extends Component { EItemDetails.propTypes = { fetchEItemDetails: PropTypes.func.isRequired, + clearEItemDetails: PropTypes.func.isRequired, isLoading: PropTypes.bool.isRequired, data: PropTypes.object.isRequired, error: PropTypes.object, diff --git a/src/lib/pages/backoffice/EItem/EItemDetails/index.js b/src/lib/pages/backoffice/EItem/EItemDetails/index.js index 736c17d14..38c2aced3 100644 --- a/src/lib/pages/backoffice/EItem/EItemDetails/index.js +++ b/src/lib/pages/backoffice/EItem/EItemDetails/index.js @@ -1,5 +1,5 @@ import { connect } from 'react-redux'; -import { fetchEItemDetails } from './state/actions'; +import { fetchEItemDetails, clearEItemDetails } from './state/actions'; import EItemDetailsComponent from './EItemDetails'; const mapStateToProps = (state) => ({ @@ -10,6 +10,7 @@ const mapStateToProps = (state) => ({ const mapDispatchToProps = (dispatch) => ({ fetchEItemDetails: (eitemPid) => dispatch(fetchEItemDetails(eitemPid)), + clearEItemDetails: () => dispatch(clearEItemDetails()), }); export const EItemDetails = connect( diff --git a/src/lib/pages/backoffice/EItem/EItemDetails/state/actions.js b/src/lib/pages/backoffice/EItem/EItemDetails/state/actions.js index 37baf81c5..fcbe23962 100644 --- a/src/lib/pages/backoffice/EItem/EItemDetails/state/actions.js +++ b/src/lib/pages/backoffice/EItem/EItemDetails/state/actions.js @@ -10,6 +10,7 @@ import { BackOfficeRoutes } from '@routes/urls'; export const IS_LOADING = 'fetchEItemDetails/IS_LOADING'; export const SUCCESS = 'fetchEItemDetails/SUCCESS'; export const HAS_ERROR = 'fetchEItemDetails/HAS_ERROR'; +export const CLEAR = 'fetchEItemDetails/CLEAR'; export const DELETE_IS_LOADING = 'fetchEItemDetails/DELETE_IS_LOADING'; export const DELETE_SUCCESS = 'fetchEItemDetails/DELETE_SUCCESS'; @@ -18,6 +19,15 @@ export const DELETE_HAS_ERROR = 'fetchEItemDetails/DELETE_HAS_ERROR'; export const ADD_FILE = 'fetchEItemDetails/ADD_FILE'; export const DELETE_FILE = 'fetchEItemDetails/DELETE_FILE'; export const UPLOAD_IS_LOADING = 'fetchEItemDetails/UPLOAD_IS_LOADING'; + +export const clearEItemDetails = () => { + return (dispatch) => { + dispatch({ + type: CLEAR, + }); + }; +}; + export const deleteEItem = (eitemPid) => { return async (dispatch) => { dispatch({ diff --git a/src/lib/pages/backoffice/EItem/EItemDetails/state/reducer.js b/src/lib/pages/backoffice/EItem/EItemDetails/state/reducer.js index a22be86df..e04007b81 100644 --- a/src/lib/pages/backoffice/EItem/EItemDetails/state/reducer.js +++ b/src/lib/pages/backoffice/EItem/EItemDetails/state/reducer.js @@ -7,6 +7,7 @@ import { HAS_ERROR, ADD_FILE, DELETE_FILE, + CLEAR, } from './actions'; import get from 'lodash/get'; @@ -81,6 +82,8 @@ export default (state = initialState, action) => { error: action.payload, hasError: true, }; + case CLEAR: + return { ...initialState }; default: return state; } diff --git a/src/lib/pages/backoffice/ILL/BorrowingRequest/BorrowingRequestDetails/BorrowingRequestDetails.js b/src/lib/pages/backoffice/ILL/BorrowingRequest/BorrowingRequestDetails/BorrowingRequestDetails.js index 7ade4590b..ce2aeb026 100644 --- a/src/lib/pages/backoffice/ILL/BorrowingRequest/BorrowingRequestDetails/BorrowingRequestDetails.js +++ b/src/lib/pages/backoffice/ILL/BorrowingRequest/BorrowingRequestDetails/BorrowingRequestDetails.js @@ -171,6 +171,11 @@ export default class BorrowingRequestDetails extends Component { } } + componentWillUnmount() { + const { clearBorrowingRequestDetails } = this.props; + clearBorrowingRequestDetails(); + } + render() { const { isLoading, error, data } = this.props; const metadata = data.metadata || {}; @@ -219,6 +224,7 @@ BorrowingRequestDetails.propTypes = { error: PropTypes.object, isLoading: PropTypes.bool.isRequired, fetchBorrowingRequestDetails: PropTypes.func.isRequired, + clearBorrowingRequestDetails: PropTypes.func.isRequired, match: PropTypes.shape({ params: PropTypes.shape({ borrowingRequestPid: PropTypes.string, diff --git a/src/lib/pages/backoffice/ILL/BorrowingRequest/BorrowingRequestDetails/index.js b/src/lib/pages/backoffice/ILL/BorrowingRequest/BorrowingRequestDetails/index.js index fbd7fb726..b29789de5 100644 --- a/src/lib/pages/backoffice/ILL/BorrowingRequest/BorrowingRequestDetails/index.js +++ b/src/lib/pages/backoffice/ILL/BorrowingRequest/BorrowingRequestDetails/index.js @@ -1,6 +1,9 @@ import { connect } from 'react-redux'; -import { fetchBorrowingRequestDetails } from './state/actions'; +import { + clearBorrowingRequestDetails, + fetchBorrowingRequestDetails, +} from './state/actions'; import BorrowingRequestDetailsComponent from './BorrowingRequestDetails'; const mapStateToProps = (state) => ({ @@ -12,6 +15,7 @@ const mapStateToProps = (state) => ({ const mapDispatchToProps = (dispatch) => ({ fetchBorrowingRequestDetails: (brwReqPid) => dispatch(fetchBorrowingRequestDetails(brwReqPid)), + clearBorrowingRequestDetails: () => dispatch(clearBorrowingRequestDetails()), }); export const BorrowingRequestDetails = connect( diff --git a/src/lib/pages/backoffice/ILL/BorrowingRequest/BorrowingRequestDetails/state/actions.js b/src/lib/pages/backoffice/ILL/BorrowingRequest/BorrowingRequestDetails/state/actions.js index 86366e5ca..9572fb99a 100644 --- a/src/lib/pages/backoffice/ILL/BorrowingRequest/BorrowingRequestDetails/state/actions.js +++ b/src/lib/pages/backoffice/ILL/BorrowingRequest/BorrowingRequestDetails/state/actions.js @@ -3,6 +3,7 @@ import { borrowingRequestApi } from '@api/ill'; export const IS_LOADING = 'fetchBorrowingRequestDetails/IS_LOADING'; export const SUCCESS = 'fetchBorrowingRequestDetails/SUCCESS'; export const HAS_ERROR = 'fetchBorrowingRequestDetails/HAS_ERROR'; +export const CLEAR = 'fetchBorrowingRequestDetails/CLEAR'; export const fetchBorrowingRequestDetails = (borrowingRequestPid) => { return async (dispatch) => { @@ -24,3 +25,11 @@ export const fetchBorrowingRequestDetails = (borrowingRequestPid) => { } }; }; + +export const clearBorrowingRequestDetails = () => { + return (dispatch) => { + dispatch({ + type: CLEAR, + }); + }; +}; diff --git a/src/lib/pages/backoffice/ILL/BorrowingRequest/BorrowingRequestDetails/state/reducer.js b/src/lib/pages/backoffice/ILL/BorrowingRequest/BorrowingRequestDetails/state/reducer.js index 652c2e187..fc3190da5 100644 --- a/src/lib/pages/backoffice/ILL/BorrowingRequest/BorrowingRequestDetails/state/reducer.js +++ b/src/lib/pages/backoffice/ILL/BorrowingRequest/BorrowingRequestDetails/state/reducer.js @@ -1,4 +1,4 @@ -import { HAS_ERROR, IS_LOADING, SUCCESS } from './actions'; +import { CLEAR, HAS_ERROR, IS_LOADING, SUCCESS } from './actions'; export const initialState = { data: {}, @@ -26,6 +26,8 @@ export default (state = initialState, action) => { isLoading: false, hasError: true, }; + case CLEAR: + return { ...initialState }; default: return state; } diff --git a/src/lib/pages/backoffice/Item/ItemDetails/ItemDetails.js b/src/lib/pages/backoffice/Item/ItemDetails/ItemDetails.js index 73bb02db2..1d2c20194 100644 --- a/src/lib/pages/backoffice/Item/ItemDetails/ItemDetails.js +++ b/src/lib/pages/backoffice/Item/ItemDetails/ItemDetails.js @@ -32,6 +32,11 @@ export default class ItemDetails extends Component { } } + componentWillUnmount() { + const { clearItemDetails } = this.props; + clearItemDetails(); + } + render() { const { isLoading, error, data } = this.props; return ( @@ -76,6 +81,7 @@ export default class ItemDetails extends Component { ItemDetails.propTypes = { fetchItemDetails: PropTypes.func.isRequired, + clearItemDetails: PropTypes.func.isRequired, data: PropTypes.object.isRequired, isLoading: PropTypes.bool, error: PropTypes.object, diff --git a/src/lib/pages/backoffice/Item/ItemDetails/index.js b/src/lib/pages/backoffice/Item/ItemDetails/index.js index be54c0e62..5828b36ae 100644 --- a/src/lib/pages/backoffice/Item/ItemDetails/index.js +++ b/src/lib/pages/backoffice/Item/ItemDetails/index.js @@ -1,6 +1,10 @@ import { connect } from 'react-redux'; -import { deleteItem, fetchItemDetails } from './state/actions'; +import { + clearItemDetails, + deleteItem, + fetchItemDetails, +} from './state/actions'; import ItemDetailsComponent from './ItemDetails'; const mapStateToProps = (state) => ({ @@ -12,6 +16,7 @@ const mapStateToProps = (state) => ({ const mapDispatchToProps = (dispatch) => ({ fetchItemDetails: (itemPid) => dispatch(fetchItemDetails(itemPid)), deleteItem: (itemPid) => dispatch(deleteItem(itemPid)), + clearItemDetails: () => dispatch(clearItemDetails()), }); export const ItemDetails = connect( diff --git a/src/lib/pages/backoffice/Item/ItemDetails/state/actions.js b/src/lib/pages/backoffice/Item/ItemDetails/state/actions.js index 2b5ab1736..b155dcbb2 100644 --- a/src/lib/pages/backoffice/Item/ItemDetails/state/actions.js +++ b/src/lib/pages/backoffice/Item/ItemDetails/state/actions.js @@ -12,6 +12,7 @@ import { Link } from 'react-router-dom'; export const IS_LOADING = 'fetchItemDetails/IS_LOADING'; export const SUCCESS = 'fetchItemDetails/SUCCESS'; export const HAS_ERROR = 'fetchItemDetails/HAS_ERROR'; +export const CLEAR = 'fetchItemDetails/CLEAR'; export const DELETE_IS_LOADING = 'deleteItem/DELETE_IS_LOADING'; export const DELETE_SUCCESS = 'deleteItem/DELETE_SUCCESS'; @@ -69,6 +70,14 @@ export const deleteItem = (itemPid) => { }; }; +export const clearItemDetails = () => { + return (dispatch) => { + dispatch({ + type: CLEAR, + }); + }; +}; + export const checkoutItem = ( documentPid, itemPid, diff --git a/src/lib/pages/backoffice/Item/ItemDetails/state/reducer.js b/src/lib/pages/backoffice/Item/ItemDetails/state/reducer.js index a590bbcb4..9b006cfd9 100644 --- a/src/lib/pages/backoffice/Item/ItemDetails/state/reducer.js +++ b/src/lib/pages/backoffice/Item/ItemDetails/state/reducer.js @@ -2,6 +2,7 @@ import { IS_LOADING, SUCCESS, HAS_ERROR, + CLEAR, DELETE_IS_LOADING, DELETE_SUCCESS, DELETE_HAS_ERROR, @@ -47,6 +48,8 @@ export default (state = initialState, action) => { error: action.payload, hasError: true, }; + case CLEAR: + return { ...initialState }; default: return state; } diff --git a/src/lib/pages/backoffice/Loan/LoanDetails/LoanDetails.js b/src/lib/pages/backoffice/Loan/LoanDetails/LoanDetails.js index 86c9e7a59..355ffdc47 100644 --- a/src/lib/pages/backoffice/Loan/LoanDetails/LoanDetails.js +++ b/src/lib/pages/backoffice/Loan/LoanDetails/LoanDetails.js @@ -36,6 +36,11 @@ export default class LoanDetails extends Component { } } + componentWillUnmount() { + const { clearLoanDetails } = this.props; + clearLoanDetails(); + } + render() { const { isLoading, error, data, firstLoanRequested } = this.props; return ( @@ -88,6 +93,7 @@ export default class LoanDetails extends Component { LoanDetails.propTypes = { /* REDUX */ fetchLoanDetails: PropTypes.func.isRequired, + clearLoanDetails: PropTypes.func.isRequired, data: PropTypes.object.isRequired, firstLoanRequested: PropTypes.object.isRequired, isLoading: PropTypes.bool.isRequired, diff --git a/src/lib/pages/backoffice/Loan/LoanDetails/index.js b/src/lib/pages/backoffice/Loan/LoanDetails/index.js index 9f005aa41..4561775d7 100644 --- a/src/lib/pages/backoffice/Loan/LoanDetails/index.js +++ b/src/lib/pages/backoffice/Loan/LoanDetails/index.js @@ -1,6 +1,6 @@ import { connect } from 'react-redux'; -import { fetchLoanDetails } from '@modules/Loan/actions'; +import { clearLoanDetails, fetchLoanDetails } from '@modules/Loan/actions'; import LoanDetailsComponent from './LoanDetails'; const mapStateToProps = (state) => ({ @@ -13,6 +13,7 @@ const mapStateToProps = (state) => ({ const mapDispatchToProps = (dispatch) => ({ fetchLoanDetails: (loanPid, withFetchOtherPendingLoans) => dispatch(fetchLoanDetails(loanPid, withFetchOtherPendingLoans)), + clearLoanDetails: () => dispatch(clearLoanDetails()), }); export const LoanDetails = connect( diff --git a/src/lib/pages/backoffice/Location/LocationDetails/LocationDetails.js b/src/lib/pages/backoffice/Location/LocationDetails/LocationDetails.js index a5e45937b..b440cd3ea 100644 --- a/src/lib/pages/backoffice/Location/LocationDetails/LocationDetails.js +++ b/src/lib/pages/backoffice/Location/LocationDetails/LocationDetails.js @@ -159,6 +159,11 @@ export default class LocationDetails extends React.Component { } } + componentWillUnmount() { + const { clearLocationDetails } = this.props; + clearLocationDetails(); + } + render() { const { data, isLoading, error, deleteLocation } = this.props; @@ -207,6 +212,7 @@ LocationDetails.propTypes = { isLoading: PropTypes.bool.isRequired, fetchLocationDetails: PropTypes.func.isRequired, deleteLocation: PropTypes.func.isRequired, + clearLocationDetails: PropTypes.func.isRequired, match: PropTypes.shape({ params: PropTypes.shape({ locationPid: PropTypes.string, diff --git a/src/lib/pages/backoffice/Location/LocationDetails/index.js b/src/lib/pages/backoffice/Location/LocationDetails/index.js index 4bf88add2..b742b4d1a 100644 --- a/src/lib/pages/backoffice/Location/LocationDetails/index.js +++ b/src/lib/pages/backoffice/Location/LocationDetails/index.js @@ -1,6 +1,10 @@ import { connect } from 'react-redux'; -import { fetchLocationDetails, deleteLocation } from './state/actions'; +import { + fetchLocationDetails, + deleteLocation, + clearLocationDetails, +} from './state/actions'; import LocationDetailsComponent from './LocationDetails'; const mapStateToProps = (state) => ({ @@ -14,6 +18,7 @@ const mapDispatchToProps = (dispatch) => ({ fetchLocationDetails: (LocationPid) => dispatch(fetchLocationDetails(LocationPid)), deleteLocation: (locationPid) => dispatch(deleteLocation(locationPid)), + clearLocationDetails: () => dispatch(clearLocationDetails()), }); export const LocationDetails = connect( diff --git a/src/lib/pages/backoffice/Location/LocationDetails/state/actions.js b/src/lib/pages/backoffice/Location/LocationDetails/state/actions.js index 52660e1f3..886c9592e 100644 --- a/src/lib/pages/backoffice/Location/LocationDetails/state/actions.js +++ b/src/lib/pages/backoffice/Location/LocationDetails/state/actions.js @@ -14,6 +14,8 @@ export const DELETE_IS_LOADING = 'deleteLocation/DELETE_IS_LOADING'; export const DELETE_SUCCESS = 'deleteLocation/DELETE_SUCCESS'; export const DELETE_HAS_ERROR = 'deleteLocation/DELETE_HAS_ERROR'; +export const CLEAR = 'fetchLocationDetails/CLEAR'; + export const fetchLocationDetails = (pid) => { return async (dispatch) => { dispatch({ @@ -63,3 +65,11 @@ export const deleteLocation = (pid) => { } }; }; + +export const clearLocationDetails = () => { + return (dispatch) => { + dispatch({ + type: CLEAR, + }); + }; +}; diff --git a/src/lib/pages/backoffice/Location/LocationDetails/state/locationDetailsReducer.js b/src/lib/pages/backoffice/Location/LocationDetails/state/locationDetailsReducer.js index d3c447adb..9e5087d4b 100644 --- a/src/lib/pages/backoffice/Location/LocationDetails/state/locationDetailsReducer.js +++ b/src/lib/pages/backoffice/Location/LocationDetails/state/locationDetailsReducer.js @@ -5,6 +5,7 @@ import { DELETE_IS_LOADING, DELETE_SUCCESS, DELETE_HAS_ERROR, + CLEAR, } from './actions'; export const initialState = { @@ -49,6 +50,8 @@ export default (state = initialState, action) => { error: action.payload, hasError: true, }; + case CLEAR: + return { ...initialState }; default: return state; } diff --git a/src/lib/pages/backoffice/Patron/PatronDetails/PatronDetails.js b/src/lib/pages/backoffice/Patron/PatronDetails/PatronDetails.js index 78d8f72ab..c72ce707b 100644 --- a/src/lib/pages/backoffice/Patron/PatronDetails/PatronDetails.js +++ b/src/lib/pages/backoffice/Patron/PatronDetails/PatronDetails.js @@ -47,6 +47,11 @@ export default class PatronDetails extends Component { } } + componentWillUnmount() { + const { clearPatronDetails } = this.props; + clearPatronDetails(); + } + render() { const { isLoading, error, data, match, currentLoans } = this.props; const currentPatronPid = match.params.patronPid; @@ -175,6 +180,7 @@ export default class PatronDetails extends Component { PatronDetails.propTypes = { fetchPatronDetails: PropTypes.func.isRequired, + clearPatronDetails: PropTypes.func.isRequired, data: PropTypes.object.isRequired, error: PropTypes.object, isLoading: PropTypes.bool, diff --git a/src/lib/pages/backoffice/Patron/PatronDetails/index.js b/src/lib/pages/backoffice/Patron/PatronDetails/index.js index db74d00a9..0702b8636 100644 --- a/src/lib/pages/backoffice/Patron/PatronDetails/index.js +++ b/src/lib/pages/backoffice/Patron/PatronDetails/index.js @@ -1,6 +1,6 @@ import { connect } from 'react-redux'; import PatronDetailsComponent from './PatronDetails'; -import { fetchPatronDetails } from './state/actions'; +import { fetchPatronDetails, clearPatronDetails } from './state/actions'; const mapStateToProps = (state) => ({ isLoading: state.patronDetails.isLoading, @@ -12,6 +12,7 @@ const mapStateToProps = (state) => ({ const mapDispatchToProps = (dispatch) => ({ fetchPatronDetails: (patronPid) => dispatch(fetchPatronDetails(patronPid)), + clearPatronDetails: () => dispatch(clearPatronDetails()), }); export const PatronDetails = connect( diff --git a/src/lib/pages/backoffice/Patron/PatronDetails/state/actions.js b/src/lib/pages/backoffice/Patron/PatronDetails/state/actions.js index 28a237fc7..971fe311d 100644 --- a/src/lib/pages/backoffice/Patron/PatronDetails/state/actions.js +++ b/src/lib/pages/backoffice/Patron/PatronDetails/state/actions.js @@ -4,6 +4,7 @@ import { sendErrorNotification } from '@components/Notifications'; export const IS_LOADING = 'fetchPatronDetails/IS_LOADING'; export const SUCCESS = 'fetchPatronDetails/SUCCESS'; export const HAS_ERROR = 'fetchPatronDetails/HAS_ERROR'; +export const CLEAR = 'fetchPatronDetails/CLEAR'; export const fetchPatronDetails = (patronPid) => { return async (dispatch) => { @@ -27,3 +28,11 @@ export const fetchPatronDetails = (patronPid) => { } }; }; + +export const clearPatronDetails = () => { + return (dispatch) => { + dispatch({ + type: CLEAR, + }); + }; +}; diff --git a/src/lib/pages/backoffice/Patron/PatronDetails/state/reducer.js b/src/lib/pages/backoffice/Patron/PatronDetails/state/reducer.js index 4c7574e3c..069862ae5 100644 --- a/src/lib/pages/backoffice/Patron/PatronDetails/state/reducer.js +++ b/src/lib/pages/backoffice/Patron/PatronDetails/state/reducer.js @@ -1,4 +1,4 @@ -import { IS_LOADING, SUCCESS, HAS_ERROR } from './actions'; +import { IS_LOADING, SUCCESS, HAS_ERROR, CLEAR } from './actions'; export const initialState = { isLoading: true, @@ -26,6 +26,8 @@ export default (state = initialState, action) => { error: action.payload, hasError: true, }; + case CLEAR: + return { ...initialState }; default: return state; } diff --git a/src/lib/pages/backoffice/Providers/ProviderDetails/ProviderDetails.js b/src/lib/pages/backoffice/Providers/ProviderDetails/ProviderDetails.js index dbe5796da..5017e3dc6 100644 --- a/src/lib/pages/backoffice/Providers/ProviderDetails/ProviderDetails.js +++ b/src/lib/pages/backoffice/Providers/ProviderDetails/ProviderDetails.js @@ -207,6 +207,11 @@ export default class ProviderDetails extends React.Component { } } + componentWillUnmount() { + const { clearProviderDetails } = this.props; + clearProviderDetails(); + } + render() { const { data, isLoading, error, deleteProvider } = this.props; @@ -254,6 +259,7 @@ ProviderDetails.propTypes = { isLoading: PropTypes.bool.isRequired, fetchProviderDetails: PropTypes.func.isRequired, deleteProvider: PropTypes.func.isRequired, + clearProviderDetails: PropTypes.func.isRequired, match: PropTypes.shape({ params: PropTypes.shape({ providerPid: PropTypes.string, diff --git a/src/lib/pages/backoffice/Providers/ProviderDetails/index.js b/src/lib/pages/backoffice/Providers/ProviderDetails/index.js index df4fb4bc7..c34111395 100644 --- a/src/lib/pages/backoffice/Providers/ProviderDetails/index.js +++ b/src/lib/pages/backoffice/Providers/ProviderDetails/index.js @@ -1,6 +1,10 @@ import { connect } from 'react-redux'; -import { fetchProviderDetails, deleteProvider } from './state/actions'; +import { + fetchProviderDetails, + deleteProvider, + clearProviderDetails, +} from './state/actions'; import ProviderDetailsComponent from './ProviderDetails'; const mapStateToProps = (state) => ({ @@ -14,6 +18,7 @@ const mapDispatchToProps = (dispatch) => ({ fetchProviderDetails: (providerPid) => dispatch(fetchProviderDetails(providerPid)), deleteProvider: (providerPid) => dispatch(deleteProvider(providerPid)), + clearProviderDetails: () => dispatch(clearProviderDetails()), }); export const ProviderDetails = connect( diff --git a/src/lib/pages/backoffice/Providers/ProviderDetails/state/actions.js b/src/lib/pages/backoffice/Providers/ProviderDetails/state/actions.js index d8916949b..93b4d5147 100644 --- a/src/lib/pages/backoffice/Providers/ProviderDetails/state/actions.js +++ b/src/lib/pages/backoffice/Providers/ProviderDetails/state/actions.js @@ -14,6 +14,8 @@ export const DELETE_IS_LOADING = 'deleteProvider/DELETE_IS_LOADING'; export const DELETE_SUCCESS = 'deleteProvider/DELETE_SUCCESS'; export const DELETE_HAS_ERROR = 'deleteProvider/DELETE_HAS_ERROR'; +export const CLEAR = 'fetchProviderDetails/CLEAR'; + export const fetchProviderDetails = (pid) => { return async (dispatch) => { dispatch({ @@ -65,3 +67,11 @@ export const deleteProvider = (pid) => { } }; }; + +export const clearProviderDetails = () => { + return (dispatch) => { + dispatch({ + type: CLEAR, + }); + }; +}; diff --git a/src/lib/pages/backoffice/Providers/ProviderDetails/state/reducer.js b/src/lib/pages/backoffice/Providers/ProviderDetails/state/reducer.js index 90f73197c..70da37c9e 100644 --- a/src/lib/pages/backoffice/Providers/ProviderDetails/state/reducer.js +++ b/src/lib/pages/backoffice/Providers/ProviderDetails/state/reducer.js @@ -5,6 +5,7 @@ import { DELETE_IS_LOADING, DELETE_HAS_ERROR, DELETE_SUCCESS, + CLEAR, } from './actions'; export const initialState = { @@ -49,6 +50,8 @@ export default (state = initialState, action) => { error: action.payload, hasError: true, }; + case CLEAR: + return { ...initialState }; default: return state; } diff --git a/src/lib/pages/backoffice/Series/SeriesDetails/SeriesDetails.js b/src/lib/pages/backoffice/Series/SeriesDetails/SeriesDetails.js index 5da9b47ad..d587b6013 100644 --- a/src/lib/pages/backoffice/Series/SeriesDetails/SeriesDetails.js +++ b/src/lib/pages/backoffice/Series/SeriesDetails/SeriesDetails.js @@ -41,6 +41,11 @@ export default class SeriesDetails extends Component { } } + componentWillUnmount() { + const { clearSeriesDetails } = this.props; + clearSeriesDetails(); + } + seriesPanels = () => { const { data, multipartMonographsInSeries, documentsInSeries } = this.props; @@ -198,6 +203,7 @@ SeriesDetails.propTypes = { documentsInSeries: PropTypes.object, multipartMonographsInSeries: PropTypes.object, fetchSeriesDetails: PropTypes.func.isRequired, + clearSeriesDetails: PropTypes.func.isRequired, match: PropTypes.shape({ params: PropTypes.shape({ seriesPid: PropTypes.string, diff --git a/src/lib/pages/backoffice/Series/SeriesDetails/index.js b/src/lib/pages/backoffice/Series/SeriesDetails/index.js index fd018c414..ba2e87720 100644 --- a/src/lib/pages/backoffice/Series/SeriesDetails/index.js +++ b/src/lib/pages/backoffice/Series/SeriesDetails/index.js @@ -1,5 +1,5 @@ import { connect } from 'react-redux'; -import { fetchSeriesDetails } from './state/actions'; +import { fetchSeriesDetails, clearSeriesDetails } from './state/actions'; import SeriesDetailsComponent from './SeriesDetails'; const mapStateToProps = (state) => ({ @@ -13,6 +13,7 @@ const mapStateToProps = (state) => ({ const mapDispatchToProps = (dispatch) => ({ fetchSeriesDetails: (seriesPid) => dispatch(fetchSeriesDetails(seriesPid)), + clearSeriesDetails: () => dispatch(clearSeriesDetails()), }); export const SeriesDetails = connect( diff --git a/src/lib/pages/backoffice/Series/SeriesDetails/state/actions.js b/src/lib/pages/backoffice/Series/SeriesDetails/state/actions.js index 8b1b0794a..888c7e26d 100644 --- a/src/lib/pages/backoffice/Series/SeriesDetails/state/actions.js +++ b/src/lib/pages/backoffice/Series/SeriesDetails/state/actions.js @@ -9,6 +9,7 @@ import { BackOfficeRoutes } from '@routes/urls'; export const IS_LOADING = 'fetchSeriesDetails/IS_LOADING'; export const SUCCESS = 'fetchSeriesDetails/SUCCESS'; export const HAS_ERROR = 'fetchSeriesDetails/HAS_ERROR'; +export const CLEAR = 'fetchSeriesDetails/CLEAR'; export const DELETE_IS_LOADING = 'deleteSeries/DELETE_IS_LOADING'; export const DELETE_SUCCESS = 'deleteSeries/DELETE_SUCCESS'; @@ -66,3 +67,11 @@ export const fetchSeriesDetails = (seriesPid) => { } }; }; + +export const clearSeriesDetails = () => { + return (dispatch) => { + dispatch({ + type: CLEAR, + }); + }; +}; diff --git a/src/lib/pages/backoffice/Series/SeriesDetails/state/reducer.js b/src/lib/pages/backoffice/Series/SeriesDetails/state/reducer.js index 4b7b72640..a7a5d0b6b 100644 --- a/src/lib/pages/backoffice/Series/SeriesDetails/state/reducer.js +++ b/src/lib/pages/backoffice/Series/SeriesDetails/state/reducer.js @@ -5,6 +5,7 @@ import { IS_LOADING, SUCCESS, HAS_ERROR, + CLEAR, } from './actions'; export const initialState = { @@ -47,6 +48,8 @@ export default (state = initialState, action) => { error: action.payload, hasError: true, }; + case CLEAR: + return { ...initialState }; default: return state; }