diff --git a/src/components/UserDetailSections/PatronBlock/PatronBlock.js b/src/components/UserDetailSections/PatronBlock/PatronBlock.js index 458da4776..68f31b324 100644 --- a/src/components/UserDetailSections/PatronBlock/PatronBlock.js +++ b/src/components/UserDetailSections/PatronBlock/PatronBlock.js @@ -16,6 +16,7 @@ import { } from '@folio/stripes/components'; import { stripesConnect } from '@folio/stripes/core'; +import { isDcbUser } from '../../util'; import css from './PatronBlock.css'; const PATRON_BLOCKS_COLUMNS = { @@ -37,6 +38,11 @@ class PatronBlock extends React.Component { expanded: PropTypes.bool, accordionId: PropTypes.string, patronBlocks: PropTypes.arrayOf(PropTypes.object), + resources: PropTypes.shape({ + selUser: PropTypes.shape({ + records: PropTypes.arrayOf(PropTypes.object), + }), + }), mutator: PropTypes.shape({ activeRecord: PropTypes.shape({ update: PropTypes.func, @@ -160,7 +166,11 @@ class PatronBlock extends React.Component { patronBlocks, match: { params }, location, + resources, } = this.props; + + const user = resources?.selUser?.records[0]; + const { sortOrder, sortDirection, @@ -203,7 +213,7 @@ class PatronBlock extends React.Component { id={accordionId} onToggle={onToggle} label={title} - displayWhenOpen={displayWhenOpen} + displayWhenOpen={!isDcbUser(user) ? displayWhenOpen : null} > {items} diff --git a/src/components/UserDetailSections/UserAccounts/UserAccounts.js b/src/components/UserDetailSections/UserAccounts/UserAccounts.js index 23971afca..c506d7cab 100644 --- a/src/components/UserDetailSections/UserAccounts/UserAccounts.js +++ b/src/components/UserDetailSections/UserAccounts/UserAccounts.js @@ -2,6 +2,7 @@ import React, { useEffect, useState } from 'react'; import PropTypes from 'prop-types'; import { Link } from 'react-router-dom'; import { FormattedMessage } from 'react-intl'; +import { get } from 'lodash'; import { Row, @@ -20,6 +21,7 @@ import { refundStatuses, refundClaimReturned, } from '../../../constants'; +import { isDcbUser } from '../../util'; /** @@ -39,6 +41,7 @@ const UserAccounts = ({ }, resources, }) => { + const user = get(resources, ['selUser', 'records', '0']); const [totals, setTotals] = useState({ openAccountsCount: 0, closedAccountsCount: 0, @@ -98,7 +101,7 @@ const UserAccounts = ({ onToggle={onToggle} label={} displayWhenClosed={displayWhenClosed} - displayWhenOpen={displayWhenOpen} + displayWhenOpen={!isDcbUser(user) ? displayWhenOpen : null} > {accountsLoaded ? diff --git a/src/components/UserDetailSections/UserRequests/UserRequests.js b/src/components/UserDetailSections/UserRequests/UserRequests.js index 38de0d339..b849ec1c1 100644 --- a/src/components/UserDetailSections/UserRequests/UserRequests.js +++ b/src/components/UserDetailSections/UserRequests/UserRequests.js @@ -21,6 +21,7 @@ import { getOpenRequestStatusesFilterString, getClosedRequestStatusesFilterString, getRequestUrl, + isDcbUser, } from '../../util'; /** @@ -107,12 +108,10 @@ class UserRequests extends React.Component { expanded, onToggle, accordionId, - user: { - barcode, - id, - }, + user, resources } = this.props; + const { barcode, id } = user; const openRequestsTotal = _.get(resources.openRequestsCount, ['records', '0', 'totalRecords'], 0); const closedRequestsTotal = _.get(resources.closedRequestsCount, ['records', '0', 'totalRecords'], 0); const openRequestsCount = (_.get(resources.openRequestsCount, ['isPending'], true)) ? -1 : openRequestsTotal; @@ -142,7 +141,7 @@ class UserRequests extends React.Component { onToggle={onToggle} label={} displayWhenClosed={displayWhenClosed} - displayWhenOpen={displayWhenOpen} + displayWhenOpen={!isDcbUser(user) ? displayWhenOpen : null} > {requestsLoaded ? {!isShadowUser && ( @@ -624,6 +626,7 @@ class UserDetail extends React.Component { const isAffiliationsVisible = isAffiliationsEnabled(user); const isShadowUser = user?.type === USER_TYPES.SHADOW; + const isVirtualPatron = isDcbUser(user); const showPatronBlocksSection = hasPatronBlocksPermissions && !isShadowUser; if (this.userNotFound()) { @@ -862,6 +865,7 @@ class UserDetail extends React.Component { pathToNoteCreate="/users/notes/new" pathToNoteDetails="/users/notes" hideAssignButton + hideNewButton={isVirtualPatron} />