From 6b6d184ec4bad1f39215994aa543afa985dad0af Mon Sep 17 00:00:00 2001 From: Alisher Musurmonov Date: Wed, 8 Nov 2023 14:11:20 +0500 Subject: [PATCH] refactor: add default formatter --- lib/Donors/DonorsContainer.js | 18 +++++++++++++++--- lib/Donors/utils.js | 9 ++++----- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/lib/Donors/DonorsContainer.js b/lib/Donors/DonorsContainer.js index c09621ff..c8e2ab73 100644 --- a/lib/Donors/DonorsContainer.js +++ b/lib/Donors/DonorsContainer.js @@ -8,7 +8,10 @@ import { useStripes } from '@folio/stripes/core'; import { defaultVisibleColumns } from './constants'; import DonorsList from './DonorsList'; import DonorsLookup from './DonorsLookup'; -import { getDonorsListFormatter } from './utils'; +import { + getDonorsListFormatter, + getUnAssignDonorFormatter, +} from './utils'; function DonorsContainer({ columnMapping, @@ -47,8 +50,17 @@ function DonorsContainer({ const contentData = useMemo(() => sortBy(listOfDonors, [({ lastName }) => lastName?.toLowerCase()]), [listOfDonors]); const resultsFormatter = useMemo(() => { - return formatter || getDonorsListFormatter({ intl, fields, canViewOrganizations }); - }, [canViewOrganizations, fields, formatter, intl]); + const defaultFormatter = formatter || getDonorsListFormatter({ intl, fields, canViewOrganizations }); + + if (visibleColumns.includes('unassignDonor')) { + return { + ...getUnAssignDonorFormatter({ intl, fields }), + ...defaultFormatter, + }; + } + + return defaultFormatter; + }, [canViewOrganizations, fields, formatter, intl, visibleColumns]); const onAddDonors = (values = []) => { const addedDonorIds = new Set(fields.value); diff --git a/lib/Donors/utils.js b/lib/Donors/utils.js index 54beadd7..a31a8569 100644 --- a/lib/Donors/utils.js +++ b/lib/Donors/utils.js @@ -12,13 +12,12 @@ const getDonorUrl = (orgId) => { return undefined; }; -export const getDonorsListFormatter = ({ - canViewOrganizations, - fields, - intl, -}) => ({ +export const getDonorsListFormatter = ({ canViewOrganizations }) => ({ name: donor => {donor.name}, code: donor => donor.code, +}); + +export const getUnAssignDonorFormatter = ({ fields, intl }) => ({ unassignDonor: donor => (