Skip to content

Commit 8a99414

Browse files
committed
Release 9.1.2
1 parent ac47b47 commit 8a99414

File tree

6 files changed

+57
-14
lines changed

6 files changed

+57
-14
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Change history for ui-requests
22

3+
## [9.1.2] (https://github.com/folio-org/ui-checkin/tree/v9.1.2) (2024-09-13)
4+
[Full Changelog](https://github.com/folio-org/ui-checkin/compare/v9.1.1...v9.1.2)
5+
6+
* Fix issue with Proxy's patron group and delivery address that shown instead of Sponsor's when creating request. Refs UIREQ-1132, UIREQ-1133.
7+
38
## [9.1.1] (https://github.com/folio-org/ui-checkin/tree/v9.1.1) (2024-03-27)
49
[Full Changelog](https://github.com/folio-org/ui-checkin/compare/v9.1.0...v9.1.1)
510

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@folio/requests",
3-
"version": "9.1.1",
3+
"version": "9.1.2",
44
"description": "Requests manager",
55
"repository": "folio-org/ui-requests",
66
"publishConfig": {

src/RequestForm.js

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ import {
7878
isSubmittingButtonDisabled,
7979
isFormEditing,
8080
resetFieldState,
81+
getRequester,
8182
} from './utils';
8283

8384
import css from './requests.css';
@@ -186,7 +187,7 @@ class RequestForm extends React.Component {
186187
const { titleLevelRequestsFeatureEnabled } = this.getTlrSettings();
187188

188189
this.state = {
189-
proxy: {},
190+
proxy: null,
190191
selectedLoan: loan,
191192
...getDefaultRequestPreferences(request, initialValues),
192193
isAwaitingForProxySelection: false,
@@ -452,17 +453,13 @@ class RequestForm extends React.Component {
452453
const {
453454
form,
454455
selectedUser,
455-
onSetSelectedUser,
456456
} = this.props;
457457

458458
if (selectedUser.id === proxy.id) {
459-
onSetSelectedUser(selectedUser);
460459
this.setState({
461460
proxy: selectedUser,
462461
});
463-
form.change(REQUEST_FORM_FIELD_NAMES.REQUESTER_ID, selectedUser.id);
464462
} else {
465-
onSetSelectedUser(selectedUser);
466463
this.setState({
467464
proxy,
468465
requestTypes: {},
@@ -767,6 +764,7 @@ class RequestForm extends React.Component {
767764
onSetSelectedItem,
768765
selectedUser,
769766
} = this.props;
767+
const { proxy } = this.state;
770768

771769
this.setState({
772770
isItemOrInstanceLoading: true,
@@ -816,7 +814,8 @@ class RequestForm extends React.Component {
816814
})
817815
.then(item => {
818816
if (item && selectedUser?.id) {
819-
this.findRequestTypes(item.id, selectedUser.id, ID_TYPE_MAP.ITEM_ID);
817+
const requester = getRequester(proxy, selectedUser);
818+
this.findRequestTypes(item.id, requester.id, ID_TYPE_MAP.ITEM_ID);
820819
}
821820

822821
return item;
@@ -849,6 +848,7 @@ class RequestForm extends React.Component {
849848
onSetSelectedInstance,
850849
selectedUser,
851850
} = this.props;
851+
const { proxy } = this.state;
852852

853853
this.setState({
854854
isItemOrInstanceLoading: true,
@@ -897,7 +897,8 @@ class RequestForm extends React.Component {
897897
})
898898
.then(instance => {
899899
if (instance && selectedUser?.id) {
900-
this.findRequestTypes(instance.id, selectedUser.id, ID_TYPE_MAP.INSTANCE_ID);
900+
const requester = getRequester(proxy, selectedUser);
901+
this.findRequestTypes(instance.id, requester.id, ID_TYPE_MAP.INSTANCE_ID);
901902
}
902903

903904
return instance;
@@ -1137,26 +1138,26 @@ class RequestForm extends React.Component {
11371138
const patronBlocks = onGetPatronManualBlocks(parentResources);
11381139
const automatedPatronBlocks = onGetAutomatedPatronBlocks(parentResources);
11391140
const isEditForm = isFormEditing(request);
1140-
1141+
const selectedProxy = getProxy(request, proxy);
1142+
const requester = getRequester(selectedProxy, selectedUser);
11411143
let deliveryLocations;
11421144
let deliveryLocationsDetail = [];
11431145
let addressDetail;
1144-
if (selectedUser && selectedUser.personal && selectedUser.personal.addresses) {
1145-
deliveryLocations = selectedUser.personal.addresses.map((a) => {
1146+
if (requester?.personal?.addresses) {
1147+
deliveryLocations = requester.personal.addresses.map((a) => {
11461148
const typeName = find(addressTypes, { id: a.addressTypeId }).addressType;
11471149
return { label: typeName, value: a.addressTypeId };
11481150
});
11491151
deliveryLocations = sortBy(deliveryLocations, ['label']);
1150-
deliveryLocationsDetail = keyBy(selectedUser.personal.addresses, a => a.addressTypeId);
1152+
deliveryLocationsDetail = keyBy(requester.personal.addresses, a => a.addressTypeId);
11511153
}
11521154

11531155
if (selectedAddressTypeId) {
11541156
addressDetail = toUserAddress(deliveryLocationsDetail[selectedAddressTypeId]);
11551157
}
11561158

1157-
const patronGroup = getPatronGroup(selectedUser, patronGroups);
1159+
const patronGroup = getPatronGroup(requester, patronGroups);
11581160
const fulfillmentTypeOptions = getFulfillmentTypeOptions(hasDelivery, optionLists?.fulfillmentTypes || []);
1159-
const selectedProxy = getProxy(request, proxy);
11601161
const isSubmittingDisabled = isSubmittingButtonDisabled(pristine, submitting);
11611162
const isTitleLevelRequest = createTitleLevelRequest || request?.requestLevel === REQUEST_LEVEL_TYPES.TITLE;
11621163
const getPatronBlockModalOpenStatus = () => {

src/RequestForm.test.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import {
3535
isFormEditing,
3636
getFulfillmentPreference,
3737
resetFieldState,
38+
getRequester,
3839
} from './utils';
3940

4041
const testIds = {
@@ -70,6 +71,7 @@ jest.mock('./utils', () => ({
7071
getDefaultRequestPreferences: jest.fn(),
7172
isFormEditing: jest.fn(),
7273
getFulfillmentPreference: jest.fn(),
74+
getRequester: jest.fn((proxy, selectedUser) => selectedUser),
7375
}));
7476
jest.mock('./components/FulfilmentPreference', () => jest.fn(({
7577
changeDeliveryAddress,
@@ -1323,6 +1325,10 @@ describe('RequestForm', () => {
13231325
expect(resetFieldState).toHaveBeenCalledWith(...expectedArgs);
13241326
});
13251327

1328+
it('should get requester information', () => {
1329+
expect(getRequester).toHaveBeenCalled();
1330+
});
1331+
13261332
it('should get information about loans', () => {
13271333
const expectedArgs = [
13281334
'loan',
@@ -1632,6 +1638,10 @@ describe('RequestForm', () => {
16321638
expect(resetFieldState).toHaveBeenCalledWith(...expectedArgs);
16331639
});
16341640

1641+
it('should get requester information', () => {
1642+
expect(getRequester).toHaveBeenCalled();
1643+
});
1644+
16351645
it('should get information about open instance requests', () => {
16361646
const expectedArgs = [
16371647
'requestsForInstance',

src/utils.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -456,3 +456,11 @@ export function resetFieldState(form, fieldName) {
456456
form.resetFieldState(fieldName);
457457
}
458458
}
459+
460+
export const getRequester = (proxy, selectedUser) => {
461+
if (proxy && proxy.id !== selectedUser?.id) {
462+
return proxy;
463+
}
464+
465+
return selectedUser;
466+
};

src/utils.test.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import {
2929
resetFieldState,
3030
getRequestTypeOptions,
3131
isVirtualItem,
32+
getRequester,
3233
} from './utils';
3334

3435
import {
@@ -859,3 +860,21 @@ describe('getRequestTypeOptions', () => {
859860
expect(getRequestTypeOptions(requestTypes)).toEqual(expectedResult);
860861
});
861862
});
863+
864+
describe('getRequester', () => {
865+
const selectedUser = {
866+
id: 'selectedUserId',
867+
};
868+
869+
it('should return proxy user', () => {
870+
const proxy = {
871+
id: 'proxyId',
872+
};
873+
874+
expect(getRequester(proxy, selectedUser)).toEqual(proxy);
875+
});
876+
877+
it('should return selected user', () => {
878+
expect(getRequester(null, selectedUser)).toEqual(selectedUser);
879+
});
880+
});

0 commit comments

Comments
 (0)