@chayns-components/person-finder 5.4.0 → 5.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/api/person/get.js +5 -3
- package/lib/cjs/api/person/get.js.map +1 -1
- package/lib/cjs/api/site/get.js +5 -3
- package/lib/cjs/api/site/get.js.map +1 -1
- package/lib/cjs/components/PersonFinderProvider.js +60 -15
- package/lib/cjs/components/PersonFinderProvider.js.map +1 -1
- package/lib/cjs/components/person-finder/PersonFinder.js +2 -0
- package/lib/cjs/components/person-finder/PersonFinder.js.map +1 -1
- package/lib/cjs/components/person-finder/person-finder-wrapper/PersonFinderWrapper.js +7 -5
- package/lib/cjs/components/person-finder/person-finder-wrapper/PersonFinderWrapper.js.map +1 -1
- package/lib/cjs/constants/url.js +9 -0
- package/lib/cjs/constants/url.js.map +1 -0
- package/lib/cjs/utils/personFinder.js +6 -3
- package/lib/cjs/utils/personFinder.js.map +1 -1
- package/lib/esm/api/person/get.js +5 -3
- package/lib/esm/api/person/get.js.map +1 -1
- package/lib/esm/api/site/get.js +5 -3
- package/lib/esm/api/site/get.js.map +1 -1
- package/lib/esm/components/PersonFinderProvider.js +59 -15
- package/lib/esm/components/PersonFinderProvider.js.map +1 -1
- package/lib/esm/components/person-finder/PersonFinder.js +2 -0
- package/lib/esm/components/person-finder/PersonFinder.js.map +1 -1
- package/lib/esm/components/person-finder/person-finder-wrapper/PersonFinderWrapper.js +7 -5
- package/lib/esm/components/person-finder/person-finder-wrapper/PersonFinderWrapper.js.map +1 -1
- package/lib/esm/constants/url.js +3 -0
- package/lib/esm/constants/url.js.map +1 -0
- package/lib/esm/utils/personFinder.js +6 -3
- package/lib/esm/utils/personFinder.js.map +1 -1
- package/lib/types/api/person/get.d.ts +2 -1
- package/lib/types/api/site/get.d.ts +2 -1
- package/lib/types/components/PersonFinderProvider.d.ts +1 -0
- package/lib/types/components/person-finder/PersonFinder.d.ts +8 -0
- package/lib/types/constants/url.d.ts +2 -0
- package/lib/types/utils/personFinder.d.ts +2 -1
- package/package.json +2 -2
|
@@ -6,12 +6,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.getPersons = void 0;
|
|
7
7
|
var _chaynsApi = require("chayns-api");
|
|
8
8
|
var _personFinder = require("../../types/personFinder");
|
|
9
|
-
|
|
9
|
+
var _url = require("../../constants/url");
|
|
10
10
|
const getPersons = async ({
|
|
11
11
|
search,
|
|
12
12
|
skip,
|
|
13
13
|
take = 20,
|
|
14
|
-
relationMode = _personFinder.RelationMode.PERSON
|
|
14
|
+
relationMode = _personFinder.RelationMode.PERSON,
|
|
15
|
+
shouldUseQa
|
|
15
16
|
}) => {
|
|
16
17
|
const {
|
|
17
18
|
accessToken
|
|
@@ -25,7 +26,8 @@ const getPersons = async ({
|
|
|
25
26
|
},
|
|
26
27
|
method: 'GET'
|
|
27
28
|
};
|
|
28
|
-
const
|
|
29
|
+
const url = `${shouldUseQa ? _url.QA_RELATIONS_BASE_URL : _url.RELATIONS_BASE_URL}v2/person?skip=##skip##&take=##take##&query=##search##&scoreForSite=##scoreForSite##`;
|
|
30
|
+
const response = await fetch(url.replace('##search##', search).replace('##skip##', skip.toString()).replace('##take##', take === null || take === void 0 ? void 0 : take.toString()).replace('##scoreForSite##', relationMode === _personFinder.RelationMode.SITE ? '1' : '0'), requestInit);
|
|
29
31
|
if (response.status === 200) {
|
|
30
32
|
return await response.json();
|
|
31
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","names":["_chaynsApi","require","_personFinder","
|
|
1
|
+
{"version":3,"file":"get.js","names":["_chaynsApi","require","_personFinder","_url","getPersons","search","skip","take","relationMode","RelationMode","PERSON","shouldUseQa","accessToken","getAccessToken","undefined","requestInit","headers","Authorization","method","url","QA_RELATIONS_BASE_URL","RELATIONS_BASE_URL","response","fetch","replace","toString","SITE","status","json","exports"],"sources":["../../../../src/api/person/get.ts"],"sourcesContent":["import { getAccessToken } from 'chayns-api';\nimport { PersonEntryResult, RelationMode } from '../../types/personFinder';\nimport { QA_RELATIONS_BASE_URL, RELATIONS_BASE_URL } from '../../constants/url';\n\ninterface GetPersonResult {\n list: PersonEntryResult[];\n count: number;\n}\n\ninterface GetPersonsOptions {\n search: string;\n skip: number;\n take?: number;\n relationMode?: RelationMode;\n shouldUseQa: boolean;\n}\n\nexport const getPersons = async ({\n search,\n skip,\n take = 20,\n relationMode = RelationMode.PERSON,\n shouldUseQa,\n}: GetPersonsOptions) => {\n const { accessToken } = await getAccessToken();\n\n if (!accessToken) {\n return undefined;\n }\n\n const requestInit: RequestInit = {\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n method: 'GET',\n };\n\n const url = `${shouldUseQa ? QA_RELATIONS_BASE_URL : RELATIONS_BASE_URL}v2/person?skip=##skip##&take=##take##&query=##search##&scoreForSite=##scoreForSite##`;\n\n const response = await fetch(\n url\n .replace('##search##', search)\n .replace('##skip##', skip.toString())\n .replace('##take##', take?.toString())\n .replace('##scoreForSite##', relationMode === RelationMode.SITE ? '1' : '0'),\n requestInit,\n );\n\n if (response.status === 200) {\n return (await response.json()) as GetPersonResult;\n }\n\n return undefined;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA;AAeO,MAAMG,UAAU,GAAG,MAAAA,CAAO;EAC7BC,MAAM;EACNC,IAAI;EACJC,IAAI,GAAG,EAAE;EACTC,YAAY,GAAGC,0BAAY,CAACC,MAAM;EAClCC;AACe,CAAC,KAAK;EACrB,MAAM;IAAEC;EAAY,CAAC,GAAG,MAAM,IAAAC,yBAAc,EAAC,CAAC;EAE9C,IAAI,CAACD,WAAW,EAAE;IACd,OAAOE,SAAS;EACpB;EAEA,MAAMC,WAAwB,GAAG;IAC7BC,OAAO,EAAE;MACLC,aAAa,EAAE,UAAUL,WAAW;IACxC,CAAC;IACDM,MAAM,EAAE;EACZ,CAAC;EAED,MAAMC,GAAG,GAAG,GAAGR,WAAW,GAAGS,0BAAqB,GAAGC,uBAAkB,sFAAsF;EAE7J,MAAMC,QAAQ,GAAG,MAAMC,KAAK,CACxBJ,GAAG,CACEK,OAAO,CAAC,YAAY,EAAEnB,MAAM,CAAC,CAC7BmB,OAAO,CAAC,UAAU,EAAElB,IAAI,CAACmB,QAAQ,CAAC,CAAC,CAAC,CACpCD,OAAO,CAAC,UAAU,EAAEjB,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEkB,QAAQ,CAAC,CAAC,CAAC,CACrCD,OAAO,CAAC,kBAAkB,EAAEhB,YAAY,KAAKC,0BAAY,CAACiB,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,EAChFX,WACJ,CAAC;EAED,IAAIO,QAAQ,CAACK,MAAM,KAAK,GAAG,EAAE;IACzB,OAAQ,MAAML,QAAQ,CAACM,IAAI,CAAC,CAAC;EACjC;EAEA,OAAOd,SAAS;AACpB,CAAC;AAACe,OAAA,CAAAzB,UAAA,GAAAA,UAAA","ignoreList":[]}
|
package/lib/cjs/api/site/get.js
CHANGED
|
@@ -5,11 +5,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.getSites = void 0;
|
|
7
7
|
var _chaynsApi = require("chayns-api");
|
|
8
|
-
|
|
8
|
+
var _url = require("../../constants/url");
|
|
9
9
|
const getSites = async ({
|
|
10
10
|
search,
|
|
11
11
|
skip,
|
|
12
|
-
take = 20
|
|
12
|
+
take = 20,
|
|
13
|
+
shouldUseQa
|
|
13
14
|
}) => {
|
|
14
15
|
const {
|
|
15
16
|
accessToken
|
|
@@ -23,7 +24,8 @@ const getSites = async ({
|
|
|
23
24
|
},
|
|
24
25
|
method: 'GET'
|
|
25
26
|
};
|
|
26
|
-
const
|
|
27
|
+
const url = `${shouldUseQa ? _url.QA_RELATIONS_BASE_URL : _url.RELATIONS_BASE_URL}location/?query=##search##&skip=##skip##&take=##take##&includeDomains=true`;
|
|
28
|
+
const response = await fetch(url.replace('##search##', search).replace('##skip##', skip.toString()).replace('##take##', take === null || take === void 0 ? void 0 : take.toString()), requestInit);
|
|
27
29
|
if (response.status === 200) {
|
|
28
30
|
return await response.json();
|
|
29
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","names":["_chaynsApi","require","
|
|
1
|
+
{"version":3,"file":"get.js","names":["_chaynsApi","require","_url","getSites","search","skip","take","shouldUseQa","accessToken","getAccessToken","undefined","requestInit","headers","Authorization","method","url","QA_RELATIONS_BASE_URL","RELATIONS_BASE_URL","response","fetch","replace","toString","status","json","exports"],"sources":["../../../../src/api/site/get.ts"],"sourcesContent":["import { getAccessToken } from 'chayns-api';\nimport { SiteEntryResult } from '../../types/personFinder';\nimport { QA_RELATIONS_BASE_URL, RELATIONS_BASE_URL } from '../../constants/url';\n\ninterface GetSiteResult {\n count: number;\n list: SiteEntryResult[];\n}\n\ninterface GetSitesOptions {\n search: string;\n skip: number;\n take?: number;\n shouldUseQa: boolean;\n}\n\nexport const getSites = async ({ search, skip, take = 20, shouldUseQa }: GetSitesOptions) => {\n const { accessToken } = await getAccessToken();\n\n if (!accessToken) {\n return undefined;\n }\n\n const requestInit: RequestInit = {\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n method: 'GET',\n };\n\n const url = `${shouldUseQa ? QA_RELATIONS_BASE_URL : RELATIONS_BASE_URL}location/?query=##search##&skip=##skip##&take=##take##&includeDomains=true`;\n\n const response = await fetch(\n url\n .replace('##search##', search)\n .replace('##skip##', skip.toString())\n .replace('##take##', take?.toString()),\n requestInit,\n );\n\n if (response.status === 200) {\n return (await response.json()) as GetSiteResult;\n }\n\n return undefined;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEA,IAAAC,IAAA,GAAAD,OAAA;AAcO,MAAME,QAAQ,GAAG,MAAAA,CAAO;EAAEC,MAAM;EAAEC,IAAI;EAAEC,IAAI,GAAG,EAAE;EAAEC;AAA6B,CAAC,KAAK;EACzF,MAAM;IAAEC;EAAY,CAAC,GAAG,MAAM,IAAAC,yBAAc,EAAC,CAAC;EAE9C,IAAI,CAACD,WAAW,EAAE;IACd,OAAOE,SAAS;EACpB;EAEA,MAAMC,WAAwB,GAAG;IAC7BC,OAAO,EAAE;MACLC,aAAa,EAAE,UAAUL,WAAW;IACxC,CAAC;IACDM,MAAM,EAAE;EACZ,CAAC;EAED,MAAMC,GAAG,GAAG,GAAGR,WAAW,GAAGS,0BAAqB,GAAGC,uBAAkB,4EAA4E;EAEnJ,MAAMC,QAAQ,GAAG,MAAMC,KAAK,CACxBJ,GAAG,CACEK,OAAO,CAAC,YAAY,EAAEhB,MAAM,CAAC,CAC7BgB,OAAO,CAAC,UAAU,EAAEf,IAAI,CAACgB,QAAQ,CAAC,CAAC,CAAC,CACpCD,OAAO,CAAC,UAAU,EAAEd,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEe,QAAQ,CAAC,CAAC,CAAC,EAC1CV,WACJ,CAAC;EAED,IAAIO,QAAQ,CAACI,MAAM,KAAK,GAAG,EAAE;IACzB,OAAQ,MAAMJ,QAAQ,CAACK,IAAI,CAAC,CAAC;EACjC;EAEA,OAAOb,SAAS;AACpB,CAAC;AAACc,OAAA,CAAArB,QAAA,GAAAA,QAAA","ignoreList":[]}
|
|
@@ -45,6 +45,7 @@ const PersonFinderProvider = ({
|
|
|
45
45
|
defaultEntries,
|
|
46
46
|
excludedEntryIds,
|
|
47
47
|
shouldShowOwnUser = false,
|
|
48
|
+
shouldUseQa,
|
|
48
49
|
uacFilter,
|
|
49
50
|
entries,
|
|
50
51
|
relationMode
|
|
@@ -135,7 +136,8 @@ const PersonFinderProvider = ({
|
|
|
135
136
|
skipMap: {
|
|
136
137
|
[key]: current.skip
|
|
137
138
|
},
|
|
138
|
-
relationMode
|
|
139
|
+
relationMode,
|
|
140
|
+
shouldUseQa
|
|
139
141
|
}).then(result => {
|
|
140
142
|
const newData = result === null || result === void 0 ? void 0 : result[key];
|
|
141
143
|
if (newData) {
|
|
@@ -144,7 +146,7 @@ const PersonFinderProvider = ({
|
|
|
144
146
|
}).finally(() => {
|
|
145
147
|
updateLoadingState(key, _personFinder.LoadingState.Success);
|
|
146
148
|
});
|
|
147
|
-
}, [appendData, data, getPagedUsersByGroups, relationMode, search, updateLoadingState]);
|
|
149
|
+
}, [appendData, data, getPagedUsersByGroups, relationMode, search, shouldUseQa, updateLoadingState]);
|
|
148
150
|
const addFriend = (0, _react.useCallback)(personId => {
|
|
149
151
|
void (0, _post.postFriends)(personId).then(result => {
|
|
150
152
|
if (result) {
|
|
@@ -197,6 +199,8 @@ const PersonFinderProvider = ({
|
|
|
197
199
|
}, [filterTypes]);
|
|
198
200
|
const latestArgsRef = (0, _react.useRef)(null);
|
|
199
201
|
const latestHandledRequestRef = (0, _react.useRef)(0);
|
|
202
|
+
const searchLocalRef = (0, _react.useRef)(() => {});
|
|
203
|
+
const searchDataRef = (0, _react.useRef)(() => {});
|
|
200
204
|
const throttledRequest = (0, _react.useRef)((0, _lodash.default)(async () => {
|
|
201
205
|
const args = latestArgsRef.current;
|
|
202
206
|
if (!args) return;
|
|
@@ -212,7 +216,8 @@ const PersonFinderProvider = ({
|
|
|
212
216
|
searchString,
|
|
213
217
|
filter,
|
|
214
218
|
skipMap: {},
|
|
215
|
-
relationMode
|
|
219
|
+
relationMode,
|
|
220
|
+
shouldUseQa
|
|
216
221
|
});
|
|
217
222
|
if (requestTimestamp < latestHandledRequestRef.current) {
|
|
218
223
|
return;
|
|
@@ -242,10 +247,7 @@ const PersonFinderProvider = ({
|
|
|
242
247
|
}, THROTTLE_INTERVAL, {
|
|
243
248
|
leading: false,
|
|
244
249
|
trailing: true
|
|
245
|
-
}))
|
|
246
|
-
(0, _react.useEffect)(() => {
|
|
247
|
-
dataRef.current = data;
|
|
248
|
-
}, [data]);
|
|
250
|
+
}));
|
|
249
251
|
const searchData = (0, _react.useCallback)(({
|
|
250
252
|
filter
|
|
251
253
|
}) => {
|
|
@@ -289,26 +291,69 @@ const PersonFinderProvider = ({
|
|
|
289
291
|
});
|
|
290
292
|
updateLoadingState(_personFinder.PersonFinderFilterTypes.PERSON, searchedUsers.length === 0 ? _personFinder.LoadingState.Error : _personFinder.LoadingState.Success);
|
|
291
293
|
}, [entries, search, uacUsers, updateData, updateLoadingState]);
|
|
294
|
+
(0, _react.useEffect)(() => {
|
|
295
|
+
dataRef.current = data;
|
|
296
|
+
}, [data]);
|
|
297
|
+
(0, _react.useEffect)(() => {
|
|
298
|
+
searchLocalRef.current = searchLocal;
|
|
299
|
+
}, [searchLocal]);
|
|
300
|
+
(0, _react.useEffect)(() => {
|
|
301
|
+
searchDataRef.current = searchData;
|
|
302
|
+
}, [searchData]);
|
|
292
303
|
(0, _react.useEffect)(() => {
|
|
293
304
|
if (!search) return;
|
|
294
|
-
const active = activeFilter
|
|
305
|
+
const active = activeFilter && activeFilter.length > 0 ? activeFilter : filterTypes;
|
|
306
|
+
const currentData = dataRef.current;
|
|
295
307
|
if (uacFilter || entries) {
|
|
296
|
-
|
|
308
|
+
searchLocalRef.current();
|
|
297
309
|
} else if (active !== null && active !== void 0 && active.includes(_personFinder.PersonFinderFilterTypes.UAC)) {
|
|
298
|
-
|
|
310
|
+
searchDataRef.current({
|
|
299
311
|
filter: [_personFinder.PersonFinderFilterTypes.UAC]
|
|
300
312
|
});
|
|
301
313
|
} else {
|
|
314
|
+
// Only load filters that don't have data for this search yet
|
|
315
|
+
const filtersToLoad = active.filter(filter => {
|
|
316
|
+
const filterData = currentData === null || currentData === void 0 ? void 0 : currentData[filter];
|
|
317
|
+
return !filterData || filterData.searchString !== search;
|
|
318
|
+
});
|
|
319
|
+
|
|
320
|
+
// If we have filters to load, use them; otherwise use all active filters
|
|
321
|
+
const filterList = filtersToLoad.length > 0 ? filtersToLoad : active;
|
|
302
322
|
latestArgsRef.current = {
|
|
303
323
|
search,
|
|
304
|
-
filter:
|
|
324
|
+
filter: filterList
|
|
305
325
|
};
|
|
306
|
-
throttledRequest();
|
|
326
|
+
throttledRequest.current();
|
|
307
327
|
}
|
|
308
|
-
}, [
|
|
328
|
+
}, [search, uacFilter, entries]);
|
|
329
|
+
|
|
330
|
+
// Handle filter changes - load missing data for newly selected filters
|
|
331
|
+
(0, _react.useEffect)(() => {
|
|
332
|
+
if (!search) return;
|
|
333
|
+
const active = activeFilter && activeFilter.length > 0 ? activeFilter : filterTypes;
|
|
334
|
+
const currentData = dataRef.current;
|
|
335
|
+
|
|
336
|
+
// Check which filters need to be loaded (don't have data for current search)
|
|
337
|
+
const missingFilters = active.filter(filter => {
|
|
338
|
+
const filterData = currentData === null || currentData === void 0 ? void 0 : currentData[filter];
|
|
339
|
+
// If no data or data is from a different search, we need to load it
|
|
340
|
+
return !filterData || filterData.searchString !== search;
|
|
341
|
+
});
|
|
342
|
+
if (missingFilters.length === 0) return;
|
|
343
|
+
if (uacFilter || entries) return;
|
|
344
|
+
if (active !== null && active !== void 0 && active.includes(_personFinder.PersonFinderFilterTypes.UAC)) return;
|
|
345
|
+
|
|
346
|
+
// Load only the missing filters
|
|
347
|
+
latestArgsRef.current = {
|
|
348
|
+
search,
|
|
349
|
+
filter: missingFilters
|
|
350
|
+
};
|
|
351
|
+
throttledRequest.current();
|
|
352
|
+
}, [activeFilter, search, uacFilter, entries, filterTypes]);
|
|
309
353
|
(0, _react.useEffect)(() => () => {
|
|
310
|
-
|
|
311
|
-
|
|
354
|
+
var _throttledRequest$cur;
|
|
355
|
+
(_throttledRequest$cur = throttledRequest.current) === null || _throttledRequest$cur === void 0 || _throttledRequest$cur.cancel();
|
|
356
|
+
}, []);
|
|
312
357
|
|
|
313
358
|
// load initial data
|
|
314
359
|
(0, _react.useEffect)(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PersonFinderProvider.js","names":["_react","_interopRequireWildcard","require","_lodash","_interopRequireDefault","_personFinder","_get","_post","_delete","_personFinder2","_uac","_textstring","_textStrings","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","THROTTLE_INTERVAL","PAGE_SIZE","PersonFinderContext","exports","createContext","data","undefined","updateData","friends","addFriend","removeFriend","activeFilter","updateActiveFilter","search","updateSearch","loadMore","loadingState","updateLoadingState","tags","setTags","relationMode","displayName","usePersonFinder","useContext","PersonFinderProvider","children","friendsPriority","filterTypes","defaultEntries","excludedEntryIds","shouldShowOwnUser","uacFilter","entries","getPagedUsersByGroups","useCallback","getUsersByGroups","setData","useState","setFriends","uacUsers","setUacUsers","setActiveFilter","setSearch","map","id","name","text","setLoadingState","PersonFinderFilterTypes","PERSON","LoadingState","None","SITE","dataRef","useRef","filter","key","newData","prevState","appendData","_prevState$key","_prevState$key2","oldEntries","state","prev","value","Pending","current","Error","RelationMode","groupId","skip","take","then","result","users","count","length","searchString","finally","Success","loadData","skipMap","personId","postFriends","firstName","lastName","verificationState","isVerified","commonSites","type","deleteFriends","wasSuccessful","useEffect","includes","getFriends","latestArgsRef","latestHandledRequestRef","throttledRequest","throttle","args","requestTimestamp","Date","now","forEach","keyString","Priority","HIGH","friendIds","Set","serverFriendEntries","entry","serverFriendIds","missingFriends","_f$firstName","_f$lastName","toLowerCase","otherEntries","leading","trailing","searchData","tmpData","uacEntries","filteredEntries","searchLocal","searchedUsers","entriesToSearch","_entry$firstName","_entry$lastName","Boolean","join","trim","push","active","UAC","cancel","person","getUACGroups","uac","providerValue","useMemo","filterDataByKeys","createElement","Provider","TextstringProvider","libraryName","PERSON_FINDER_TEXTSTRING_LIBRARY_NAME","_default"],"sources":["../../../src/components/PersonFinderProvider.tsx"],"sourcesContent":["import React, {\n createContext,\n Dispatch,\n FC,\n ReactNode,\n SetStateAction,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport throttle from 'lodash.throttle';\nimport {\n DefaultEntry,\n LoadingState,\n LoadingStateMap,\n PersonEntry,\n PersonFinderData,\n PersonFinderEntry,\n PersonFinderFilterTypes,\n Priority,\n RelationMode,\n ThrottledFunction,\n UACEntry,\n UACFilter,\n} from '../types/personFinder';\nimport { getFriends } from '../api/friends/get';\nimport { postFriends } from '../api/friends/post';\nimport { deleteFriends } from '../api/friends/delete';\nimport { filterDataByKeys, loadData } from '../utils/personFinder';\nimport { Tag } from '@chayns-components/core/lib/types/types/tagInput';\nimport { getUACGroups, getUsersByGroups } from '../utils/uac';\nimport { TextstringProvider } from '@chayns-components/textstring';\nimport { PERSON_FINDER_TEXTSTRING_LIBRARY_NAME } from '../constants/textStrings';\n\nconst THROTTLE_INTERVAL = 500;\nconst PAGE_SIZE = 20;\n\ntype GetUsersByGroupsResult = {\n users: PersonEntry[];\n count: number;\n};\n\nexport interface IPersonFinderContext {\n // Data\n data?: { [key: string]: PersonFinderData };\n updateData?: (key: PersonFinderFilterTypes, personFinderData: PersonFinderData) => void;\n\n // Tags\n tags?: Tag[];\n setTags?: Dispatch<SetStateAction<Tag[]>>;\n\n // Friends\n friends?: PersonEntry[];\n addFriend?: (personId: string) => void;\n removeFriend?: (personId: string) => void;\n\n // Filter\n activeFilter?: PersonFinderFilterTypes[];\n updateActiveFilter?: (filter: PersonFinderFilterTypes[]) => void;\n\n // Search\n search?: string;\n updateSearch?: (value: string) => void;\n\n // Loading\n loadMore?: (key: PersonFinderFilterTypes) => void;\n loadingState?: LoadingStateMap;\n updateLoadingState?: (key: PersonFinderFilterTypes, state: LoadingState) => void;\n\n relationMode?: RelationMode;\n}\n\nexport const PersonFinderContext = createContext<IPersonFinderContext>({\n data: undefined,\n updateData: undefined,\n friends: undefined,\n addFriend: undefined,\n removeFriend: undefined,\n activeFilter: undefined,\n updateActiveFilter: undefined,\n search: undefined,\n updateSearch: undefined,\n loadMore: undefined,\n loadingState: undefined,\n updateLoadingState: undefined,\n tags: undefined,\n setTags: undefined,\n relationMode: undefined,\n});\n\nPersonFinderContext.displayName = 'PersonFinderContext';\n\nexport const usePersonFinder = () => useContext(PersonFinderContext);\n\ntype PersonFinderProviderProps = {\n children: ReactNode;\n friendsPriority: Priority;\n filterTypes: PersonFinderFilterTypes[];\n defaultEntries?: DefaultEntry[];\n excludedEntryIds?: PersonFinderEntry['id'][];\n shouldShowOwnUser?: boolean;\n uacFilter?: UACFilter[];\n entries?: PersonEntry[];\n relationMode?: RelationMode;\n};\n\nconst PersonFinderProvider: FC<PersonFinderProviderProps> = ({\n children,\n friendsPriority,\n filterTypes,\n defaultEntries,\n excludedEntryIds,\n shouldShowOwnUser = false,\n uacFilter,\n entries,\n relationMode,\n}) => {\n const getPagedUsersByGroups = useCallback(\n getUsersByGroups as unknown as (\n uacFilter: UACFilter[],\n options?: { skip?: number; take?: number },\n ) => Promise<GetUsersByGroupsResult>,\n [],\n );\n\n const [data, setData] = useState<IPersonFinderContext['data']>();\n const [friends, setFriends] = useState<PersonEntry[]>();\n const [uacUsers, setUacUsers] = useState<PersonEntry[]>();\n const [activeFilter, setActiveFilter] = useState<IPersonFinderContext['activeFilter']>();\n const [search, setSearch] = useState('');\n const [tags, setTags] = useState<Tag[]>(\n defaultEntries?.map(({ id, name }) => ({ id, text: name })) ?? [],\n );\n const [loadingState, setLoadingState] = useState<LoadingStateMap>({\n [PersonFinderFilterTypes.PERSON]: LoadingState.None,\n [PersonFinderFilterTypes.SITE]: LoadingState.None,\n });\n\n const dataRef = useRef<IPersonFinderContext['data']>();\n\n const updateActiveFilter = useCallback((filter: IPersonFinderContext['activeFilter']) => {\n setActiveFilter(filter);\n }, []);\n\n const updateData = useCallback((key: PersonFinderFilterTypes, newData: PersonFinderData) => {\n setData((prevState) => ({ ...prevState, [key]: newData }));\n }, []);\n\n const appendData = useCallback((key: PersonFinderFilterTypes, newData: PersonFinderData) => {\n setData((prevState) => {\n const oldEntries = prevState && prevState[key]?.entries ? prevState[key]?.entries : [];\n\n return {\n ...prevState,\n [key]: {\n ...newData,\n entries: [...oldEntries, ...newData.entries],\n },\n };\n });\n }, []);\n\n const updateLoadingState = useCallback((key: PersonFinderFilterTypes, state: LoadingState) => {\n setLoadingState((prev) => ({\n ...prev,\n [key]: state,\n }));\n }, []);\n\n const updateSearch = useCallback((value: string) => {\n setSearch(value);\n }, []);\n\n const loadMore = useCallback(\n (key: PersonFinderFilterTypes) => {\n updateLoadingState(key, LoadingState.Pending);\n\n const current = data?.[key];\n\n if (!current) {\n updateLoadingState(key, LoadingState.Error);\n\n return;\n }\n\n if (\n relationMode === RelationMode.SITE &&\n key === PersonFinderFilterTypes.PERSON &&\n search === ''\n ) {\n void getPagedUsersByGroups([{ groupId: -1 }], {\n skip: current.skip,\n take: PAGE_SIZE,\n })\n .then((result: GetUsersByGroupsResult) => {\n const { users, count } = result;\n\n if (users.length > 0) {\n appendData(key, {\n entries: users,\n searchString: '',\n skip: current.skip + users.length,\n count,\n });\n }\n })\n .finally(() => {\n updateLoadingState(key, LoadingState.Success);\n });\n\n return;\n }\n\n void loadData({\n searchString: search ?? '',\n filter: [key],\n skipMap: { [key]: current.skip },\n relationMode,\n })\n .then((result) => {\n const newData = result?.[key];\n\n if (newData) {\n appendData(key, newData);\n }\n })\n .finally(() => {\n updateLoadingState(key, LoadingState.Success);\n });\n },\n [appendData, data, getPagedUsersByGroups, relationMode, search, updateLoadingState],\n );\n\n const addFriend = useCallback((personId: string) => {\n void postFriends(personId).then((result) => {\n if (result) {\n const { firstName, lastName, verificationState } = result;\n\n setFriends((prev) => [\n ...(prev ?? []),\n {\n id: personId,\n isVerified: verificationState === 1,\n commonSites: 0,\n firstName,\n lastName,\n type: PersonFinderFilterTypes.PERSON,\n },\n ]);\n }\n });\n }, []);\n\n const removeFriend = useCallback((personId: string) => {\n void deleteFriends(personId).then((wasSuccessful) => {\n if (wasSuccessful) {\n setFriends((prev) => prev?.filter(({ id }) => id !== personId));\n }\n });\n }, []);\n\n useEffect(() => {\n if (!filterTypes.includes(PersonFinderFilterTypes.PERSON)) {\n return;\n }\n\n void getFriends().then((result) => {\n if (result) {\n setFriends(\n result.map(({ personId, firstName, lastName, verificationState }) => ({\n lastName,\n firstName,\n id: personId,\n commonSites: 0,\n isVerified: verificationState === 1,\n type: PersonFinderFilterTypes.PERSON,\n })),\n );\n }\n });\n }, [filterTypes]);\n\n const latestArgsRef = useRef<{ search: string; filter: PersonFinderFilterTypes[] } | null>(\n null,\n );\n const latestHandledRequestRef = useRef<number>(0);\n\n const throttledRequest = useRef<ThrottledFunction<() => void>>(\n throttle(\n async () => {\n const args = latestArgsRef.current;\n\n if (!args) return;\n\n const { search: searchString, filter } = args;\n const requestTimestamp = Date.now();\n\n filter.forEach((key) => {\n updateLoadingState(key, LoadingState.Pending);\n });\n\n const result = await loadData({\n searchString,\n filter,\n skipMap: {},\n relationMode,\n });\n\n if (requestTimestamp < latestHandledRequestRef.current) {\n return;\n }\n\n latestHandledRequestRef.current = requestTimestamp;\n\n if (!result) return;\n\n Object.entries(result).forEach(([keyString, value]) => {\n const key = keyString as PersonFinderFilterTypes;\n\n if (\n key === PersonFinderFilterTypes.PERSON &&\n friendsPriority === Priority.HIGH &&\n friends\n ) {\n const friendIds = new Set(friends.map((f) => f.id));\n const serverFriendEntries = value.entries.filter((entry) =>\n friendIds.has(entry.id as string),\n );\n const serverFriendIds = new Set(serverFriendEntries.map((f) => f.id));\n\n const missingFriends = friends\n .filter((f) => !serverFriendIds.has(f.id))\n .filter(\n (f) =>\n f.firstName\n ?.toLowerCase()\n .includes(searchString.toLowerCase()) ||\n f.lastName?.toLowerCase().includes(searchString.toLowerCase()),\n );\n\n const otherEntries = value.entries.filter(\n (entry) => !friendIds.has(entry.id as string),\n );\n\n updateData(key, {\n ...value,\n entries: [...serverFriendEntries, ...missingFriends, ...otherEntries],\n });\n } else {\n updateData(key, value);\n }\n\n updateLoadingState(\n key,\n value.entries.length === 0 ? LoadingState.Error : LoadingState.Success,\n );\n });\n },\n THROTTLE_INTERVAL,\n { leading: false, trailing: true },\n ),\n ).current;\n\n useEffect(() => {\n dataRef.current = data;\n }, [data]);\n\n const searchData = useCallback(\n ({ filter }: { filter: PersonFinderFilterTypes[] }) => {\n const tmpData = dataRef.current;\n\n filter.forEach((key) => {\n updateLoadingState(key, LoadingState.Pending);\n\n if (tmpData && tmpData[key]) {\n // Add all Types that are not searched by a request\n const uacEntries = tmpData[key].entries as UACEntry[];\n\n const filteredEntries = uacEntries.filter(({ name }) =>\n name.toLowerCase().includes(search.toLowerCase()),\n );\n\n updateData(key, {\n entries: filteredEntries,\n searchString: search,\n count: filteredEntries.length,\n skip: filteredEntries.length,\n });\n\n updateLoadingState(\n key,\n filteredEntries.length === 0 ? LoadingState.Error : LoadingState.Success,\n );\n }\n });\n },\n [search, updateData, updateLoadingState],\n );\n\n const searchLocal = useCallback(() => {\n if (search.length < 3) {\n return;\n }\n\n updateLoadingState(PersonFinderFilterTypes.PERSON, LoadingState.Pending);\n\n const searchedUsers: PersonEntry[] = [];\n\n const entriesToSearch = entries ?? uacUsers;\n\n entriesToSearch?.forEach((entry) => {\n if (\n entry.firstName?.toLowerCase().includes(search.toLowerCase()) ||\n entry.lastName?.toLowerCase().includes(search.toLowerCase()) ||\n [entry.firstName, entry.lastName]\n .filter(Boolean)\n .join(' ')\n .toLowerCase()\n .trim()\n .includes(search.toLowerCase().trim()) ||\n entry.id.toLowerCase().includes(search.toLowerCase())\n ) {\n searchedUsers.push(entry);\n }\n });\n\n updateData(PersonFinderFilterTypes.PERSON, {\n entries: searchedUsers,\n searchString: search,\n count: searchedUsers.length,\n skip: searchedUsers.length,\n });\n\n updateLoadingState(\n PersonFinderFilterTypes.PERSON,\n searchedUsers.length === 0 ? LoadingState.Error : LoadingState.Success,\n );\n }, [entries, search, uacUsers, updateData, updateLoadingState]);\n\n useEffect(() => {\n if (!search) return;\n\n const active = activeFilter ?? filterTypes;\n\n if (uacFilter || entries) {\n searchLocal();\n } else if (active?.includes(PersonFinderFilterTypes.UAC)) {\n searchData({ filter: [PersonFinderFilterTypes.UAC] });\n } else {\n latestArgsRef.current = { search, filter: active };\n\n throttledRequest();\n }\n }, [\n filterTypes,\n search,\n activeFilter,\n friends,\n friendsPriority,\n updateData,\n updateLoadingState,\n throttledRequest,\n searchData,\n uacFilter,\n searchLocal,\n entries,\n ]);\n\n useEffect(\n () => () => {\n throttledRequest.cancel();\n },\n [throttledRequest],\n );\n\n // load initial data\n useEffect(() => {\n if (entries) {\n return;\n }\n\n if (\n relationMode === RelationMode.SITE &&\n filterTypes.includes(PersonFinderFilterTypes.PERSON)\n ) {\n void getPagedUsersByGroups([{ groupId: -1 }], { skip: 0, take: PAGE_SIZE }).then(\n (result: GetUsersByGroupsResult) => {\n const { users, count } = result;\n\n setData({\n person: {\n entries: users,\n searchString: '',\n skip: users.length,\n count,\n },\n });\n },\n );\n }\n\n if (uacFilter) {\n void getPagedUsersByGroups(uacFilter).then((result: GetUsersByGroupsResult) => {\n const { users } = result;\n\n setUacUsers(users);\n });\n\n return;\n }\n\n if (filterTypes.includes(PersonFinderFilterTypes.UAC) && search === '') {\n void getUACGroups().then((result) => {\n setData({\n uac: {\n entries: result,\n searchString: '',\n skip: result.length,\n count: result.length,\n },\n });\n });\n }\n\n if (\n friendsPriority === Priority.HIGH &&\n filterTypes.includes(PersonFinderFilterTypes.PERSON) &&\n friends &&\n search === ''\n ) {\n setData({\n person: {\n entries: friends,\n searchString: '',\n skip: friends.length,\n count: friends.length,\n },\n });\n }\n }, [\n entries,\n filterTypes,\n friends,\n friendsPriority,\n getPagedUsersByGroups,\n relationMode,\n search,\n uacFilter,\n ]);\n\n const providerValue = useMemo<IPersonFinderContext>(\n () => ({\n data: filterDataByKeys(data, activeFilter, {\n excludedEntryIds,\n shouldShowOwnUser: uacFilter ? false : shouldShowOwnUser,\n }),\n updateData,\n activeFilter,\n updateActiveFilter,\n friends,\n addFriend,\n removeFriend,\n search,\n updateSearch,\n loadMore,\n loadingState,\n updateLoadingState,\n setTags,\n tags,\n relationMode,\n }),\n [\n activeFilter,\n addFriend,\n data,\n excludedEntryIds,\n friends,\n loadMore,\n loadingState,\n removeFriend,\n search,\n shouldShowOwnUser,\n tags,\n uacFilter,\n updateActiveFilter,\n updateData,\n updateLoadingState,\n updateSearch,\n relationMode,\n ],\n );\n\n return (\n <PersonFinderContext.Provider value={providerValue}>\n <TextstringProvider libraryName={PERSON_FINDER_TEXTSTRING_LIBRARY_NAME}>\n {children}\n </TextstringProvider>\n </PersonFinderContext.Provider>\n );\n};\n\nPersonFinderProvider.displayName = 'PersonFinderProvider';\n\nexport default PersonFinderProvider;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"PersonFinderProvider.js","names":["_react","_interopRequireWildcard","require","_lodash","_interopRequireDefault","_personFinder","_get","_post","_delete","_personFinder2","_uac","_textstring","_textStrings","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","THROTTLE_INTERVAL","PAGE_SIZE","PersonFinderContext","exports","createContext","data","undefined","updateData","friends","addFriend","removeFriend","activeFilter","updateActiveFilter","search","updateSearch","loadMore","loadingState","updateLoadingState","tags","setTags","relationMode","displayName","usePersonFinder","useContext","PersonFinderProvider","children","friendsPriority","filterTypes","defaultEntries","excludedEntryIds","shouldShowOwnUser","shouldUseQa","uacFilter","entries","getPagedUsersByGroups","useCallback","getUsersByGroups","setData","useState","setFriends","uacUsers","setUacUsers","setActiveFilter","setSearch","map","id","name","text","setLoadingState","PersonFinderFilterTypes","PERSON","LoadingState","None","SITE","dataRef","useRef","filter","key","newData","prevState","appendData","_prevState$key","_prevState$key2","oldEntries","state","prev","value","Pending","current","Error","RelationMode","groupId","skip","take","then","result","users","count","length","searchString","finally","Success","loadData","skipMap","personId","postFriends","firstName","lastName","verificationState","isVerified","commonSites","type","deleteFriends","wasSuccessful","useEffect","includes","getFriends","latestArgsRef","latestHandledRequestRef","searchLocalRef","searchDataRef","throttledRequest","throttle","args","requestTimestamp","Date","now","forEach","keyString","Priority","HIGH","friendIds","Set","serverFriendEntries","entry","serverFriendIds","missingFriends","_f$firstName","_f$lastName","toLowerCase","otherEntries","leading","trailing","searchData","tmpData","uacEntries","filteredEntries","searchLocal","searchedUsers","entriesToSearch","_entry$firstName","_entry$lastName","Boolean","join","trim","push","active","currentData","UAC","filtersToLoad","filterData","filterList","missingFilters","_throttledRequest$cur","cancel","person","getUACGroups","uac","providerValue","useMemo","filterDataByKeys","createElement","Provider","TextstringProvider","libraryName","PERSON_FINDER_TEXTSTRING_LIBRARY_NAME","_default"],"sources":["../../../src/components/PersonFinderProvider.tsx"],"sourcesContent":["import React, {\n createContext,\n Dispatch,\n FC,\n ReactNode,\n SetStateAction,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport throttle from 'lodash.throttle';\nimport {\n DefaultEntry,\n LoadingState,\n LoadingStateMap,\n PersonEntry,\n PersonFinderData,\n PersonFinderEntry,\n PersonFinderFilterTypes,\n Priority,\n RelationMode,\n ThrottledFunction,\n UACEntry,\n UACFilter,\n} from '../types/personFinder';\nimport { getFriends } from '../api/friends/get';\nimport { postFriends } from '../api/friends/post';\nimport { deleteFriends } from '../api/friends/delete';\nimport { filterDataByKeys, loadData } from '../utils/personFinder';\nimport { Tag } from '@chayns-components/core/lib/types/types/tagInput';\nimport { getUACGroups, getUsersByGroups } from '../utils/uac';\nimport { TextstringProvider } from '@chayns-components/textstring';\nimport { PERSON_FINDER_TEXTSTRING_LIBRARY_NAME } from '../constants/textStrings';\n\nconst THROTTLE_INTERVAL = 500;\nconst PAGE_SIZE = 20;\n\ntype GetUsersByGroupsResult = {\n users: PersonEntry[];\n count: number;\n};\n\nexport interface IPersonFinderContext {\n // Data\n data?: { [key: string]: PersonFinderData };\n updateData?: (key: PersonFinderFilterTypes, personFinderData: PersonFinderData) => void;\n\n // Tags\n tags?: Tag[];\n setTags?: Dispatch<SetStateAction<Tag[]>>;\n\n // Friends\n friends?: PersonEntry[];\n addFriend?: (personId: string) => void;\n removeFriend?: (personId: string) => void;\n\n // Filter\n activeFilter?: PersonFinderFilterTypes[];\n updateActiveFilter?: (filter: PersonFinderFilterTypes[]) => void;\n\n // Search\n search?: string;\n updateSearch?: (value: string) => void;\n\n // Loading\n loadMore?: (key: PersonFinderFilterTypes) => void;\n loadingState?: LoadingStateMap;\n updateLoadingState?: (key: PersonFinderFilterTypes, state: LoadingState) => void;\n\n relationMode?: RelationMode;\n}\n\nexport const PersonFinderContext = createContext<IPersonFinderContext>({\n data: undefined,\n updateData: undefined,\n friends: undefined,\n addFriend: undefined,\n removeFriend: undefined,\n activeFilter: undefined,\n updateActiveFilter: undefined,\n search: undefined,\n updateSearch: undefined,\n loadMore: undefined,\n loadingState: undefined,\n updateLoadingState: undefined,\n tags: undefined,\n setTags: undefined,\n relationMode: undefined,\n});\n\nPersonFinderContext.displayName = 'PersonFinderContext';\n\nexport const usePersonFinder = () => useContext(PersonFinderContext);\n\ntype PersonFinderProviderProps = {\n children: ReactNode;\n friendsPriority: Priority;\n filterTypes: PersonFinderFilterTypes[];\n defaultEntries?: DefaultEntry[];\n excludedEntryIds?: PersonFinderEntry['id'][];\n shouldShowOwnUser?: boolean;\n uacFilter?: UACFilter[];\n entries?: PersonEntry[];\n relationMode?: RelationMode;\n shouldUseQa: boolean;\n};\n\nconst PersonFinderProvider: FC<PersonFinderProviderProps> = ({\n children,\n friendsPriority,\n filterTypes,\n defaultEntries,\n excludedEntryIds,\n shouldShowOwnUser = false,\n shouldUseQa,\n uacFilter,\n entries,\n relationMode,\n}) => {\n const getPagedUsersByGroups = useCallback(\n getUsersByGroups as unknown as (\n uacFilter: UACFilter[],\n options?: { skip?: number; take?: number },\n ) => Promise<GetUsersByGroupsResult>,\n [],\n );\n\n const [data, setData] = useState<IPersonFinderContext['data']>();\n const [friends, setFriends] = useState<PersonEntry[]>();\n const [uacUsers, setUacUsers] = useState<PersonEntry[]>();\n const [activeFilter, setActiveFilter] = useState<IPersonFinderContext['activeFilter']>();\n const [search, setSearch] = useState('');\n const [tags, setTags] = useState<Tag[]>(\n defaultEntries?.map(({ id, name }) => ({ id, text: name })) ?? [],\n );\n const [loadingState, setLoadingState] = useState<LoadingStateMap>({\n [PersonFinderFilterTypes.PERSON]: LoadingState.None,\n [PersonFinderFilterTypes.SITE]: LoadingState.None,\n });\n\n const dataRef = useRef<IPersonFinderContext['data']>();\n\n const updateActiveFilter = useCallback((filter: IPersonFinderContext['activeFilter']) => {\n setActiveFilter(filter);\n }, []);\n\n const updateData = useCallback((key: PersonFinderFilterTypes, newData: PersonFinderData) => {\n setData((prevState) => ({ ...prevState, [key]: newData }));\n }, []);\n\n const appendData = useCallback((key: PersonFinderFilterTypes, newData: PersonFinderData) => {\n setData((prevState) => {\n const oldEntries = prevState && prevState[key]?.entries ? prevState[key]?.entries : [];\n\n return {\n ...prevState,\n [key]: {\n ...newData,\n entries: [...oldEntries, ...newData.entries],\n },\n };\n });\n }, []);\n\n const updateLoadingState = useCallback((key: PersonFinderFilterTypes, state: LoadingState) => {\n setLoadingState((prev) => ({\n ...prev,\n [key]: state,\n }));\n }, []);\n\n const updateSearch = useCallback((value: string) => {\n setSearch(value);\n }, []);\n\n const loadMore = useCallback(\n (key: PersonFinderFilterTypes) => {\n updateLoadingState(key, LoadingState.Pending);\n\n const current = data?.[key];\n\n if (!current) {\n updateLoadingState(key, LoadingState.Error);\n\n return;\n }\n\n if (\n relationMode === RelationMode.SITE &&\n key === PersonFinderFilterTypes.PERSON &&\n search === ''\n ) {\n void getPagedUsersByGroups([{ groupId: -1 }], {\n skip: current.skip,\n take: PAGE_SIZE,\n })\n .then((result: GetUsersByGroupsResult) => {\n const { users, count } = result;\n\n if (users.length > 0) {\n appendData(key, {\n entries: users,\n searchString: '',\n skip: current.skip + users.length,\n count,\n });\n }\n })\n .finally(() => {\n updateLoadingState(key, LoadingState.Success);\n });\n\n return;\n }\n\n void loadData({\n searchString: search ?? '',\n filter: [key],\n skipMap: { [key]: current.skip },\n relationMode,\n shouldUseQa,\n })\n .then((result) => {\n const newData = result?.[key];\n\n if (newData) {\n appendData(key, newData);\n }\n })\n .finally(() => {\n updateLoadingState(key, LoadingState.Success);\n });\n },\n [\n appendData,\n data,\n getPagedUsersByGroups,\n relationMode,\n search,\n shouldUseQa,\n updateLoadingState,\n ],\n );\n\n const addFriend = useCallback((personId: string) => {\n void postFriends(personId).then((result) => {\n if (result) {\n const { firstName, lastName, verificationState } = result;\n\n setFriends((prev) => [\n ...(prev ?? []),\n {\n id: personId,\n isVerified: verificationState === 1,\n commonSites: 0,\n firstName,\n lastName,\n type: PersonFinderFilterTypes.PERSON,\n },\n ]);\n }\n });\n }, []);\n\n const removeFriend = useCallback((personId: string) => {\n void deleteFriends(personId).then((wasSuccessful) => {\n if (wasSuccessful) {\n setFriends((prev) => prev?.filter(({ id }) => id !== personId));\n }\n });\n }, []);\n\n useEffect(() => {\n if (!filterTypes.includes(PersonFinderFilterTypes.PERSON)) {\n return;\n }\n\n void getFriends().then((result) => {\n if (result) {\n setFriends(\n result.map(({ personId, firstName, lastName, verificationState }) => ({\n lastName,\n firstName,\n id: personId,\n commonSites: 0,\n isVerified: verificationState === 1,\n type: PersonFinderFilterTypes.PERSON,\n })),\n );\n }\n });\n }, [filterTypes]);\n\n const latestArgsRef = useRef<{ search: string; filter: PersonFinderFilterTypes[] } | null>(\n null,\n );\n const latestHandledRequestRef = useRef<number>(0);\n const searchLocalRef = useRef<() => void>(() => {});\n const searchDataRef = useRef<({ filter }: { filter: PersonFinderFilterTypes[] }) => void>(\n () => {},\n );\n\n const throttledRequest = useRef<ThrottledFunction<() => void>>(\n throttle(\n async () => {\n const args = latestArgsRef.current;\n\n if (!args) return;\n\n const { search: searchString, filter } = args;\n const requestTimestamp = Date.now();\n\n filter.forEach((key) => {\n updateLoadingState(key, LoadingState.Pending);\n });\n\n const result = await loadData({\n searchString,\n filter,\n skipMap: {},\n relationMode,\n shouldUseQa,\n });\n\n if (requestTimestamp < latestHandledRequestRef.current) {\n return;\n }\n\n latestHandledRequestRef.current = requestTimestamp;\n\n if (!result) return;\n\n Object.entries(result).forEach(([keyString, value]) => {\n const key = keyString as PersonFinderFilterTypes;\n\n if (\n key === PersonFinderFilterTypes.PERSON &&\n friendsPriority === Priority.HIGH &&\n friends\n ) {\n const friendIds = new Set(friends.map((f) => f.id));\n const serverFriendEntries = value.entries.filter((entry) =>\n friendIds.has(entry.id as string),\n );\n const serverFriendIds = new Set(serverFriendEntries.map((f) => f.id));\n\n const missingFriends = friends\n .filter((f) => !serverFriendIds.has(f.id))\n .filter(\n (f) =>\n f.firstName\n ?.toLowerCase()\n .includes(searchString.toLowerCase()) ||\n f.lastName?.toLowerCase().includes(searchString.toLowerCase()),\n );\n\n const otherEntries = value.entries.filter(\n (entry) => !friendIds.has(entry.id as string),\n );\n\n updateData(key, {\n ...value,\n entries: [...serverFriendEntries, ...missingFriends, ...otherEntries],\n });\n } else {\n updateData(key, value);\n }\n\n updateLoadingState(\n key,\n value.entries.length === 0 ? LoadingState.Error : LoadingState.Success,\n );\n });\n },\n THROTTLE_INTERVAL,\n { leading: false, trailing: true },\n ),\n );\n\n const searchData = useCallback(\n ({ filter }: { filter: PersonFinderFilterTypes[] }) => {\n const tmpData = dataRef.current;\n\n filter.forEach((key) => {\n updateLoadingState(key, LoadingState.Pending);\n\n if (tmpData && tmpData[key]) {\n // Add all Types that are not searched by a request\n const uacEntries = tmpData[key].entries as UACEntry[];\n\n const filteredEntries = uacEntries.filter(({ name }) =>\n name.toLowerCase().includes(search.toLowerCase()),\n );\n\n updateData(key, {\n entries: filteredEntries,\n searchString: search,\n count: filteredEntries.length,\n skip: filteredEntries.length,\n });\n\n updateLoadingState(\n key,\n filteredEntries.length === 0 ? LoadingState.Error : LoadingState.Success,\n );\n }\n });\n },\n [search, updateData, updateLoadingState],\n );\n\n const searchLocal = useCallback(() => {\n if (search.length < 3) {\n return;\n }\n\n updateLoadingState(PersonFinderFilterTypes.PERSON, LoadingState.Pending);\n\n const searchedUsers: PersonEntry[] = [];\n\n const entriesToSearch = entries ?? uacUsers;\n\n entriesToSearch?.forEach((entry) => {\n if (\n entry.firstName?.toLowerCase().includes(search.toLowerCase()) ||\n entry.lastName?.toLowerCase().includes(search.toLowerCase()) ||\n [entry.firstName, entry.lastName]\n .filter(Boolean)\n .join(' ')\n .toLowerCase()\n .trim()\n .includes(search.toLowerCase().trim()) ||\n entry.id.toLowerCase().includes(search.toLowerCase())\n ) {\n searchedUsers.push(entry);\n }\n });\n\n updateData(PersonFinderFilterTypes.PERSON, {\n entries: searchedUsers,\n searchString: search,\n count: searchedUsers.length,\n skip: searchedUsers.length,\n });\n\n updateLoadingState(\n PersonFinderFilterTypes.PERSON,\n searchedUsers.length === 0 ? LoadingState.Error : LoadingState.Success,\n );\n }, [entries, search, uacUsers, updateData, updateLoadingState]);\n\n useEffect(() => {\n dataRef.current = data;\n }, [data]);\n\n useEffect(() => {\n searchLocalRef.current = searchLocal;\n }, [searchLocal]);\n\n useEffect(() => {\n searchDataRef.current = searchData;\n }, [searchData]);\n\n useEffect(() => {\n if (!search) return;\n\n const active = activeFilter && activeFilter.length > 0 ? activeFilter : filterTypes;\n const currentData = dataRef.current;\n\n if (uacFilter || entries) {\n searchLocalRef.current();\n } else if (active?.includes(PersonFinderFilterTypes.UAC)) {\n searchDataRef.current({ filter: [PersonFinderFilterTypes.UAC] });\n } else {\n // Only load filters that don't have data for this search yet\n const filtersToLoad = active.filter((filter) => {\n const filterData = currentData?.[filter];\n return !filterData || filterData.searchString !== search;\n });\n\n // If we have filters to load, use them; otherwise use all active filters\n const filterList = filtersToLoad.length > 0 ? filtersToLoad : active;\n\n latestArgsRef.current = { search, filter: filterList };\n\n throttledRequest.current();\n }\n }, [search, uacFilter, entries]);\n\n // Handle filter changes - load missing data for newly selected filters\n useEffect(() => {\n if (!search) return;\n\n const active = activeFilter && activeFilter.length > 0 ? activeFilter : filterTypes;\n const currentData = dataRef.current;\n\n // Check which filters need to be loaded (don't have data for current search)\n const missingFilters = active.filter((filter) => {\n const filterData = currentData?.[filter];\n // If no data or data is from a different search, we need to load it\n return !filterData || filterData.searchString !== search;\n });\n\n if (missingFilters.length === 0) return;\n if (uacFilter || entries) return;\n if (active?.includes(PersonFinderFilterTypes.UAC)) return;\n\n // Load only the missing filters\n latestArgsRef.current = { search, filter: missingFilters };\n throttledRequest.current();\n }, [activeFilter, search, uacFilter, entries, filterTypes]);\n\n useEffect(\n () => () => {\n throttledRequest.current?.cancel();\n },\n [],\n );\n\n // load initial data\n useEffect(() => {\n if (entries) {\n return;\n }\n\n if (\n relationMode === RelationMode.SITE &&\n filterTypes.includes(PersonFinderFilterTypes.PERSON)\n ) {\n void getPagedUsersByGroups([{ groupId: -1 }], { skip: 0, take: PAGE_SIZE }).then(\n (result: GetUsersByGroupsResult) => {\n const { users, count } = result;\n\n setData({\n person: {\n entries: users,\n searchString: '',\n skip: users.length,\n count,\n },\n });\n },\n );\n }\n\n if (uacFilter) {\n void getPagedUsersByGroups(uacFilter).then((result: GetUsersByGroupsResult) => {\n const { users } = result;\n\n setUacUsers(users);\n });\n\n return;\n }\n\n if (filterTypes.includes(PersonFinderFilterTypes.UAC) && search === '') {\n void getUACGroups().then((result) => {\n setData({\n uac: {\n entries: result,\n searchString: '',\n skip: result.length,\n count: result.length,\n },\n });\n });\n }\n\n if (\n friendsPriority === Priority.HIGH &&\n filterTypes.includes(PersonFinderFilterTypes.PERSON) &&\n friends &&\n search === ''\n ) {\n setData({\n person: {\n entries: friends,\n searchString: '',\n skip: friends.length,\n count: friends.length,\n },\n });\n }\n }, [\n entries,\n filterTypes,\n friends,\n friendsPriority,\n getPagedUsersByGroups,\n relationMode,\n search,\n uacFilter,\n ]);\n\n const providerValue = useMemo<IPersonFinderContext>(\n () => ({\n data: filterDataByKeys(data, activeFilter, {\n excludedEntryIds,\n shouldShowOwnUser: uacFilter ? false : shouldShowOwnUser,\n }),\n updateData,\n activeFilter,\n updateActiveFilter,\n friends,\n addFriend,\n removeFriend,\n search,\n updateSearch,\n loadMore,\n loadingState,\n updateLoadingState,\n setTags,\n tags,\n relationMode,\n }),\n [\n activeFilter,\n addFriend,\n data,\n excludedEntryIds,\n friends,\n loadMore,\n loadingState,\n removeFriend,\n search,\n shouldShowOwnUser,\n tags,\n uacFilter,\n updateActiveFilter,\n updateData,\n updateLoadingState,\n updateSearch,\n relationMode,\n ],\n );\n\n return (\n <PersonFinderContext.Provider value={providerValue}>\n <TextstringProvider libraryName={PERSON_FINDER_TEXTSTRING_LIBRARY_NAME}>\n {children}\n </TextstringProvider>\n </PersonFinderContext.Provider>\n );\n};\n\nPersonFinderProvider.displayName = 'PersonFinderProvider';\n\nexport default PersonFinderProvider;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -28,6 +28,7 @@ const PersonFinder = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
28
28
|
onDropdownHide,
|
|
29
29
|
onDropdownShow,
|
|
30
30
|
onRemove,
|
|
31
|
+
shouldUseQa = false,
|
|
31
32
|
placeholder = 'Person oder Site finden',
|
|
32
33
|
shouldAllowMultiple = true,
|
|
33
34
|
shouldHideResultsOnAdd = !shouldAllowMultiple || false,
|
|
@@ -50,6 +51,7 @@ const PersonFinder = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
50
51
|
excludedEntryIds: excludedEntryIds,
|
|
51
52
|
shouldShowOwnUser: shouldShowOwnUser,
|
|
52
53
|
uacFilter: uacFilter,
|
|
54
|
+
shouldUseQa: shouldUseQa,
|
|
53
55
|
entries: entries,
|
|
54
56
|
relationMode: relationMode
|
|
55
57
|
}, /*#__PURE__*/_react.default.createElement(_core.AreaProvider, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PersonFinder.js","names":["_react","_interopRequireWildcard","require","_personFinder","_PersonFinderProvider","_interopRequireDefault","_PersonFinderWrapper","_core","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_FILTER_TYPES","PersonFinderFilterTypes","PERSON","SITE","PersonFinder","forwardRef","container","dropdownDirection","defaultEntries","excludedEntryIds","relationMode","RelationMode","uacFilter","entries","filterTypes","friendsPriority","Priority","NORMAL","HIGH","leftElement","maxEntries","onAdd","onDropdownHide","onDropdownShow","onRemove","placeholder","shouldAllowMultiple","shouldHideResultsOnAdd","shouldShowOwnUser","shouldDisableRemove","shouldRenderInline","ref","personFinderRef","useRef","innerRef","useImperativeHandle","clear","_innerRef$current","current","createElement","AreaProvider","shouldChangeColor","shouldDisableListItemPadding","className","displayName","_default","exports"],"sources":["../../../../src/components/person-finder/PersonFinder.tsx"],"sourcesContent":["import React, { forwardRef, useImperativeHandle, useRef } from 'react';\nimport {\n DefaultEntry,\n PersonEntry,\n PersonFinderEntry,\n PersonFinderFilterTypes,\n Priority,\n RelationMode,\n UACFilter,\n} from '../../types/personFinder';\nimport PersonFinderProvider from '../PersonFinderProvider';\nimport PersonFinderWrapper, {\n PersonFinderRef,\n PersonFinderWrapperProps,\n} from './person-finder-wrapper/PersonFinderWrapper';\nimport { AreaProvider } from '@chayns-components/core';\n\nconst DEFAULT_FILTER_TYPES = [PersonFinderFilterTypes.PERSON, PersonFinderFilterTypes.SITE];\n\nexport type PersonFinderProps = PersonFinderWrapperProps & {\n /**\n * Sites and persons that are selected by default.\n */\n defaultEntries?: DefaultEntry[];\n /**\n * Entry ids to exclude from the results\n */\n excludedEntryIds?: PersonFinderEntry['id'][];\n /**\n * Whether the own user should be shown in the results. By default, it is not shown.\n */\n shouldShowOwnUser?: boolean;\n /**\n * Optional filter to search member of uac group. Only works with groups of the current Site and if the user is manager.\n */\n uacFilter?: UACFilter[];\n /**\n * A list of entries that should be searched.\n */\n entries?: PersonEntry[];\n};\n\nconst PersonFinder = forwardRef<PersonFinderRef, PersonFinderProps>(\n (\n {\n container,\n dropdownDirection,\n defaultEntries,\n excludedEntryIds,\n relationMode = RelationMode.PERSON,\n uacFilter,\n entries,\n filterTypes = uacFilter || entries\n ? [PersonFinderFilterTypes.PERSON]\n : DEFAULT_FILTER_TYPES,\n friendsPriority = relationMode === RelationMode.SITE ? Priority.NORMAL : Priority.HIGH,\n leftElement,\n maxEntries,\n onAdd,\n onDropdownHide,\n onDropdownShow,\n onRemove,\n placeholder = 'Person oder Site finden',\n shouldAllowMultiple = true,\n shouldHideResultsOnAdd = !shouldAllowMultiple || false,\n shouldShowOwnUser = false,\n shouldDisableRemove = false,\n shouldRenderInline = false,\n },\n ref,\n ) => {\n const personFinderRef = useRef<HTMLDivElement>(null);\n const innerRef = useRef<PersonFinderRef>(null);\n\n useImperativeHandle(ref, () => ({\n clear: () => innerRef.current?.clear(),\n }));\n\n return (\n <PersonFinderProvider\n friendsPriority={friendsPriority}\n defaultEntries={defaultEntries}\n filterTypes={filterTypes}\n excludedEntryIds={excludedEntryIds}\n shouldShowOwnUser={shouldShowOwnUser}\n uacFilter={uacFilter}\n entries={entries}\n relationMode={relationMode}\n >\n <AreaProvider shouldChangeColor={false} shouldDisableListItemPadding>\n <div className=\"beta-chayns-person-finder\" ref={personFinderRef}>\n <PersonFinderWrapper\n ref={innerRef}\n container={container}\n dropdownDirection={dropdownDirection}\n filterTypes={filterTypes}\n maxEntries={maxEntries}\n onAdd={onAdd}\n relationMode={relationMode}\n shouldDisableRemove={shouldDisableRemove}\n onDropdownHide={onDropdownHide}\n onDropdownShow={onDropdownShow}\n leftElement={leftElement}\n onRemove={onRemove}\n placeholder={placeholder}\n shouldAllowMultiple={shouldAllowMultiple}\n shouldHideResultsOnAdd={shouldHideResultsOnAdd}\n shouldRenderInline={shouldRenderInline}\n />\n </div>\n </AreaProvider>\n </PersonFinderProvider>\n );\n },\n);\n\nPersonFinder.displayName = 'PersonFinder';\n\nexport default PersonFinder;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AASA,IAAAE,qBAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,oBAAA,GAAAD,sBAAA,CAAAH,OAAA;AAIA,IAAAK,KAAA,GAAAL,OAAA;AAAuD,SAAAG,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAP,wBAAAO,CAAA,EAAAG,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAX,uBAAA,YAAAA,CAAAO,CAAA,EAAAG,CAAA,SAAAA,CAAA,IAAAH,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAO,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAR,OAAA,EAAAF,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAS,CAAA,MAAAF,CAAA,GAAAJ,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAE,CAAA,CAAAI,GAAA,CAAAX,CAAA,UAAAO,CAAA,CAAAK,GAAA,CAAAZ,CAAA,GAAAO,CAAA,CAAAM,GAAA,CAAAb,CAAA,EAAAS,CAAA,gBAAAN,CAAA,IAAAH,CAAA,gBAAAG,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAG,CAAA,OAAAK,CAAA,IAAAD,CAAA,GAAAS,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAG,CAAA,OAAAK,CAAA,CAAAI,GAAA,IAAAJ,CAAA,CAAAK,GAAA,IAAAN,CAAA,CAAAE,CAAA,EAAAN,CAAA,EAAAK,CAAA,IAAAC,CAAA,CAAAN,CAAA,IAAAH,CAAA,CAAAG,CAAA,WAAAM,CAAA,KAAAT,CAAA,EAAAG,CAAA;AAEvD,MAAMgB,oBAAoB,GAAG,CAACC,qCAAuB,CAACC,MAAM,EAAED,qCAAuB,CAACE,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"PersonFinder.js","names":["_react","_interopRequireWildcard","require","_personFinder","_PersonFinderProvider","_interopRequireDefault","_PersonFinderWrapper","_core","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_FILTER_TYPES","PersonFinderFilterTypes","PERSON","SITE","PersonFinder","forwardRef","container","dropdownDirection","defaultEntries","excludedEntryIds","relationMode","RelationMode","uacFilter","entries","filterTypes","friendsPriority","Priority","NORMAL","HIGH","leftElement","maxEntries","onAdd","onDropdownHide","onDropdownShow","onRemove","shouldUseQa","placeholder","shouldAllowMultiple","shouldHideResultsOnAdd","shouldShowOwnUser","shouldDisableRemove","shouldRenderInline","ref","personFinderRef","useRef","innerRef","useImperativeHandle","clear","_innerRef$current","current","createElement","AreaProvider","shouldChangeColor","shouldDisableListItemPadding","className","displayName","_default","exports"],"sources":["../../../../src/components/person-finder/PersonFinder.tsx"],"sourcesContent":["import React, { forwardRef, useImperativeHandle, useRef } from 'react';\nimport {\n DefaultEntry,\n PersonEntry,\n PersonFinderEntry,\n PersonFinderFilterTypes,\n Priority,\n RelationMode,\n UACFilter,\n} from '../../types/personFinder';\nimport PersonFinderProvider from '../PersonFinderProvider';\nimport PersonFinderWrapper, {\n PersonFinderRef,\n PersonFinderWrapperProps,\n} from './person-finder-wrapper/PersonFinderWrapper';\nimport { AreaProvider } from '@chayns-components/core';\n\nconst DEFAULT_FILTER_TYPES = [PersonFinderFilterTypes.PERSON, PersonFinderFilterTypes.SITE];\n\nexport type PersonFinderProps = PersonFinderWrapperProps & {\n /**\n * Sites and persons that are selected by default.\n */\n defaultEntries?: DefaultEntry[];\n /**\n * Entry ids to exclude from the results\n */\n excludedEntryIds?: PersonFinderEntry['id'][];\n /**\n * Whether the own user should be shown in the results. By default, it is not shown.\n */\n shouldShowOwnUser?: boolean;\n /**\n * Whether the qa relations should be used.\n */\n shouldUseQa?: boolean;\n /**\n * Optional filter to search member of uac group. Only works with groups of the current Site and if the user is manager.\n */\n uacFilter?: UACFilter[];\n /**\n * A list of entries that should be searched.\n */\n entries?: PersonEntry[];\n};\n\nconst PersonFinder = forwardRef<PersonFinderRef, PersonFinderProps>(\n (\n {\n container,\n dropdownDirection,\n defaultEntries,\n excludedEntryIds,\n relationMode = RelationMode.PERSON,\n uacFilter,\n entries,\n filterTypes = uacFilter || entries\n ? [PersonFinderFilterTypes.PERSON]\n : DEFAULT_FILTER_TYPES,\n friendsPriority = relationMode === RelationMode.SITE ? Priority.NORMAL : Priority.HIGH,\n leftElement,\n maxEntries,\n onAdd,\n onDropdownHide,\n onDropdownShow,\n onRemove,\n shouldUseQa = false,\n placeholder = 'Person oder Site finden',\n shouldAllowMultiple = true,\n shouldHideResultsOnAdd = !shouldAllowMultiple || false,\n shouldShowOwnUser = false,\n shouldDisableRemove = false,\n shouldRenderInline = false,\n },\n ref,\n ) => {\n const personFinderRef = useRef<HTMLDivElement>(null);\n const innerRef = useRef<PersonFinderRef>(null);\n\n useImperativeHandle(ref, () => ({\n clear: () => innerRef.current?.clear(),\n }));\n\n return (\n <PersonFinderProvider\n friendsPriority={friendsPriority}\n defaultEntries={defaultEntries}\n filterTypes={filterTypes}\n excludedEntryIds={excludedEntryIds}\n shouldShowOwnUser={shouldShowOwnUser}\n uacFilter={uacFilter}\n shouldUseQa={shouldUseQa}\n entries={entries}\n relationMode={relationMode}\n >\n <AreaProvider shouldChangeColor={false} shouldDisableListItemPadding>\n <div className=\"beta-chayns-person-finder\" ref={personFinderRef}>\n <PersonFinderWrapper\n ref={innerRef}\n container={container}\n dropdownDirection={dropdownDirection}\n filterTypes={filterTypes}\n maxEntries={maxEntries}\n onAdd={onAdd}\n relationMode={relationMode}\n shouldDisableRemove={shouldDisableRemove}\n onDropdownHide={onDropdownHide}\n onDropdownShow={onDropdownShow}\n leftElement={leftElement}\n onRemove={onRemove}\n placeholder={placeholder}\n shouldAllowMultiple={shouldAllowMultiple}\n shouldHideResultsOnAdd={shouldHideResultsOnAdd}\n shouldRenderInline={shouldRenderInline}\n />\n </div>\n </AreaProvider>\n </PersonFinderProvider>\n );\n },\n);\n\nPersonFinder.displayName = 'PersonFinder';\n\nexport default PersonFinder;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -45,6 +45,7 @@ const PersonFinderWrapper = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
45
45
|
const contentRef = (0, _react.useRef)(null);
|
|
46
46
|
const keyRef = (0, _react.useRef)(`person-finder-${(0, _uuid.v4)()}`);
|
|
47
47
|
const tagInputRef = (0, _react.useRef)(null);
|
|
48
|
+
const hasFocusRef = (0, _react.useRef)(false);
|
|
48
49
|
const {
|
|
49
50
|
isTouch
|
|
50
51
|
} = (0, _chaynsApi.useDevice)();
|
|
@@ -52,9 +53,11 @@ const PersonFinderWrapper = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
52
53
|
icons: ['fa fa-search']
|
|
53
54
|
}));
|
|
54
55
|
const handleTagInputBlur = (0, _react.useCallback)(() => {
|
|
56
|
+
hasFocusRef.current = false;
|
|
55
57
|
setIsFocused(false);
|
|
56
58
|
}, []);
|
|
57
59
|
const handleTagInputFocus = (0, _react.useCallback)(() => {
|
|
60
|
+
hasFocusRef.current = true;
|
|
58
61
|
setIsFocused(true);
|
|
59
62
|
}, []);
|
|
60
63
|
const handleRemove = (0, _react.useCallback)(id => {
|
|
@@ -83,8 +86,8 @@ const PersonFinderWrapper = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
83
86
|
const handleDropdownOutsideClick = (0, _react.useCallback)(() => {
|
|
84
87
|
var _tagInputRef$current2;
|
|
85
88
|
(_tagInputRef$current2 = tagInputRef.current) === null || _tagInputRef$current2 === void 0 || _tagInputRef$current2.blur();
|
|
86
|
-
return
|
|
87
|
-
}, [
|
|
89
|
+
return hasFocusRef.current && isTouch;
|
|
90
|
+
}, [isTouch]);
|
|
88
91
|
const handleAdd = (0, _react.useCallback)(id => {
|
|
89
92
|
if (typeof setTags !== 'function') {
|
|
90
93
|
return;
|
|
@@ -137,8 +140,7 @@ const PersonFinderWrapper = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
137
140
|
}
|
|
138
141
|
}, [onDropdownHide, onDropdownShow, shouldShowBody]);
|
|
139
142
|
const showBody = (0, _react.useMemo)(() => {
|
|
140
|
-
const
|
|
141
|
-
const check = shouldShowBody && extraMobileCheck;
|
|
143
|
+
const check = shouldShowBody;
|
|
142
144
|
if (relationMode === _personFinder.RelationMode.SITE) {
|
|
143
145
|
return check;
|
|
144
146
|
}
|
|
@@ -146,7 +148,7 @@ const PersonFinderWrapper = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
146
148
|
return check && !!search && (search === null || search === void 0 ? void 0 : search.length) > 2;
|
|
147
149
|
}
|
|
148
150
|
return check;
|
|
149
|
-
}, [filterTypes, friendsPriority,
|
|
151
|
+
}, [filterTypes, friendsPriority, search, shouldShowBody, relationMode]);
|
|
150
152
|
const content = (0, _react.useMemo)(() => {
|
|
151
153
|
const body = /*#__PURE__*/_react.default.createElement(_PersonFinderBody.default, {
|
|
152
154
|
filterTypes: filterTypes,
|