@chayns-components/person-finder 5.3.0 → 5.3.2

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.
Files changed (56) hide show
  1. package/lib/cjs/api/person/get.js +5 -3
  2. package/lib/cjs/api/person/get.js.map +1 -1
  3. package/lib/cjs/components/PersonFinderProvider.js +12 -5
  4. package/lib/cjs/components/PersonFinderProvider.js.map +1 -1
  5. package/lib/cjs/components/person-finder/PersonFinder.js +4 -2
  6. package/lib/cjs/components/person-finder/PersonFinder.js.map +1 -1
  7. package/lib/cjs/components/person-finder/person-finder-wrapper/PersonFinderWrapper.js.map +1 -1
  8. package/lib/cjs/components/person-finder/person-finder-wrapper/person-finder-body/PersonFinderBody.js +1 -3
  9. package/lib/cjs/components/person-finder/person-finder-wrapper/person-finder-body/PersonFinderBody.js.map +1 -1
  10. package/lib/cjs/components/person-finder/person-finder-wrapper/person-finder-body/person-finder-group/PersonFinderGroup.js +3 -6
  11. package/lib/cjs/components/person-finder/person-finder-wrapper/person-finder-body/person-finder-group/PersonFinderGroup.js.map +1 -1
  12. package/lib/cjs/constants/textStrings.js +70 -1
  13. package/lib/cjs/constants/textStrings.js.map +1 -1
  14. package/lib/cjs/hooks/personFinder.js +43 -7
  15. package/lib/cjs/hooks/personFinder.js.map +1 -1
  16. package/lib/cjs/index.js +6 -0
  17. package/lib/cjs/index.js.map +1 -1
  18. package/lib/cjs/types/personFinder.js +6 -1
  19. package/lib/cjs/types/personFinder.js.map +1 -1
  20. package/lib/cjs/utils/convert.js +5 -2
  21. package/lib/cjs/utils/convert.js.map +1 -1
  22. package/lib/cjs/utils/personFinder.js +110 -9
  23. package/lib/cjs/utils/personFinder.js.map +1 -1
  24. package/lib/esm/api/person/get.js +5 -3
  25. package/lib/esm/api/person/get.js.map +1 -1
  26. package/lib/esm/components/PersonFinderProvider.js +12 -5
  27. package/lib/esm/components/PersonFinderProvider.js.map +1 -1
  28. package/lib/esm/components/person-finder/PersonFinder.js +5 -3
  29. package/lib/esm/components/person-finder/PersonFinder.js.map +1 -1
  30. package/lib/esm/components/person-finder/person-finder-wrapper/PersonFinderWrapper.js.map +1 -1
  31. package/lib/esm/components/person-finder/person-finder-wrapper/person-finder-body/PersonFinderBody.js +1 -3
  32. package/lib/esm/components/person-finder/person-finder-wrapper/person-finder-body/PersonFinderBody.js.map +1 -1
  33. package/lib/esm/components/person-finder/person-finder-wrapper/person-finder-body/person-finder-group/PersonFinderGroup.js +4 -7
  34. package/lib/esm/components/person-finder/person-finder-wrapper/person-finder-body/person-finder-group/PersonFinderGroup.js.map +1 -1
  35. package/lib/esm/constants/textStrings.js +69 -0
  36. package/lib/esm/constants/textStrings.js.map +1 -1
  37. package/lib/esm/hooks/personFinder.js +43 -8
  38. package/lib/esm/hooks/personFinder.js.map +1 -1
  39. package/lib/esm/index.js +1 -1
  40. package/lib/esm/index.js.map +1 -1
  41. package/lib/esm/types/personFinder.js +5 -0
  42. package/lib/esm/types/personFinder.js.map +1 -1
  43. package/lib/esm/utils/convert.js +5 -2
  44. package/lib/esm/utils/convert.js.map +1 -1
  45. package/lib/esm/utils/personFinder.js +107 -9
  46. package/lib/esm/utils/personFinder.js.map +1 -1
  47. package/lib/types/api/person/get.d.ts +3 -2
  48. package/lib/types/components/PersonFinderProvider.d.ts +2 -1
  49. package/lib/types/components/person-finder/PersonFinder.d.ts +9 -1
  50. package/lib/types/components/person-finder/person-finder-wrapper/person-finder-body/person-finder-group/PersonFinderGroup.d.ts +0 -1
  51. package/lib/types/constants/textStrings.d.ts +69 -0
  52. package/lib/types/index.d.ts +1 -1
  53. package/lib/types/types/personFinder.d.ts +5 -0
  54. package/lib/types/utils/convert.d.ts +5 -1
  55. package/lib/types/utils/personFinder.d.ts +13 -3
  56. package/package.json +3 -3
@@ -3,7 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.default = exports.PERSON_FINDER_TEXTSTRING_LIBRARY_NAME = void 0;
7
+ const PERSON_FINDER_TEXTSTRING_LIBRARY_NAME = exports.PERSON_FINDER_TEXTSTRING_LIBRARY_NAME = '@chayns-components-person-finder';
7
8
  var _default = exports.default = {
8
9
  components: {
9
10
  personFinder: {
@@ -13,8 +14,76 @@ var _default = exports.default = {
13
14
  loadMore: {
14
15
  stringName: 'txt_chayns_components_person_finder_components_personFinder_wrapper_body_group_loadMore',
15
16
  fallback: 'Mehr'
17
+ },
18
+ errorMessage: {
19
+ minSearchLength: {
20
+ stringName: 'txt_chayns_components_person_finder_components_personFinder_wrapper_body_group_errorMessage_minSearchLength',
21
+ fallback: 'Gib einen Suchbegriff mit mindestens drei Zeichen ein.'
22
+ },
23
+ noResults: {
24
+ stringName: 'txt_chayns_components_person_finder_components_personFinder_wrapper_body_group_errorMessage_noResults',
25
+ fallback: 'Es konnten keine ##groupName## zu der Suche "##search##" gefunden werden.'
26
+ },
27
+ emptySearch: {
28
+ stringName: 'txt_chayns_components_person_finder_components_personFinder_wrapper_body_group_errorMessage_emptySearch',
29
+ fallback: 'Gib einen Suchbegriff ein, um nach ##groupName## zu suchen.'
30
+ }
16
31
  }
17
32
  }
33
+ },
34
+ item: {
35
+ chaynsId: {
36
+ stringName: 'txt_chayns_components_person_finder_components_personFinder_wrapper_item_chaynsId',
37
+ fallback: 'chaynsID: ##id##'
38
+ },
39
+ commonSites: {
40
+ stringName: 'txt_chayns_components_person_finder_components_personFinder_wrapper_item_commonSites',
41
+ fallback: '##count## gemeinsame Sites'
42
+ }
43
+ }
44
+ },
45
+ groupName: {
46
+ person: {
47
+ stringName: 'txt_chayns_components_person_finder_components_personFinder_groupName_person',
48
+ fallback: 'Personen'
49
+ },
50
+ site: {
51
+ stringName: 'txt_chayns_components_person_finder_components_personFinder_groupName_site',
52
+ fallback: 'Sites'
53
+ },
54
+ uac: {
55
+ stringName: 'txt_chayns_components_person_finder_components_personFinder_groupName_uac',
56
+ fallback: 'UAC Gruppen'
57
+ }
58
+ },
59
+ lastOnline: {
60
+ fewMinutes: {
61
+ stringName: 'txt_chayns_components_person_finder_components_personFinder_lastOnline_fewMinutes',
62
+ fallback: 'zul. online vor wenigen Minuten'
63
+ },
64
+ minutes: {
65
+ stringName: 'txt_chayns_components_person_finder_components_personFinder_lastOnline_minutes',
66
+ fallback: 'zul. online vor ##minutes## Minuten'
67
+ },
68
+ today: {
69
+ stringName: 'txt_chayns_components_person_finder_components_personFinder_lastOnline_today',
70
+ fallback: 'zul. online heute um ##time## Uhr'
71
+ },
72
+ yesterday: {
73
+ stringName: 'txt_chayns_components_person_finder_components_personFinder_lastOnline_yesterday',
74
+ fallback: 'zul. online gestern um ##time## Uhr'
75
+ },
76
+ days: {
77
+ stringName: 'txt_chayns_components_person_finder_components_personFinder_lastOnline_days',
78
+ fallback: 'zul. online vor ##days## Tagen'
79
+ },
80
+ months: {
81
+ stringName: 'txt_chayns_components_person_finder_components_personFinder_lastOnline_months',
82
+ fallback: 'zul. online vor ##months## Monaten'
83
+ },
84
+ years: {
85
+ stringName: 'txt_chayns_components_person_finder_components_personFinder_lastOnline_years',
86
+ fallback: 'zul. online vor ##years## Jahren'
18
87
  }
19
88
  }
20
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"textStrings.js","names":["components","personFinder","wrapper","body","group","loadMore","stringName","fallback"],"sources":["../../../src/constants/textStrings.ts"],"sourcesContent":["export default {\n components: {\n personFinder: {\n wrapper: {\n body: {\n group: {\n loadMore: {\n stringName:\n 'txt_chayns_components_person_finder_components_personFinder_wrapper_body_group_loadMore',\n fallback: 'Mehr',\n },\n },\n },\n },\n },\n },\n} as const;\n"],"mappings":";;;;;;iCAAe;EACXA,UAAU,EAAE;IACRC,YAAY,EAAE;MACVC,OAAO,EAAE;QACLC,IAAI,EAAE;UACFC,KAAK,EAAE;YACHC,QAAQ,EAAE;cACNC,UAAU,EACN,yFAAyF;cAC7FC,QAAQ,EAAE;YACd;UACJ;QACJ;MACJ;IACJ;EACJ;AACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"textStrings.js","names":["PERSON_FINDER_TEXTSTRING_LIBRARY_NAME","exports","_default","default","components","personFinder","wrapper","body","group","loadMore","stringName","fallback","errorMessage","minSearchLength","noResults","emptySearch","item","chaynsId","commonSites","groupName","person","site","uac","lastOnline","fewMinutes","minutes","today","yesterday","days","months","years"],"sources":["../../../src/constants/textStrings.ts"],"sourcesContent":["export const PERSON_FINDER_TEXTSTRING_LIBRARY_NAME = '@chayns-components-person-finder';\n\nexport default {\n components: {\n personFinder: {\n wrapper: {\n body: {\n group: {\n loadMore: {\n stringName:\n 'txt_chayns_components_person_finder_components_personFinder_wrapper_body_group_loadMore',\n fallback: 'Mehr',\n },\n errorMessage: {\n minSearchLength: {\n stringName:\n 'txt_chayns_components_person_finder_components_personFinder_wrapper_body_group_errorMessage_minSearchLength',\n fallback: 'Gib einen Suchbegriff mit mindestens drei Zeichen ein.',\n },\n noResults: {\n stringName:\n 'txt_chayns_components_person_finder_components_personFinder_wrapper_body_group_errorMessage_noResults',\n fallback:\n 'Es konnten keine ##groupName## zu der Suche \"##search##\" gefunden werden.',\n },\n emptySearch: {\n stringName:\n 'txt_chayns_components_person_finder_components_personFinder_wrapper_body_group_errorMessage_emptySearch',\n fallback:\n 'Gib einen Suchbegriff ein, um nach ##groupName## zu suchen.',\n },\n },\n },\n },\n item: {\n chaynsId: {\n stringName:\n 'txt_chayns_components_person_finder_components_personFinder_wrapper_item_chaynsId',\n fallback: 'chaynsID: ##id##',\n },\n commonSites: {\n stringName:\n 'txt_chayns_components_person_finder_components_personFinder_wrapper_item_commonSites',\n fallback: '##count## gemeinsame Sites',\n },\n },\n },\n groupName: {\n person: {\n stringName:\n 'txt_chayns_components_person_finder_components_personFinder_groupName_person',\n fallback: 'Personen',\n },\n site: {\n stringName:\n 'txt_chayns_components_person_finder_components_personFinder_groupName_site',\n fallback: 'Sites',\n },\n uac: {\n stringName:\n 'txt_chayns_components_person_finder_components_personFinder_groupName_uac',\n fallback: 'UAC Gruppen',\n },\n },\n lastOnline: {\n fewMinutes: {\n stringName:\n 'txt_chayns_components_person_finder_components_personFinder_lastOnline_fewMinutes',\n fallback: 'zul. online vor wenigen Minuten',\n },\n minutes: {\n stringName:\n 'txt_chayns_components_person_finder_components_personFinder_lastOnline_minutes',\n fallback: 'zul. online vor ##minutes## Minuten',\n },\n today: {\n stringName:\n 'txt_chayns_components_person_finder_components_personFinder_lastOnline_today',\n fallback: 'zul. online heute um ##time## Uhr',\n },\n yesterday: {\n stringName:\n 'txt_chayns_components_person_finder_components_personFinder_lastOnline_yesterday',\n fallback: 'zul. online gestern um ##time## Uhr',\n },\n days: {\n stringName:\n 'txt_chayns_components_person_finder_components_personFinder_lastOnline_days',\n fallback: 'zul. online vor ##days## Tagen',\n },\n months: {\n stringName:\n 'txt_chayns_components_person_finder_components_personFinder_lastOnline_months',\n fallback: 'zul. online vor ##months## Monaten',\n },\n years: {\n stringName:\n 'txt_chayns_components_person_finder_components_personFinder_lastOnline_years',\n fallback: 'zul. online vor ##years## Jahren',\n },\n },\n },\n },\n} as const;\n"],"mappings":";;;;;;AAAO,MAAMA,qCAAqC,GAAAC,OAAA,CAAAD,qCAAA,GAAG,kCAAkC;AAAC,IAAAE,QAAA,GAAAD,OAAA,CAAAE,OAAA,GAEzE;EACXC,UAAU,EAAE;IACRC,YAAY,EAAE;MACVC,OAAO,EAAE;QACLC,IAAI,EAAE;UACFC,KAAK,EAAE;YACHC,QAAQ,EAAE;cACNC,UAAU,EACN,yFAAyF;cAC7FC,QAAQ,EAAE;YACd,CAAC;YACDC,YAAY,EAAE;cACVC,eAAe,EAAE;gBACbH,UAAU,EACN,6GAA6G;gBACjHC,QAAQ,EAAE;cACd,CAAC;cACDG,SAAS,EAAE;gBACPJ,UAAU,EACN,uGAAuG;gBAC3GC,QAAQ,EACJ;cACR,CAAC;cACDI,WAAW,EAAE;gBACTL,UAAU,EACN,yGAAyG;gBAC7GC,QAAQ,EACJ;cACR;YACJ;UACJ;QACJ,CAAC;QACDK,IAAI,EAAE;UACFC,QAAQ,EAAE;YACNP,UAAU,EACN,mFAAmF;YACvFC,QAAQ,EAAE;UACd,CAAC;UACDO,WAAW,EAAE;YACTR,UAAU,EACN,sFAAsF;YAC1FC,QAAQ,EAAE;UACd;QACJ;MACJ,CAAC;MACDQ,SAAS,EAAE;QACPC,MAAM,EAAE;UACJV,UAAU,EACN,8EAA8E;UAClFC,QAAQ,EAAE;QACd,CAAC;QACDU,IAAI,EAAE;UACFX,UAAU,EACN,4EAA4E;UAChFC,QAAQ,EAAE;QACd,CAAC;QACDW,GAAG,EAAE;UACDZ,UAAU,EACN,2EAA2E;UAC/EC,QAAQ,EAAE;QACd;MACJ,CAAC;MACDY,UAAU,EAAE;QACRC,UAAU,EAAE;UACRd,UAAU,EACN,mFAAmF;UACvFC,QAAQ,EAAE;QACd,CAAC;QACDc,OAAO,EAAE;UACLf,UAAU,EACN,gFAAgF;UACpFC,QAAQ,EAAE;QACd,CAAC;QACDe,KAAK,EAAE;UACHhB,UAAU,EACN,8EAA8E;UAClFC,QAAQ,EAAE;QACd,CAAC;QACDgB,SAAS,EAAE;UACPjB,UAAU,EACN,kFAAkF;UACtFC,QAAQ,EAAE;QACd,CAAC;QACDiB,IAAI,EAAE;UACFlB,UAAU,EACN,6EAA6E;UACjFC,QAAQ,EAAE;QACd,CAAC;QACDkB,MAAM,EAAE;UACJnB,UAAU,EACN,+EAA+E;UACnFC,QAAQ,EAAE;QACd,CAAC;QACDmB,KAAK,EAAE;UACHpB,UAAU,EACN,8EAA8E;UAClFC,QAAQ,EAAE;QACd;MACJ;IACJ;EACJ;AACJ,CAAC","ignoreList":[]}
@@ -10,6 +10,8 @@ var _personFinder2 = require("../utils/personFinder");
10
10
  var _core = require("@chayns-components/core");
11
11
  var _PersonFinderProvider = require("../components/PersonFinderProvider");
12
12
  var _PersonFinderGroup = require("../components/person-finder/person-finder-wrapper/person-finder-body/person-finder-group/PersonFinderGroup.styles");
13
+ var _textStrings = _interopRequireDefault(require("../constants/textStrings"));
14
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
15
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
14
16
  const useClosestElementAbove = (containerRef, itemClass) => {
15
17
  const [closestElement, setClosestElement] = (0, _react.useState)(null);
@@ -45,6 +47,7 @@ const useClosestElementAbove = (containerRef, itemClass) => {
45
47
  exports.useClosestElementAbove = useClosestElementAbove;
46
48
  const usePersonFinderItem = entry => {
47
49
  const isSite = (0, _personFinder2.isSiteEntry)(entry);
50
+ const ts = _textStrings.default.components.personFinder;
48
51
  const {
49
52
  url,
50
53
  commonSites,
@@ -52,12 +55,31 @@ const usePersonFinderItem = entry => {
52
55
  firstName,
53
56
  lastName,
54
57
  id,
55
- isVerified
58
+ isVerified,
59
+ lastOnlineTime
56
60
  } = entry;
57
61
  const imageUrl = `https://sub60.tobit.com/${isSite ? 'l' : 'u'}/${id}?size=120`;
58
62
  const titleElement = isVerified && /*#__PURE__*/_react.default.createElement(_core.VerificationBadge, null);
59
63
  const title = isSite ? name : `${firstName ?? ''} ${lastName ?? ''}`;
60
- const subtitle = isSite ? url : `chaynsID: ${id}${commonSites ? ` - ${commonSites} gemeinsame Sites` : ''}`;
64
+ let subtitle = (0, _personFinder2.getPersonFinderTextstringValue)({
65
+ textstring: ts.wrapper.item.chaynsId,
66
+ replacements: {
67
+ id: id
68
+ }
69
+ });
70
+ if (lastOnlineTime) {
71
+ subtitle += ` - ${(0, _personFinder2.formatLastOnline)(new Date(lastOnlineTime))}`;
72
+ } else if (commonSites) {
73
+ subtitle += ` - ${(0, _personFinder2.getPersonFinderTextstringValue)({
74
+ textstring: ts.wrapper.item.commonSites,
75
+ replacements: {
76
+ count: commonSites
77
+ }
78
+ })}`;
79
+ }
80
+ if (isSite) {
81
+ subtitle = url;
82
+ }
61
83
  return {
62
84
  isSite,
63
85
  title,
@@ -108,19 +130,33 @@ const useErrorMessage = ({
108
130
  entries,
109
131
  groupName,
110
132
  areOnlyFriendsGiven
111
- }) => (0, _react.useMemo)(() => {
133
+ }) => {
134
+ const ts = _textStrings.default.components.personFinder.wrapper.body.group.errorMessage;
112
135
  if (search.length <= 2 && !areOnlyFriendsGiven) {
113
- return /*#__PURE__*/_react.default.createElement(_PersonFinderGroup.StyledPersonFinderGroupErrorMessage, null, "Gib einen Suchbegriff mit mindestens drei Zeichen ein.");
136
+ return /*#__PURE__*/_react.default.createElement(_PersonFinderGroup.StyledPersonFinderGroupErrorMessage, null, (0, _personFinder2.getPersonFinderTextstringValue)({
137
+ textstring: ts.minSearchLength
138
+ }));
114
139
  }
115
140
  if (entries.length === 0) {
116
141
  if (loadingState === _personFinder.LoadingState.Error && search.length) {
117
- return /*#__PURE__*/_react.default.createElement(_PersonFinderGroup.StyledPersonFinderGroupErrorMessage, null, "Es konnten keine ", groupName, " zu der Suche \"", search, "\" gefunden werden.");
142
+ return /*#__PURE__*/_react.default.createElement(_PersonFinderGroup.StyledPersonFinderGroupErrorMessage, null, (0, _personFinder2.getPersonFinderTextstringValue)({
143
+ textstring: ts.noResults,
144
+ replacements: {
145
+ groupName,
146
+ search
147
+ }
148
+ }));
118
149
  }
119
150
  if (search.length === 0) {
120
- return /*#__PURE__*/_react.default.createElement(_PersonFinderGroup.StyledPersonFinderGroupErrorMessage, null, "Gib einen Suchbegriff ein, um nach ", groupName, " zu suchen.");
151
+ return /*#__PURE__*/_react.default.createElement(_PersonFinderGroup.StyledPersonFinderGroupErrorMessage, null, (0, _personFinder2.getPersonFinderTextstringValue)({
152
+ textstring: ts.emptySearch,
153
+ replacements: {
154
+ groupName
155
+ }
156
+ }));
121
157
  }
122
158
  }
123
159
  return null;
124
- }, [areOnlyFriendsGiven, entries.length, groupName, loadingState, search]);
160
+ };
125
161
  exports.useErrorMessage = useErrorMessage;
126
162
  //# sourceMappingURL=personFinder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"personFinder.js","names":["_react","_interopRequireWildcard","require","_personFinder","_personFinder2","_core","_PersonFinderProvider","_PersonFinderGroup","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useClosestElementAbove","containerRef","itemClass","closestElement","setClosestElement","useState","useEffect","updateClosestElement","current","container","items","Array","from","getElementsByClassName","containerRect","getBoundingClientRect","closest","minDistance","Infinity","forEach","item","rect","distance","Math","abs","bottom","top","addEventListener","removeEventListener","textContent","exports","usePersonFinderItem","entry","isSite","isSiteEntry","url","commonSites","name","firstName","lastName","id","isVerified","imageUrl","titleElement","createElement","VerificationBadge","title","subtitle","usePersonFinderSmallItem","useFriends","personId","friends","removeFriend","addFriend","usePersonFinder","isFriend","map","includes","useOnlyFriends","entries","useMemo","length","friendIds","Set","friend","every","useErrorMessage","loadingState","search","groupName","areOnlyFriendsGiven","StyledPersonFinderGroupErrorMessage","LoadingState","Error"],"sources":["../../../src/hooks/personFinder.tsx"],"sourcesContent":["import React, { RefObject, useEffect, useMemo, useState } from 'react';\nimport {\n LoadingState,\n PersonEntry,\n PersonFinderEntry,\n SiteEntry,\n UACEntry,\n} from '../types/personFinder';\nimport { isSiteEntry } from '../utils/personFinder';\nimport { VerificationBadge } from '@chayns-components/core';\nimport { usePersonFinder } from '../components/PersonFinderProvider';\nimport { StyledPersonFinderGroupErrorMessage } from '../components/person-finder/person-finder-wrapper/person-finder-body/person-finder-group/PersonFinderGroup.styles';\n\nexport const useClosestElementAbove = (containerRef: RefObject<HTMLElement>, itemClass: string) => {\n const [closestElement, setClosestElement] = useState<HTMLElement | null>(null);\n\n useEffect(() => {\n const updateClosestElement = () => {\n if (!containerRef.current) return;\n\n const container = containerRef.current;\n const items = Array.from(container.getElementsByClassName(itemClass)) as HTMLElement[];\n const containerRect = container.getBoundingClientRect();\n\n let closest: HTMLElement | null = null;\n let minDistance = Infinity;\n\n items.forEach((item) => {\n const rect = item.getBoundingClientRect();\n const distance = Math.abs(rect.bottom - containerRect.top);\n\n if (rect.bottom < containerRect.top && distance < minDistance) {\n minDistance = distance;\n closest = item;\n }\n });\n\n setClosestElement(closest);\n };\n\n const container = containerRef.current;\n if (container) {\n container.addEventListener('scroll', updateClosestElement);\n updateClosestElement();\n }\n\n return () => {\n container?.removeEventListener('scroll', updateClosestElement);\n };\n }, [containerRef, itemClass]);\n\n return closestElement?.textContent;\n};\n\nexport const usePersonFinderItem = (entry: PersonFinderEntry) => {\n const isSite = isSiteEntry(entry as PersonEntry | SiteEntry);\n\n const { url, commonSites, name, firstName, lastName, id, isVerified } = entry as PersonEntry &\n SiteEntry;\n\n const imageUrl = `https://sub60.tobit.com/${isSite ? 'l' : 'u'}/${id as string}?size=120`;\n const titleElement = isVerified && <VerificationBadge />;\n const title = isSite ? name : `${(firstName as string) ?? ''} ${(lastName as string) ?? ''}`;\n const subtitle = isSite\n ? url\n : `chaynsID: ${id as string}${commonSites ? ` - ${commonSites as number} gemeinsame Sites` : ''}`;\n\n return {\n isSite,\n title,\n subtitle,\n imageUrl,\n titleElement,\n };\n};\n\nexport const usePersonFinderSmallItem = (entry: PersonFinderEntry) => {\n const { name } = entry as UACEntry;\n\n return {\n title: name,\n };\n};\n\nexport const useFriends = (personId: string) => {\n const { friends, removeFriend, addFriend } = usePersonFinder();\n\n const isFriend = friends?.map((entry) => entry.id).includes(personId);\n\n return {\n isFriend,\n addFriend,\n removeFriend,\n };\n};\n\nexport const useOnlyFriends = (entries: PersonFinderEntry[]) => {\n const { friends } = usePersonFinder();\n\n return useMemo(() => {\n if (!entries?.length) return false;\n if (!friends?.length) return false;\n\n const friendIds = new Set(friends.map((friend) => friend.id));\n\n return entries.every((entry) => friendIds.has(entry.id as string));\n }, [entries, friends]);\n};\n\ninterface UseErrorMessageOptions {\n loadingState: LoadingState;\n search: string;\n entries: PersonFinderEntry[];\n groupName?: string;\n areOnlyFriendsGiven?: boolean;\n}\n\nexport const useErrorMessage = ({\n loadingState,\n search,\n entries,\n groupName,\n areOnlyFriendsGiven,\n}: UseErrorMessageOptions) =>\n useMemo(() => {\n if (search.length <= 2 && !areOnlyFriendsGiven) {\n return (\n <StyledPersonFinderGroupErrorMessage>\n Gib einen Suchbegriff mit mindestens drei Zeichen ein.\n </StyledPersonFinderGroupErrorMessage>\n );\n }\n\n if (entries.length === 0) {\n if (loadingState === LoadingState.Error && search.length) {\n return (\n <StyledPersonFinderGroupErrorMessage>\n Es konnten keine {groupName} zu der Suche &#34;\n {search}&#34; gefunden werden.\n </StyledPersonFinderGroupErrorMessage>\n );\n }\n\n if (search.length === 0) {\n return (\n <StyledPersonFinderGroupErrorMessage>\n Gib einen Suchbegriff ein, um nach {groupName} zu suchen.\n </StyledPersonFinderGroupErrorMessage>\n );\n }\n }\n\n return null;\n }, [areOnlyFriendsGiven, entries.length, groupName, loadingState, search]);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"personFinder.js","names":["_react","_interopRequireWildcard","require","_personFinder","_personFinder2","_core","_PersonFinderProvider","_PersonFinderGroup","_textStrings","_interopRequireDefault","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useClosestElementAbove","containerRef","itemClass","closestElement","setClosestElement","useState","useEffect","updateClosestElement","current","container","items","Array","from","getElementsByClassName","containerRect","getBoundingClientRect","closest","minDistance","Infinity","forEach","item","rect","distance","Math","abs","bottom","top","addEventListener","removeEventListener","textContent","exports","usePersonFinderItem","entry","isSite","isSiteEntry","ts","textStrings","components","personFinder","url","commonSites","name","firstName","lastName","id","isVerified","lastOnlineTime","imageUrl","titleElement","createElement","VerificationBadge","title","subtitle","getPersonFinderTextstringValue","textstring","wrapper","chaynsId","replacements","formatLastOnline","Date","count","usePersonFinderSmallItem","useFriends","personId","friends","removeFriend","addFriend","usePersonFinder","isFriend","map","includes","useOnlyFriends","entries","useMemo","length","friendIds","Set","friend","every","useErrorMessage","loadingState","search","groupName","areOnlyFriendsGiven","body","group","errorMessage","StyledPersonFinderGroupErrorMessage","minSearchLength","LoadingState","Error","noResults","emptySearch"],"sources":["../../../src/hooks/personFinder.tsx"],"sourcesContent":["import React, { RefObject, useEffect, useMemo, useState } from 'react';\nimport {\n LoadingState,\n PersonEntry,\n PersonFinderEntry,\n SiteEntry,\n UACEntry,\n} from '../types/personFinder';\nimport {\n formatLastOnline,\n getPersonFinderTextstringValue,\n isSiteEntry,\n} from '../utils/personFinder';\nimport { VerificationBadge } from '@chayns-components/core';\nimport { usePersonFinder } from '../components/PersonFinderProvider';\nimport { StyledPersonFinderGroupErrorMessage } from '../components/person-finder/person-finder-wrapper/person-finder-body/person-finder-group/PersonFinderGroup.styles';\nimport textStrings from '../constants/textStrings';\n\nexport const useClosestElementAbove = (containerRef: RefObject<HTMLElement>, itemClass: string) => {\n const [closestElement, setClosestElement] = useState<HTMLElement | null>(null);\n\n useEffect(() => {\n const updateClosestElement = () => {\n if (!containerRef.current) return;\n\n const container = containerRef.current;\n const items = Array.from(container.getElementsByClassName(itemClass)) as HTMLElement[];\n const containerRect = container.getBoundingClientRect();\n\n let closest: HTMLElement | null = null;\n let minDistance = Infinity;\n\n items.forEach((item) => {\n const rect = item.getBoundingClientRect();\n const distance = Math.abs(rect.bottom - containerRect.top);\n\n if (rect.bottom < containerRect.top && distance < minDistance) {\n minDistance = distance;\n closest = item;\n }\n });\n\n setClosestElement(closest);\n };\n\n const container = containerRef.current;\n if (container) {\n container.addEventListener('scroll', updateClosestElement);\n updateClosestElement();\n }\n\n return () => {\n container?.removeEventListener('scroll', updateClosestElement);\n };\n }, [containerRef, itemClass]);\n\n return closestElement?.textContent;\n};\n\nexport const usePersonFinderItem = (entry: PersonFinderEntry) => {\n const isSite = isSiteEntry(entry as PersonEntry | SiteEntry);\n const ts = textStrings.components.personFinder;\n\n const { url, commonSites, name, firstName, lastName, id, isVerified, lastOnlineTime } =\n entry as PersonEntry & SiteEntry;\n\n const imageUrl = `https://sub60.tobit.com/${isSite ? 'l' : 'u'}/${id as string}?size=120`;\n const titleElement = isVerified && <VerificationBadge />;\n const title = isSite ? name : `${(firstName as string) ?? ''} ${(lastName as string) ?? ''}`;\n\n let subtitle = getPersonFinderTextstringValue({\n textstring: ts.wrapper.item.chaynsId,\n replacements: { id: id as string },\n });\n\n if (lastOnlineTime) {\n subtitle += ` - ${formatLastOnline(new Date(lastOnlineTime))}`;\n } else if (commonSites) {\n subtitle += ` - ${getPersonFinderTextstringValue({\n textstring: ts.wrapper.item.commonSites,\n replacements: { count: commonSites as number },\n })}`;\n }\n\n if (isSite) {\n subtitle = url;\n }\n\n return {\n isSite,\n title,\n subtitle,\n imageUrl,\n titleElement,\n };\n};\n\nexport const usePersonFinderSmallItem = (entry: PersonFinderEntry) => {\n const { name } = entry as UACEntry;\n\n return {\n title: name,\n };\n};\n\nexport const useFriends = (personId: string) => {\n const { friends, removeFriend, addFriend } = usePersonFinder();\n\n const isFriend = friends?.map((entry) => entry.id).includes(personId);\n\n return {\n isFriend,\n addFriend,\n removeFriend,\n };\n};\n\nexport const useOnlyFriends = (entries: PersonFinderEntry[]) => {\n const { friends } = usePersonFinder();\n\n return useMemo(() => {\n if (!entries?.length) return false;\n if (!friends?.length) return false;\n\n const friendIds = new Set(friends.map((friend) => friend.id));\n\n return entries.every((entry) => friendIds.has(entry.id as string));\n }, [entries, friends]);\n};\n\ninterface UseErrorMessageOptions {\n loadingState: LoadingState;\n search: string;\n entries: PersonFinderEntry[];\n groupName?: string;\n areOnlyFriendsGiven?: boolean;\n}\n\nexport const useErrorMessage = ({\n loadingState,\n search,\n entries,\n groupName,\n areOnlyFriendsGiven,\n}: UseErrorMessageOptions) => {\n const ts = textStrings.components.personFinder.wrapper.body.group.errorMessage;\n\n if (search.length <= 2 && !areOnlyFriendsGiven) {\n return (\n <StyledPersonFinderGroupErrorMessage>\n {getPersonFinderTextstringValue({ textstring: ts.minSearchLength })}\n </StyledPersonFinderGroupErrorMessage>\n );\n }\n\n if (entries.length === 0) {\n if (loadingState === LoadingState.Error && search.length) {\n return (\n <StyledPersonFinderGroupErrorMessage>\n {getPersonFinderTextstringValue({\n textstring: ts.noResults,\n replacements: {\n groupName,\n search,\n },\n })}\n </StyledPersonFinderGroupErrorMessage>\n );\n }\n\n if (search.length === 0) {\n return (\n <StyledPersonFinderGroupErrorMessage>\n {getPersonFinderTextstringValue({\n textstring: ts.emptySearch,\n replacements: { groupName },\n })}\n </StyledPersonFinderGroupErrorMessage>\n );\n }\n }\n\n return null;\n};\n"],"mappings":"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","ignoreList":[]}
package/lib/cjs/index.js CHANGED
@@ -21,6 +21,12 @@ Object.defineProperty(exports, "Priority", {
21
21
  return _personFinder.Priority;
22
22
  }
23
23
  });
24
+ Object.defineProperty(exports, "RelationMode", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _personFinder.RelationMode;
28
+ }
29
+ });
24
30
  var _PersonFinder = _interopRequireDefault(require("./components/person-finder/PersonFinder"));
25
31
  var _personFinder = require("./types/personFinder");
26
32
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_PersonFinder","_interopRequireDefault","require","_personFinder","e","__esModule","default"],"sources":["../../src/index.ts"],"sourcesContent":["export { default as PersonFinder } from './components/person-finder/PersonFinder';\nexport { type PersonFinderRef } from './components/person-finder/person-finder-wrapper/PersonFinderWrapper';\nexport {\n PersonFinderFilterTypes,\n Priority,\n type PersonEntry,\n type DefaultEntry,\n type SiteEntry,\n type PersonFinderEntry,\n type UACFilter,\n type UACEntry,\n} from './types/personFinder';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,aAAA,GAAAD,OAAA;AAS8B,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_PersonFinder","_interopRequireDefault","require","_personFinder","e","__esModule","default"],"sources":["../../src/index.ts"],"sourcesContent":["export { default as PersonFinder } from './components/person-finder/PersonFinder';\nexport { type PersonFinderRef } from './components/person-finder/person-finder-wrapper/PersonFinderWrapper';\nexport {\n PersonFinderFilterTypes,\n Priority,\n RelationMode,\n type PersonEntry,\n type DefaultEntry,\n type SiteEntry,\n type PersonFinderEntry,\n type UACFilter,\n type UACEntry,\n} from './types/personFinder';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,aAAA,GAAAD,OAAA;AAU8B,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.Priority = exports.PersonFinderFilterTypes = exports.LoadingState = void 0;
6
+ exports.RelationMode = exports.Priority = exports.PersonFinderFilterTypes = exports.LoadingState = void 0;
7
7
  let PersonFinderFilterTypes = exports.PersonFinderFilterTypes = /*#__PURE__*/function (PersonFinderFilterTypes) {
8
8
  PersonFinderFilterTypes["PERSON"] = "person";
9
9
  PersonFinderFilterTypes["SITE"] = "site";
@@ -15,6 +15,11 @@ let Priority = exports.Priority = /*#__PURE__*/function (Priority) {
15
15
  Priority[Priority["NORMAL"] = 1] = "NORMAL";
16
16
  return Priority;
17
17
  }({});
18
+ let RelationMode = exports.RelationMode = /*#__PURE__*/function (RelationMode) {
19
+ RelationMode["PERSON"] = "person";
20
+ RelationMode["SITE"] = "site";
21
+ return RelationMode;
22
+ }({});
18
23
  let LoadingState = exports.LoadingState = /*#__PURE__*/function (LoadingState) {
19
24
  LoadingState["None"] = "none";
20
25
  LoadingState["Pending"] = "pending";
@@ -1 +1 @@
1
- {"version":3,"file":"personFinder.js","names":["PersonFinderFilterTypes","exports","Priority","LoadingState"],"sources":["../../../src/types/personFinder.ts"],"sourcesContent":["export enum PersonFinderFilterTypes {\n PERSON = 'person',\n SITE = 'site',\n UAC = 'uac',\n}\n\nexport enum Priority {\n HIGH,\n NORMAL,\n}\n\nexport interface PersonFinderData {\n searchString: string;\n count: number;\n skip: number;\n entries: PersonFinderEntry[];\n}\n\nexport type PersonFinderDataMap = {\n [K in PersonFinderFilterTypes]?: PersonFinderData;\n};\n\nexport interface UACFilter {\n groupId: number;\n}\n\nexport enum LoadingState {\n None = 'none',\n Pending = 'pending',\n Success = 'success',\n Error = 'error',\n}\n\nexport type LoadingStateMap = { [K in PersonFinderFilterTypes]?: LoadingState };\n\nexport interface DefaultEntry {\n id: string;\n name: string;\n}\n\nexport type PersonFinderEntry = PersonEntry | SiteEntry | UACEntry;\n\nexport interface PersonEntry {\n id: string;\n firstName: string;\n lastName: string;\n commonSites: number;\n isVerified: boolean;\n type: PersonFinderFilterTypes.PERSON;\n}\n\nexport interface SiteEntry {\n id: string;\n url: string;\n name: string;\n type: PersonFinderFilterTypes.SITE;\n}\n\nexport interface UACEntry {\n id: number;\n name: string;\n isSystemGroup: boolean;\n}\n\nexport interface SiteEntryResult {\n name: string;\n siteId: string;\n locationId: number;\n lastLogin: number | null;\n score: number;\n domain: string;\n}\n\nexport interface PersonEntryResult {\n personId: string;\n userId: number;\n firstName: string;\n lastName: string;\n relationCount: number;\n score: number;\n signOfLife: Date;\n verified: boolean;\n}\n\nexport type ThrottledFunction<T extends (...args: any[]) => any> = {\n (...args: Parameters<T>): ReturnType<T>;\n cancel: () => void;\n flush: () => void;\n};\n"],"mappings":";;;;;;IAAYA,uBAAuB,GAAAC,OAAA,CAAAD,uBAAA,0BAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAA,OAAvBA,uBAAuB;AAAA;AAAA,IAMvBE,QAAQ,GAAAD,OAAA,CAAAC,QAAA,0BAARA,QAAQ;EAARA,QAAQ,CAARA,QAAQ;EAARA,QAAQ,CAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA;AAAA,IAoBRC,YAAY,GAAAF,OAAA,CAAAE,YAAA,0BAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"personFinder.js","names":["PersonFinderFilterTypes","exports","Priority","RelationMode","LoadingState"],"sources":["../../../src/types/personFinder.ts"],"sourcesContent":["export enum PersonFinderFilterTypes {\n PERSON = 'person',\n SITE = 'site',\n UAC = 'uac',\n}\n\nexport enum Priority {\n HIGH,\n NORMAL,\n}\n\nexport enum RelationMode {\n PERSON = 'person',\n SITE = 'site',\n}\n\nexport interface PersonFinderData {\n searchString: string;\n count: number;\n skip: number;\n entries: PersonFinderEntry[];\n}\n\nexport type PersonFinderDataMap = {\n [K in PersonFinderFilterTypes]?: PersonFinderData;\n};\n\nexport interface UACFilter {\n groupId: number;\n}\n\nexport enum LoadingState {\n None = 'none',\n Pending = 'pending',\n Success = 'success',\n Error = 'error',\n}\n\nexport type LoadingStateMap = { [K in PersonFinderFilterTypes]?: LoadingState };\n\nexport interface DefaultEntry {\n id: string;\n name: string;\n}\n\nexport type PersonFinderEntry = PersonEntry | SiteEntry | UACEntry;\n\nexport interface PersonEntry {\n id: string;\n firstName: string;\n lastName: string;\n commonSites: number;\n isVerified: boolean;\n type: PersonFinderFilterTypes.PERSON;\n lastOnlineTime?: Date;\n}\n\nexport interface SiteEntry {\n id: string;\n url: string;\n name: string;\n type: PersonFinderFilterTypes.SITE;\n}\n\nexport interface UACEntry {\n id: number;\n name: string;\n isSystemGroup: boolean;\n}\n\nexport interface SiteEntryResult {\n name: string;\n siteId: string;\n locationId: number;\n lastLogin: number | null;\n score: number;\n domain: string;\n}\n\nexport interface PersonEntryResult {\n personId: string;\n userId: number;\n firstName: string;\n lastName: string;\n relationCount: number;\n score: number;\n signOfLife: Date;\n verified: boolean;\n}\n\nexport type ThrottledFunction<T extends (...args: any[]) => any> = {\n (...args: Parameters<T>): ReturnType<T>;\n cancel: () => void;\n flush: () => void;\n};\n"],"mappings":";;;;;;IAAYA,uBAAuB,GAAAC,OAAA,CAAAD,uBAAA,0BAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAA,OAAvBA,uBAAuB;AAAA;AAAA,IAMvBE,QAAQ,GAAAD,OAAA,CAAAC,QAAA,0BAARA,QAAQ;EAARA,QAAQ,CAARA,QAAQ;EAARA,QAAQ,CAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA;AAAA,IAKRC,YAAY,GAAAF,OAAA,CAAAE,YAAA,0BAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA;AAAA,IAoBZC,YAAY,GAAAH,OAAA,CAAAG,YAAA,0BAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA","ignoreList":[]}
@@ -12,13 +12,16 @@ const convertSiteEntry = entries => entries.map(entry => ({
12
12
  type: _personFinder.PersonFinderFilterTypes.SITE
13
13
  }));
14
14
  exports.convertSiteEntry = convertSiteEntry;
15
- const convertPersonEntry = entries => entries.map(entry => ({
15
+ const convertPersonEntry = (entries, {
16
+ shouldShowLastOnlineTime
17
+ } = {}) => entries.map(entry => ({
16
18
  id: entry.personId,
17
19
  firstName: entry.firstName,
18
20
  lastName: entry.lastName,
19
21
  commonSites: entry.relationCount,
20
22
  isVerified: entry.verified,
21
- type: _personFinder.PersonFinderFilterTypes.PERSON
23
+ type: _personFinder.PersonFinderFilterTypes.PERSON,
24
+ lastOnlineTime: shouldShowLastOnlineTime ? entry.signOfLife : undefined
22
25
  }));
23
26
  exports.convertPersonEntry = convertPersonEntry;
24
27
  //# sourceMappingURL=convert.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"convert.js","names":["_personFinder","require","convertSiteEntry","entries","map","entry","id","siteId","name","url","domain","type","PersonFinderFilterTypes","SITE","exports","convertPersonEntry","personId","firstName","lastName","commonSites","relationCount","isVerified","verified","PERSON"],"sources":["../../../src/utils/convert.ts"],"sourcesContent":["import {\n PersonEntry,\n PersonEntryResult,\n PersonFinderFilterTypes,\n SiteEntry,\n SiteEntryResult,\n} from '../types/personFinder';\n\nexport const convertSiteEntry = (entries: SiteEntryResult[]): SiteEntry[] =>\n entries.map((entry) => ({\n id: entry.siteId,\n name: entry.name,\n url: `https://${entry.domain}`,\n type: PersonFinderFilterTypes.SITE,\n }));\n\nexport const convertPersonEntry = (entries: PersonEntryResult[]): PersonEntry[] =>\n entries.map((entry) => ({\n id: entry.personId,\n firstName: entry.firstName,\n lastName: entry.lastName,\n commonSites: entry.relationCount,\n isVerified: entry.verified,\n type: PersonFinderFilterTypes.PERSON,\n }));\n"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAQO,MAAMC,gBAAgB,GAAIC,OAA0B,IACvDA,OAAO,CAACC,GAAG,CAAEC,KAAK,KAAM;EACpBC,EAAE,EAAED,KAAK,CAACE,MAAM;EAChBC,IAAI,EAAEH,KAAK,CAACG,IAAI;EAChBC,GAAG,EAAE,WAAWJ,KAAK,CAACK,MAAM,EAAE;EAC9BC,IAAI,EAAEC,qCAAuB,CAACC;AAClC,CAAC,CAAC,CAAC;AAACC,OAAA,CAAAZ,gBAAA,GAAAA,gBAAA;AAED,MAAMa,kBAAkB,GAAIZ,OAA4B,IAC3DA,OAAO,CAACC,GAAG,CAAEC,KAAK,KAAM;EACpBC,EAAE,EAAED,KAAK,CAACW,QAAQ;EAClBC,SAAS,EAAEZ,KAAK,CAACY,SAAS;EAC1BC,QAAQ,EAAEb,KAAK,CAACa,QAAQ;EACxBC,WAAW,EAAEd,KAAK,CAACe,aAAa;EAChCC,UAAU,EAAEhB,KAAK,CAACiB,QAAQ;EAC1BX,IAAI,EAAEC,qCAAuB,CAACW;AAClC,CAAC,CAAC,CAAC;AAACT,OAAA,CAAAC,kBAAA,GAAAA,kBAAA","ignoreList":[]}
1
+ {"version":3,"file":"convert.js","names":["_personFinder","require","convertSiteEntry","entries","map","entry","id","siteId","name","url","domain","type","PersonFinderFilterTypes","SITE","exports","convertPersonEntry","shouldShowLastOnlineTime","personId","firstName","lastName","commonSites","relationCount","isVerified","verified","PERSON","lastOnlineTime","signOfLife","undefined"],"sources":["../../../src/utils/convert.ts"],"sourcesContent":["import {\n PersonEntry,\n PersonEntryResult,\n PersonFinderFilterTypes,\n SiteEntry,\n SiteEntryResult,\n} from '../types/personFinder';\n\nexport const convertSiteEntry = (entries: SiteEntryResult[]): SiteEntry[] =>\n entries.map((entry) => ({\n id: entry.siteId,\n name: entry.name,\n url: `https://${entry.domain}`,\n type: PersonFinderFilterTypes.SITE,\n }));\n\ninterface ConvertPersonEntryOptions {\n shouldShowLastOnlineTime?: boolean;\n}\n\nexport const convertPersonEntry = (\n entries: PersonEntryResult[],\n { shouldShowLastOnlineTime }: ConvertPersonEntryOptions = {},\n): PersonEntry[] =>\n entries.map((entry) => ({\n id: entry.personId,\n firstName: entry.firstName,\n lastName: entry.lastName,\n commonSites: entry.relationCount,\n isVerified: entry.verified,\n type: PersonFinderFilterTypes.PERSON,\n lastOnlineTime: shouldShowLastOnlineTime ? entry.signOfLife : undefined,\n }));\n"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAQO,MAAMC,gBAAgB,GAAIC,OAA0B,IACvDA,OAAO,CAACC,GAAG,CAAEC,KAAK,KAAM;EACpBC,EAAE,EAAED,KAAK,CAACE,MAAM;EAChBC,IAAI,EAAEH,KAAK,CAACG,IAAI;EAChBC,GAAG,EAAE,WAAWJ,KAAK,CAACK,MAAM,EAAE;EAC9BC,IAAI,EAAEC,qCAAuB,CAACC;AAClC,CAAC,CAAC,CAAC;AAACC,OAAA,CAAAZ,gBAAA,GAAAA,gBAAA;AAMD,MAAMa,kBAAkB,GAAGA,CAC9BZ,OAA4B,EAC5B;EAAEa;AAAoD,CAAC,GAAG,CAAC,CAAC,KAE5Db,OAAO,CAACC,GAAG,CAAEC,KAAK,KAAM;EACpBC,EAAE,EAAED,KAAK,CAACY,QAAQ;EAClBC,SAAS,EAAEb,KAAK,CAACa,SAAS;EAC1BC,QAAQ,EAAEd,KAAK,CAACc,QAAQ;EACxBC,WAAW,EAAEf,KAAK,CAACgB,aAAa;EAChCC,UAAU,EAAEjB,KAAK,CAACkB,QAAQ;EAC1BZ,IAAI,EAAEC,qCAAuB,CAACY,MAAM;EACpCC,cAAc,EAAET,wBAAwB,GAAGX,KAAK,CAACqB,UAAU,GAAGC;AAClE,CAAC,CAAC,CAAC;AAACb,OAAA,CAAAC,kBAAA,GAAAA,kBAAA","ignoreList":[]}
@@ -3,19 +3,46 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.loadData = exports.isSiteEntry = exports.getGroupName = exports.filterDataByKeys = exports.destructureData = exports.capitalizeFirstLetter = void 0;
6
+ exports.loadData = exports.isSiteEntry = exports.getPersonFinderTextstringValue = exports.getGroupName = exports.formatLastOnline = exports.filterDataByKeys = exports.destructureData = exports.capitalizeFirstLetter = void 0;
7
7
  var _personFinder = require("../types/personFinder");
8
+ var _textstring = require("@chayns-components/textstring");
8
9
  var _get = require("../api/person/get");
9
10
  var _get2 = require("../api/site/get");
10
11
  var _convert = require("./convert");
11
12
  var _chaynsApi = require("chayns-api");
13
+ var _textStrings = _interopRequireWildcard(require("../constants/textStrings"));
14
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
15
+ const normalizeTextstringReplacements = replacements => {
16
+ if (!replacements) {
17
+ return undefined;
18
+ }
19
+ return Object.entries(replacements).reduce((acc, [key, value]) => {
20
+ acc[`##${key}##`] = (value === null || value === void 0 ? void 0 : value.toString()) ?? '';
21
+ return acc;
22
+ }, {});
23
+ };
24
+ const getPersonFinderTextstringValue = ({
25
+ textstring,
26
+ replacements
27
+ }) => (0, _textstring.getTextstringValue)({
28
+ libraryName: _textStrings.PERSON_FINDER_TEXTSTRING_LIBRARY_NAME,
29
+ textstring: (0, _textstring.ttsToITextString)(textstring),
30
+ replacements: normalizeTextstringReplacements(replacements)
31
+ });
32
+ exports.getPersonFinderTextstringValue = getPersonFinderTextstringValue;
12
33
  const getGroupName = key => {
13
- const names = {
14
- person: 'Personen',
15
- site: 'Sites',
16
- uac: 'UAC Gruppen'
34
+ const groupNames = {
35
+ [_personFinder.PersonFinderFilterTypes.PERSON]: _textStrings.default.components.personFinder.groupName.person,
36
+ [_personFinder.PersonFinderFilterTypes.SITE]: _textStrings.default.components.personFinder.groupName.site,
37
+ [_personFinder.PersonFinderFilterTypes.UAC]: _textStrings.default.components.personFinder.groupName.uac
17
38
  };
18
- return names[key];
39
+ const textstring = groupNames[key];
40
+ if (!textstring) {
41
+ return key;
42
+ }
43
+ return getPersonFinderTextstringValue({
44
+ textstring
45
+ });
19
46
  };
20
47
  exports.getGroupName = getGroupName;
21
48
  const isSiteEntry = entry => 'name' in entry && !('firstName' in entry);
@@ -86,7 +113,8 @@ exports.destructureData = destructureData;
86
113
  const loadData = async ({
87
114
  skipMap,
88
115
  searchString,
89
- filter
116
+ filter,
117
+ relationMode
90
118
  }) => {
91
119
  const promises = filter.map(async filterType => {
92
120
  const skip = skipMap[filterType] ?? 0;
@@ -105,7 +133,8 @@ const loadData = async ({
105
133
  }
106
134
  const data = await (0, _get.getPersons)({
107
135
  search: searchString,
108
- skip
136
+ skip,
137
+ relationMode
109
138
  });
110
139
  return {
111
140
  key: _personFinder.PersonFinderFilterTypes.PERSON,
@@ -113,7 +142,9 @@ const loadData = async ({
113
142
  searchString,
114
143
  count: (data === null || data === void 0 ? void 0 : data.count) ?? 0,
115
144
  skip: skip + ((data === null || data === void 0 || (_data$list = data.list) === null || _data$list === void 0 ? void 0 : _data$list.length) ?? 0),
116
- entries: (0, _convert.convertPersonEntry)((data === null || data === void 0 ? void 0 : data.list) ?? [])
145
+ entries: (0, _convert.convertPersonEntry)((data === null || data === void 0 ? void 0 : data.list) ?? [], {
146
+ shouldShowLastOnlineTime: relationMode === _personFinder.RelationMode.SITE
147
+ })
117
148
  }
118
149
  };
119
150
  }
@@ -158,4 +189,74 @@ const loadData = async ({
158
189
  }, {});
159
190
  };
160
191
  exports.loadData = loadData;
192
+ const formatLastOnline = date => {
193
+ const ts = _textStrings.default.components.personFinder.lastOnline;
194
+ const now = new Date();
195
+ const diffMs = now.getTime() - date.getTime();
196
+ const minutes = Math.floor(diffMs / 1000 / 60);
197
+ const hours = Math.floor(minutes / 60);
198
+ const days = Math.floor(hours / 24);
199
+ const months = Math.floor(days / 30);
200
+ const years = Math.floor(days / 365);
201
+ const isSameDay = date.getDate() === now.getDate() && date.getMonth() === now.getMonth() && date.getFullYear() === now.getFullYear();
202
+ const yesterday = new Date(now);
203
+ yesterday.setDate(now.getDate() - 1);
204
+ const isYesterday = date.getDate() === yesterday.getDate() && date.getMonth() === yesterday.getMonth() && date.getFullYear() === yesterday.getFullYear();
205
+ const time = date.toLocaleTimeString('de-DE', {
206
+ hour: '2-digit',
207
+ minute: '2-digit'
208
+ });
209
+ if (minutes < 5) {
210
+ return getPersonFinderTextstringValue({
211
+ textstring: ts.fewMinutes
212
+ });
213
+ }
214
+ if (minutes < 60) {
215
+ return getPersonFinderTextstringValue({
216
+ textstring: ts.minutes,
217
+ replacements: {
218
+ minutes
219
+ }
220
+ });
221
+ }
222
+ if (hours < 24 && isSameDay) {
223
+ return getPersonFinderTextstringValue({
224
+ textstring: ts.today,
225
+ replacements: {
226
+ time
227
+ }
228
+ });
229
+ }
230
+ if (isYesterday) {
231
+ return getPersonFinderTextstringValue({
232
+ textstring: ts.yesterday,
233
+ replacements: {
234
+ time
235
+ }
236
+ });
237
+ }
238
+ if (days < 30) {
239
+ return getPersonFinderTextstringValue({
240
+ textstring: ts.days,
241
+ replacements: {
242
+ days
243
+ }
244
+ });
245
+ }
246
+ if (months < 12) {
247
+ return getPersonFinderTextstringValue({
248
+ textstring: ts.months,
249
+ replacements: {
250
+ months
251
+ }
252
+ });
253
+ }
254
+ return getPersonFinderTextstringValue({
255
+ textstring: ts.years,
256
+ replacements: {
257
+ years
258
+ }
259
+ });
260
+ };
261
+ exports.formatLastOnline = formatLastOnline;
161
262
  //# sourceMappingURL=personFinder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"personFinder.js","names":["_personFinder","require","_get","_get2","_convert","_chaynsApi","getGroupName","key","names","person","site","uac","exports","isSiteEntry","entry","filterDataByKeys","data","keys","options","filterSingle","filteredEntries","entries","excludedEntryIds","Array","isArray","length","filter","e","includes","id","excludedCount","count","Math","max","relevantKeys","Object","reduce","acc","original","searchString","skip","filteredEntry","shouldShowOwnUser","PersonFinderFilterTypes","PERSON","user","getUser","personId","ownUserEntry","commonSites","firstName","isVerified","lastName","type","fullName","Boolean","join","trim","toLowerCase","capitalizeFirstLetter","str","charAt","toUpperCase","slice","destructureData","filterType","_data$filterType","_data$filterType2","_data$filterType3","_data$filterType4","loadData","skipMap","promises","map","_data$list","value","getPersons","search","list","convertPersonEntry","SITE","getSites","filteredList","siteId","convertSiteEntry","results","Promise","all","item"],"sources":["../../../src/utils/personFinder.ts"],"sourcesContent":["import {\n PersonEntry,\n PersonFinderData,\n PersonFinderDataMap,\n PersonFinderEntry,\n PersonFinderFilterTypes,\n SiteEntry,\n} from '../types/personFinder';\nimport { getPersons } from '../api/person/get';\nimport { getSites } from '../api/site/get';\nimport { convertPersonEntry, convertSiteEntry } from './convert';\nimport { getUser } from 'chayns-api';\n\nexport const getGroupName = (key: string) => {\n const names: { [key: string]: string } = {\n person: 'Personen',\n site: 'Sites',\n uac: 'UAC Gruppen',\n };\n\n return names[key];\n};\n\nexport const isSiteEntry = (entry: PersonEntry | SiteEntry): entry is SiteEntry =>\n 'name' in entry && !('firstName' in entry);\n\ninterface FilterDataByKeysOptions {\n excludedEntryIds?: PersonFinderEntry['id'][];\n shouldShowOwnUser?: boolean;\n}\n\nexport const filterDataByKeys = (\n data: { [key: string]: PersonFinderData } = {},\n keys: PersonFinderFilterTypes[] = [],\n options: FilterDataByKeysOptions = {},\n): { [key: string]: PersonFinderData } => {\n const filterSingle = (entry: PersonFinderData): PersonFinderData => {\n let filteredEntries = entry.entries;\n\n const { excludedEntryIds } = options;\n\n if (Array.isArray(excludedEntryIds) && excludedEntryIds.length > 0) {\n filteredEntries = filteredEntries.filter((e) => !excludedEntryIds.includes(e.id));\n }\n\n const excludedCount = entry.entries.length - filteredEntries.length;\n\n return {\n ...entry,\n entries: filteredEntries,\n count: Math.max(0, entry.count - excludedCount),\n };\n };\n\n const relevantKeys = keys.length > 0 ? keys : Object.keys(data);\n\n return relevantKeys.reduce((acc, key) => {\n const original = data[key] ?? { searchString: '', count: 0, skip: 0, entries: [] };\n\n const filteredEntry = filterSingle(original);\n\n if (options.shouldShowOwnUser && key === PersonFinderFilterTypes.PERSON) {\n const user = getUser();\n\n if (typeof user?.personId === 'string') {\n // Ensure that the own user is always included in the person filter\n const ownUserEntry: PersonEntry = {\n commonSites: 0,\n firstName: user.firstName ?? '',\n id: user.personId,\n isVerified: false,\n lastName: user.lastName ?? '',\n type: PersonFinderFilterTypes.PERSON,\n };\n\n const fullName = [ownUserEntry.firstName, ownUserEntry.lastName]\n .filter(Boolean)\n .join(' ')\n .trim();\n\n if (\n original.searchString.length < 3 ||\n fullName.toLowerCase().includes(original.searchString.toLowerCase())\n ) {\n filteredEntry.entries = [ownUserEntry, ...filteredEntry.entries];\n filteredEntry.count += 1; // Increment count to account for the own user\n }\n }\n }\n\n return { ...acc, [key]: filteredEntry };\n }, {});\n};\n\nexport const capitalizeFirstLetter = (str: string) => str.charAt(0).toUpperCase() + str.slice(1);\n\nexport const destructureData = (\n data: Record<string, PersonFinderData> | undefined,\n filterType: string,\n) => ({\n count: data?.[filterType]?.count ?? 0,\n skip: data?.[filterType]?.skip ?? 0,\n searchString: data?.[filterType]?.searchString ?? '',\n entries: data?.[filterType]?.entries ?? [],\n});\n\ninterface LoadDataOptions {\n searchString: string;\n filter: PersonFinderFilterTypes[];\n skipMap: Partial<Record<PersonFinderFilterTypes, number>>;\n}\n\nexport const loadData = async ({\n skipMap,\n searchString,\n filter,\n}: LoadDataOptions): Promise<PersonFinderDataMap> => {\n const promises = filter.map(async (filterType) => {\n const skip = skipMap[filterType] ?? 0;\n\n if (filterType === PersonFinderFilterTypes.PERSON) {\n if (searchString.length <= 2) {\n return {\n key: PersonFinderFilterTypes.PERSON,\n value: {\n searchString,\n count: 0,\n skip: 0,\n entries: [],\n },\n };\n }\n\n const data = await getPersons({ search: searchString, skip });\n\n return {\n key: PersonFinderFilterTypes.PERSON,\n value: {\n searchString,\n count: data?.count ?? 0,\n skip: skip + (data?.list?.length ?? 0),\n entries: convertPersonEntry(data?.list ?? []),\n },\n };\n }\n\n if (filterType === PersonFinderFilterTypes.SITE) {\n if (searchString.length <= 2) {\n return {\n key: PersonFinderFilterTypes.SITE,\n value: {\n searchString,\n count: 0,\n skip: 0,\n entries: [],\n },\n };\n }\n\n const data = await getSites({ search: searchString, skip });\n\n const filteredList = data?.list.filter(({ siteId }) => siteId !== null);\n\n return {\n key: PersonFinderFilterTypes.SITE,\n value: {\n searchString,\n count: data?.count ?? 0,\n skip: skip + (filteredList?.length ?? 0),\n entries: convertSiteEntry(filteredList ?? []),\n },\n };\n }\n\n return null;\n });\n\n const results = await Promise.all(promises);\n\n return results.reduce<PersonFinderDataMap>((acc, item) => {\n if (!item) return acc;\n\n return {\n ...acc,\n [item.key]: item.value,\n };\n }, {});\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"personFinder.js","names":["_personFinder","require","_textstring","_get","_get2","_convert","_chaynsApi","_textStrings","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","normalizeTextstringReplacements","replacements","undefined","entries","reduce","acc","key","value","toString","getPersonFinderTextstringValue","textstring","getTextstringValue","libraryName","PERSON_FINDER_TEXTSTRING_LIBRARY_NAME","ttsToITextString","exports","getGroupName","groupNames","PersonFinderFilterTypes","PERSON","textStrings","components","personFinder","groupName","person","SITE","site","UAC","uac","isSiteEntry","entry","filterDataByKeys","data","keys","options","filterSingle","filteredEntries","excludedEntryIds","Array","isArray","length","filter","includes","id","excludedCount","count","Math","max","relevantKeys","original","searchString","skip","filteredEntry","shouldShowOwnUser","user","getUser","personId","ownUserEntry","commonSites","firstName","isVerified","lastName","type","fullName","Boolean","join","trim","toLowerCase","capitalizeFirstLetter","str","charAt","toUpperCase","slice","destructureData","filterType","_data$filterType","_data$filterType2","_data$filterType3","_data$filterType4","loadData","skipMap","relationMode","promises","map","_data$list","getPersons","search","list","convertPersonEntry","shouldShowLastOnlineTime","RelationMode","getSites","filteredList","siteId","convertSiteEntry","results","Promise","all","item","formatLastOnline","date","ts","lastOnline","now","Date","diffMs","getTime","minutes","floor","hours","days","months","years","isSameDay","getDate","getMonth","getFullYear","yesterday","setDate","isYesterday","time","toLocaleTimeString","hour","minute","fewMinutes","today"],"sources":["../../../src/utils/personFinder.ts"],"sourcesContent":["import {\n PersonEntry,\n PersonFinderData,\n PersonFinderDataMap,\n PersonFinderEntry,\n PersonFinderFilterTypes,\n RelationMode,\n SiteEntry,\n} from '../types/personFinder';\nimport { getTextstringValue, ttsToITextString } from '@chayns-components/textstring';\nimport { getPersons } from '../api/person/get';\nimport { getSites } from '../api/site/get';\nimport { convertPersonEntry, convertSiteEntry } from './convert';\nimport { getUser } from 'chayns-api';\nimport textStrings, { PERSON_FINDER_TEXTSTRING_LIBRARY_NAME } from '../constants/textStrings';\n\ninterface GetPersonFinderTextstringValueOptions {\n textstring: {\n stringName: string;\n fallback: string;\n };\n replacements?: Record<string, number | string | undefined>;\n}\n\nconst normalizeTextstringReplacements = (\n replacements?: GetPersonFinderTextstringValueOptions['replacements'],\n) => {\n if (!replacements) {\n return undefined;\n }\n\n return Object.entries(replacements).reduce<Record<string, string>>((acc, [key, value]) => {\n acc[`##${key}##`] = value?.toString() ?? '';\n\n return acc;\n }, {});\n};\n\nexport const getPersonFinderTextstringValue = ({\n textstring,\n replacements,\n}: GetPersonFinderTextstringValueOptions) =>\n getTextstringValue({\n libraryName: PERSON_FINDER_TEXTSTRING_LIBRARY_NAME,\n textstring: ttsToITextString(textstring),\n replacements: normalizeTextstringReplacements(replacements),\n });\n\nexport const getGroupName = (key: string) => {\n const groupNames: Partial<\n Record<PersonFinderFilterTypes, { stringName: string; fallback: string }>\n > = {\n [PersonFinderFilterTypes.PERSON]: textStrings.components.personFinder.groupName.person,\n [PersonFinderFilterTypes.SITE]: textStrings.components.personFinder.groupName.site,\n [PersonFinderFilterTypes.UAC]: textStrings.components.personFinder.groupName.uac,\n };\n\n const textstring = groupNames[key as PersonFinderFilterTypes];\n\n if (!textstring) {\n return key;\n }\n\n return getPersonFinderTextstringValue({ textstring });\n};\n\nexport const isSiteEntry = (entry: PersonEntry | SiteEntry): entry is SiteEntry =>\n 'name' in entry && !('firstName' in entry);\n\ninterface FilterDataByKeysOptions {\n excludedEntryIds?: PersonFinderEntry['id'][];\n shouldShowOwnUser?: boolean;\n}\n\nexport const filterDataByKeys = (\n data: { [key: string]: PersonFinderData } = {},\n keys: PersonFinderFilterTypes[] = [],\n options: FilterDataByKeysOptions = {},\n): { [key: string]: PersonFinderData } => {\n const filterSingle = (entry: PersonFinderData): PersonFinderData => {\n let filteredEntries = entry.entries;\n\n const { excludedEntryIds } = options;\n\n if (Array.isArray(excludedEntryIds) && excludedEntryIds.length > 0) {\n filteredEntries = filteredEntries.filter((e) => !excludedEntryIds.includes(e.id));\n }\n\n const excludedCount = entry.entries.length - filteredEntries.length;\n\n return {\n ...entry,\n entries: filteredEntries,\n count: Math.max(0, entry.count - excludedCount),\n };\n };\n\n const relevantKeys = keys.length > 0 ? keys : Object.keys(data);\n\n return relevantKeys.reduce((acc, key) => {\n const original = data[key] ?? { searchString: '', count: 0, skip: 0, entries: [] };\n\n const filteredEntry = filterSingle(original);\n\n if (options.shouldShowOwnUser && key === PersonFinderFilterTypes.PERSON) {\n const user = getUser();\n\n if (typeof user?.personId === 'string') {\n // Ensure that the own user is always included in the person filter\n const ownUserEntry: PersonEntry = {\n commonSites: 0,\n firstName: user.firstName ?? '',\n id: user.personId,\n isVerified: false,\n lastName: user.lastName ?? '',\n type: PersonFinderFilterTypes.PERSON,\n };\n\n const fullName = [ownUserEntry.firstName, ownUserEntry.lastName]\n .filter(Boolean)\n .join(' ')\n .trim();\n\n if (\n original.searchString.length < 3 ||\n fullName.toLowerCase().includes(original.searchString.toLowerCase())\n ) {\n filteredEntry.entries = [ownUserEntry, ...filteredEntry.entries];\n filteredEntry.count += 1; // Increment count to account for the own user\n }\n }\n }\n\n return { ...acc, [key]: filteredEntry };\n }, {});\n};\n\nexport const capitalizeFirstLetter = (str: string) => str.charAt(0).toUpperCase() + str.slice(1);\n\nexport const destructureData = (\n data: Record<string, PersonFinderData> | undefined,\n filterType: string,\n) => ({\n count: data?.[filterType]?.count ?? 0,\n skip: data?.[filterType]?.skip ?? 0,\n searchString: data?.[filterType]?.searchString ?? '',\n entries: data?.[filterType]?.entries ?? [],\n});\n\ninterface LoadDataOptions {\n searchString: string;\n filter: PersonFinderFilterTypes[];\n skipMap: Partial<Record<PersonFinderFilterTypes, number>>;\n relationMode?: RelationMode;\n}\n\nexport const loadData = async ({\n skipMap,\n searchString,\n filter,\n relationMode,\n}: LoadDataOptions): Promise<PersonFinderDataMap> => {\n const promises = filter.map(async (filterType) => {\n const skip = skipMap[filterType] ?? 0;\n\n if (filterType === PersonFinderFilterTypes.PERSON) {\n if (searchString.length <= 2) {\n return {\n key: PersonFinderFilterTypes.PERSON,\n value: {\n searchString,\n count: 0,\n skip: 0,\n entries: [],\n },\n };\n }\n\n const data = await getPersons({ search: searchString, skip, relationMode });\n\n return {\n key: PersonFinderFilterTypes.PERSON,\n value: {\n searchString,\n count: data?.count ?? 0,\n skip: skip + (data?.list?.length ?? 0),\n entries: convertPersonEntry(data?.list ?? [], {\n shouldShowLastOnlineTime: relationMode === RelationMode.SITE,\n }),\n },\n };\n }\n\n if (filterType === PersonFinderFilterTypes.SITE) {\n if (searchString.length <= 2) {\n return {\n key: PersonFinderFilterTypes.SITE,\n value: {\n searchString,\n count: 0,\n skip: 0,\n entries: [],\n },\n };\n }\n\n const data = await getSites({ search: searchString, skip });\n\n const filteredList = data?.list.filter(({ siteId }) => siteId !== null);\n\n return {\n key: PersonFinderFilterTypes.SITE,\n value: {\n searchString,\n count: data?.count ?? 0,\n skip: skip + (filteredList?.length ?? 0),\n entries: convertSiteEntry(filteredList ?? []),\n },\n };\n }\n\n return null;\n });\n\n const results = await Promise.all(promises);\n\n return results.reduce<PersonFinderDataMap>((acc, item) => {\n if (!item) return acc;\n\n return {\n ...acc,\n [item.key]: item.value,\n };\n }, {});\n};\n\nexport const formatLastOnline = (date: Date): string => {\n const ts = textStrings.components.personFinder.lastOnline;\n const now = new Date();\n\n const diffMs = now.getTime() - date.getTime();\n\n const minutes = Math.floor(diffMs / 1000 / 60);\n const hours = Math.floor(minutes / 60);\n const days = Math.floor(hours / 24);\n const months = Math.floor(days / 30);\n const years = Math.floor(days / 365);\n\n const isSameDay =\n date.getDate() === now.getDate() &&\n date.getMonth() === now.getMonth() &&\n date.getFullYear() === now.getFullYear();\n\n const yesterday = new Date(now);\n yesterday.setDate(now.getDate() - 1);\n\n const isYesterday =\n date.getDate() === yesterday.getDate() &&\n date.getMonth() === yesterday.getMonth() &&\n date.getFullYear() === yesterday.getFullYear();\n\n const time = date.toLocaleTimeString('de-DE', {\n hour: '2-digit',\n minute: '2-digit',\n });\n\n if (minutes < 5) {\n return getPersonFinderTextstringValue({ textstring: ts.fewMinutes });\n }\n\n if (minutes < 60) {\n return getPersonFinderTextstringValue({\n textstring: ts.minutes,\n replacements: { minutes },\n });\n }\n\n if (hours < 24 && isSameDay) {\n return getPersonFinderTextstringValue({\n textstring: ts.today,\n replacements: { time },\n });\n }\n\n if (isYesterday) {\n return getPersonFinderTextstringValue({\n textstring: ts.yesterday,\n replacements: { time },\n });\n }\n\n if (days < 30) {\n return getPersonFinderTextstringValue({\n textstring: ts.days,\n replacements: { days },\n });\n }\n\n if (months < 12) {\n return getPersonFinderTextstringValue({\n textstring: ts.months,\n replacements: { months },\n });\n }\n\n return getPersonFinderTextstringValue({\n textstring: ts.years,\n replacements: { years },\n });\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,9 +1,11 @@
1
1
  import { getAccessToken } from 'chayns-api';
2
- const URL = 'https://relations.chayns.net/relations/v2/person?skip=##skip##&take=##take##&query=##search##';
2
+ import { RelationMode } from '../../types/personFinder';
3
+ const URL = 'https://relations.chayns.net/relations/v2/person?skip=##skip##&take=##take##&query=##search##&scoreForSite=##scoreForSite##';
3
4
  export const getPersons = async ({
4
5
  search,
5
6
  skip,
6
- take = 20
7
+ take = 20,
8
+ relationMode = RelationMode.PERSON
7
9
  }) => {
8
10
  const {
9
11
  accessToken
@@ -17,7 +19,7 @@ export const getPersons = async ({
17
19
  },
18
20
  method: 'GET'
19
21
  };
20
- const response = await fetch(URL.replace('##search##', search).replace('##skip##', skip.toString()).replace('##take##', take?.toString()), requestInit);
22
+ const response = await fetch(URL.replace('##search##', search).replace('##skip##', skip.toString()).replace('##take##', take?.toString()).replace('##scoreForSite##', relationMode === RelationMode.SITE ? '1' : '0'), requestInit);
21
23
  if (response.status === 200) {
22
24
  return await response.json();
23
25
  }