diff --git a/src/Organizations/OrganizationVersion/components/OrganizationSummaryVersionView/OrganizationSummaryVersionView.js b/src/Organizations/OrganizationVersion/components/OrganizationSummaryVersionView/OrganizationSummaryVersionView.js index d3cd65f8..f3ccc00c 100644 --- a/src/Organizations/OrganizationVersion/components/OrganizationSummaryVersionView/OrganizationSummaryVersionView.js +++ b/src/Organizations/OrganizationVersion/components/OrganizationSummaryVersionView/OrganizationSummaryVersionView.js @@ -84,7 +84,7 @@ export const OrganizationSummaryVersionView = ({ version }) => { } - value={version?.organizationTypes?.join(', ') || } + value={version?.organizationTypesResolved || } multiple /> diff --git a/src/Organizations/OrganizationVersion/hooks/useSelectedOrganizationVersion/useSelectedOrganizationVersion.js b/src/Organizations/OrganizationVersion/hooks/useSelectedOrganizationVersion/useSelectedOrganizationVersion.js index b8f285e8..65f0c12f 100644 --- a/src/Organizations/OrganizationVersion/hooks/useSelectedOrganizationVersion/useSelectedOrganizationVersion.js +++ b/src/Organizations/OrganizationVersion/hooks/useSelectedOrganizationVersion/useSelectedOrganizationVersion.js @@ -5,25 +5,25 @@ import get from 'lodash/fp/get'; import keyBy from 'lodash/fp/keyBy'; import uniq from 'lodash/fp/uniq'; import { useMemo } from 'react'; -import { useIntl } from 'react-intl'; import { useQuery } from 'react-query'; import { useNamespace, useOkapiKy, } from '@folio/stripes/core'; -import { getFullName } from '@folio/stripes/util'; import { fetchAcqUnitsByIds, getVersionMetadata, useOrganization, useUsersBatch, + useVersionHistoryValueResolvers, } from '@folio/stripes-acq-components'; import { currenciesByCode } from '@folio/stripes/components'; import { useContactsByIds, useInterfacesByIds, + useTypes, } from '../../../../common/hooks'; const getUniqItems = (arr) => ( @@ -34,11 +34,13 @@ const getUniqItems = (arr) => ( ); export const useSelectedOrganizationVersion = ({ versionId, versions, snapshotPath }, options = {}) => { - const intl = useIntl(); const ky = useOkapiKy(); const [namespace] = useNamespace({ key: 'organization-version-data' }); - const deletedRecordLabel = intl.formatMessage({ id: 'stripes-acq-components.versionHistory.deletedRecord' }); + const { + getObjectPropertyById, + getUserFullNameById, + } = useVersionHistoryValueResolvers(); const currentVersion = useMemo(() => ( versions?.find(({ id }) => id === versionId) @@ -72,6 +74,11 @@ export const useSelectedOrganizationVersion = ({ versionId, versions, snapshotPa isLoading: isInterfacesLoading, } = useInterfacesByIds(versionSnapshot?.interfaces); + const { + organizationTypes, + isLoading: isOrganizationTypesLoading, + } = useTypes(); + const { isLoading: isVersionDataLoading, data = {}, @@ -101,9 +108,9 @@ export const useSelectedOrganizationVersion = ({ versionId, versions, snapshotPa ...versionSnapshot, accounts: versionSnapshot?.accounts?.map((account) => ({ ...account, - acqUnits: account?.acqUnitIds?.map((acqUnitId) => acqUnitsMap[acqUnitId]?.name || deletedRecordLabel), + acqUnits: account?.acqUnitIds?.map((id) => getObjectPropertyById(id, 'name', acqUnitsMap)), })), - acqUnits: acqUnitsIds.map(acqUnitsId => acqUnitsMap[acqUnitsId]?.name || deletedRecordLabel).join(', '), + acqUnits: acqUnitsIds.map((id) => getObjectPropertyById(id, 'name', acqUnitsMap)).join(', '), vendorCurrenciesValue, metadata, }; @@ -113,19 +120,26 @@ export const useSelectedOrganizationVersion = ({ versionId, versions, snapshotPa }); const selectedVersion = useMemo(() => { - const versionUsersMap = keyBy('id', users); - - const createdByUser = versionUsersMap[createdByUserId] - ? getFullName(versionUsersMap[createdByUserId]) - : deletedRecordLabel; + const versionUsersDict = keyBy('id', users); + const organizationTypesDict = keyBy('id', organizationTypes); return { ...data, - createdByUser: createdByUserId && createdByUser, + organizationTypesResolved: data.organizationTypes?.map((id) => getObjectPropertyById(id, 'name', organizationTypesDict))?.join(', '), + createdByUser: getUserFullNameById(createdByUserId, versionUsersDict), contactsList: contacts, interfacesList: interfaces, }; - }, [users, createdByUserId, deletedRecordLabel, data, contacts, interfaces]); + }, [ + getObjectPropertyById, + getUserFullNameById, + users, + createdByUserId, + data, + contacts, + interfaces, + organizationTypes, + ]); const isLoading = ( isOrganizationLoading @@ -133,6 +147,7 @@ export const useSelectedOrganizationVersion = ({ versionId, versions, snapshotPa || isVersionDataLoading || isContactsLoading || isInterfacesLoading + || isOrganizationTypesLoading ); return {