datastake-daf 0.6.846 → 0.6.848

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 (42) hide show
  1. package/build/favicon.ico +0 -0
  2. package/build/logo192.png +0 -0
  3. package/build/logo512.png +0 -0
  4. package/build/manifest.json +25 -0
  5. package/build/robots.txt +3 -0
  6. package/dist/components/index.js +180 -4
  7. package/dist/hooks/index.js +4 -5
  8. package/dist/pages/index.js +1028 -866
  9. package/dist/services/index.js +11 -11
  10. package/dist/utils/index.js +14 -11
  11. package/package.json +1 -1
  12. package/src/@daf/core/components/Screens/TableScreen/StandardTablePage/index.jsx +108 -0
  13. package/src/@daf/core/components/Screens/TableScreen/TablePageWithTabs/index.jsx +9 -2
  14. package/src/@daf/core/components/TableScreen/TablePageWithTabs/index.jsx +13 -3
  15. package/src/@daf/hooks/useWidgetFetch.js +40 -34
  16. package/src/@daf/pages/Edit/index.jsx +3 -0
  17. package/src/@daf/pages/Partners/columns.js +2 -2
  18. package/src/@daf/pages/Partners/config.js +22 -0
  19. package/src/@daf/pages/Partners/hook.js +7 -11
  20. package/src/@daf/pages/Partners/index.jsx +128 -140
  21. package/src/@daf/pages/ResetPassword/index.jsx +2 -3
  22. package/src/@daf/pages/SelfAssesment/components/OrgInformationTable/columns.js +3 -2
  23. package/src/@daf/pages/TablePage/hook.js +51 -42
  24. package/src/@daf/pages/TablePage/index.jsx +95 -61
  25. package/src/@daf/{core/components/Screens → pages}/Users/columns.js +15 -10
  26. package/src/@daf/{core/components/Screens → pages}/Users/create.jsx +2 -1
  27. package/src/@daf/pages/Users/index.jsx +128 -0
  28. package/src/@daf/pages/View/hooks/useCallToGetData.js +5 -1
  29. package/src/@daf/pages/View/index.jsx +6 -3
  30. package/src/@daf/pages/hook.js +26 -7
  31. package/src/@daf/services/EventsService.js +2 -2
  32. package/src/@daf/services/MineSiteService.js +2 -2
  33. package/src/@daf/services/OperatorService.js +2 -2
  34. package/src/@daf/services/PartnerService.js +2 -2
  35. package/src/@daf/services/SourceService.js +1 -1
  36. package/src/@daf/services/WorkersService.js +2 -2
  37. package/src/@daf/utils/timeFilterUtils.js +250 -233
  38. package/src/constants/locales/fr/translation.js +14 -11
  39. package/src/index.js +1 -1
  40. package/src/pages.js +1 -1
  41. package/src/@daf/core/components/Screens/Users/index.jsx +0 -173
  42. /package/src/@daf/{core/components/Screens → pages}/Users/config.js +0 -0
@@ -1,16 +1,21 @@
1
1
  import React from 'react';
2
2
  import { Modal, Tag, Typography, message ,Tooltip} from "antd";
3
3
 
4
- import { renderDateFormatted } from '../../../../../helpers/Forms.js';
5
- import MoreMenu from '../../../../core/components/Table/MoreMenu/index.jsx';
4
+ import { renderDateFormatted } from '../../../helpers/Forms.js';
5
+ import MoreMenu from '../../core/components/Table/MoreMenu/index.jsx';
6
6
 
7
- export const getColumns = ({t, goTo, user, removeUser = () => {},
8
- resendInvite = () => {},
9
- setUserToEdit = () => {},
10
- userRoles = [],
11
- company = {},
12
- canCreate = false,
13
- app}) => [
7
+ export const getColumns = ({
8
+ t,
9
+ goTo,
10
+ user,
11
+ removeUser = () => {},
12
+ resendInvite = () => {},
13
+ setUserToEdit = () => {},
14
+ userRoles = [],
15
+ company = {},
16
+ canCreate = false,
17
+ APP
18
+ }) => [
14
19
  // {
15
20
  // dataIndex: 'datastakeId',
16
21
  // title: t('ID'),
@@ -172,7 +177,7 @@ app}) => [
172
177
  onClick: () => {
173
178
  if (location.pathname.includes(`/${APP}`)) {
174
179
  navigator.clipboard.writeText(
175
- `${window.location.host}/${app}/r/${company.inviteToken}/${all.invitationToken}`,
180
+ `${window.location.host}/${APP}/r/${company.inviteToken}/${all.invitationToken}`,
176
181
  );
177
182
  } else {
178
183
  navigator.clipboard.writeText(
@@ -1,6 +1,6 @@
1
1
  import React, { useMemo } from 'react'
2
2
  import { getUserForm } from './config.js';
3
- import DynamicForm from '../../../../core/components/DynamicForm/index.jsx';
3
+ import DynamicForm from '../../core/components/DynamicForm/index.jsx';
4
4
 
5
5
  const UsersCreate = ({
6
6
  onSubmitted = () => {},
@@ -54,6 +54,7 @@ const UsersCreate = ({
54
54
  },
55
55
  },
56
56
  });
57
+ onCancel()
57
58
  }}
58
59
  />
59
60
  </div>
@@ -0,0 +1,128 @@
1
+ import React, { useMemo, useState, useEffect } from 'react'
2
+ import { Drawer } from 'antd'
3
+ import { getColumns } from './columns.js';
4
+ import { checkboxConfig, getFiltersConfig, filtersConfig, getFilterOptions } from './config.js';
5
+ import UsersCreate from './create.jsx';
6
+ import TablePage from '../TablePage/index.jsx';
7
+ import { CREATE_DRAWER_WIDTH } from '../../../helpers/Forms.js';
8
+ import DrawerHeader from '../../core/components/Header/DrawerHeader/index.jsx';
9
+
10
+ const UsersTable = ({
11
+ t = () => {},
12
+ goTo = () => {},
13
+ user = {},
14
+ options = {},
15
+ getRedirectLink = () => {},
16
+ theme = {},
17
+ loading = false,
18
+ data = {},
19
+ isMobile,
20
+ APP,
21
+ location,
22
+ getData = () => {},
23
+ getApiBaseUrl = () => {},
24
+ getAppHeader = () => {},
25
+ onInviteUser = () => {},
26
+ onEditUser = () => {},
27
+ query = {},
28
+ ajaxForms = {},
29
+ changeAjaxForms = () => {},
30
+ ajaxOptions = {},
31
+ changeAjaxOptions = () => {},
32
+ extendingFilters = {},
33
+ userRoles = [],
34
+ breadCrumbs = []
35
+ }) => {
36
+ const [selectOptions, setSelectOptions] = useState();
37
+ const params = new URLSearchParams(location?.search);
38
+ const [openCreateModal, setOpenCreateModal] = useState(params.has("create"));
39
+ const [userToEdit, setUserToEdit] = useState(null);
40
+
41
+ const columns = useMemo(() => getColumns({
42
+ t,
43
+ goTo,
44
+ user,
45
+ options,
46
+ getRedirectLink,
47
+ theme,
48
+ subject: 'user',
49
+ data,
50
+ setUserToEdit,
51
+ APP,
52
+ }), [t, goTo, user, options, getRedirectLink, theme, data]);
53
+
54
+ const selectFiltersConfig = useMemo(() => getFiltersConfig({ t }), [t]);
55
+
56
+ useEffect(() => {
57
+ setSelectOptions((prev) => ({
58
+ ...prev,
59
+ ...getFilterOptions(options, t),
60
+ }));
61
+ }, [options, t]);
62
+
63
+ const customCreate = ({ onDrawerClose }) => {
64
+ return (
65
+ <UsersCreate
66
+ t={t}
67
+ goTo={goTo}
68
+ user={user}
69
+ APP={APP}
70
+ getApiBaseUrl={getApiBaseUrl}
71
+ getAppHeader={getAppHeader}
72
+ onSubmitted={(payload) => {
73
+ if (userToEdit) {
74
+ onEditUser(payload);
75
+ } else {
76
+ onInviteUser(payload);
77
+ }
78
+ onDrawerClose()
79
+ }}
80
+ onCancel={() => {
81
+ onDrawerClose()
82
+ }}
83
+ query={query}
84
+ ajaxForms={ajaxForms}
85
+ changeAjaxForms={changeAjaxForms}
86
+ ajaxOptions={ajaxOptions}
87
+ changeAjaxOptions={changeAjaxOptions}
88
+ userRoles={userRoles}
89
+ userToEdit={userToEdit}
90
+ />
91
+ )
92
+ }
93
+
94
+ return (
95
+ <TablePage
96
+ t={t}
97
+ goTo={goTo}
98
+ user={user}
99
+ options={options}
100
+ getRedirectLink={getRedirectLink}
101
+ theme={theme}
102
+ loading={loading}
103
+ data={data}
104
+ isMobile={isMobile}
105
+ APP={APP}
106
+ location={location}
107
+ getData={getData}
108
+ getApiBaseUrl={getApiBaseUrl}
109
+ getAppHeader={getAppHeader}
110
+ extendingFilters={extendingFilters}
111
+ subject="users"
112
+ breadcrumbs={breadCrumbs}
113
+ headerInfo={{
114
+ title: "users",
115
+ createTitle: "New User"
116
+ }}
117
+ noTabs={true}
118
+ customCreate={customCreate}
119
+ customColumns={columns}
120
+ customCheckboxConfig={checkboxConfig}
121
+ customFiltersConfig={filtersConfig}
122
+ customSelectFiltersConfig={selectFiltersConfig}
123
+ externalOpenDrawer={!!userToEdit}
124
+ />
125
+ );
126
+ };
127
+
128
+ export default UsersTable;
@@ -14,10 +14,14 @@ export const useCallToGetData = ({
14
14
  user,
15
15
  setLoading,
16
16
  APP,
17
+ selectedPartners,
17
18
  }) => {
18
19
  const isFirstRender = useRef(true);
19
20
 
20
21
  const callToGetData = (_doCall = false) => {
22
+ if (selectedPartners?.loading) {
23
+ return;
24
+ }
21
25
  const dKey = namespaceConfig?.dataKey;
22
26
  const nKey = `${APP}-${getNkey(namespace || "")}`;
23
27
  const doCall = _doCall
@@ -38,7 +42,7 @@ export const useCallToGetData = ({
38
42
  return;
39
43
  }
40
44
  callToGetData(true);
41
- }, [source, version]);
45
+ }, [source, version, selectedPartners?.partners]);
42
46
 
43
47
  useEffect(() => {
44
48
  callToGetData(true);
@@ -16,6 +16,7 @@ import Records from '../../../@daf/core/components/ViewForm/components/Records/i
16
16
  import { Template } from '../Template/index.jsx'
17
17
  import {message} from 'antd'
18
18
  import { handleError } from '../../services/ErrorService.js'
19
+
19
20
  const View = ({
20
21
  push,
21
22
  getRedirectLink,
@@ -33,6 +34,7 @@ const View = ({
33
34
  APP,
34
35
  viewConfig,
35
36
  partners,
37
+ selectedPartners,
36
38
  setSelectedPartners,
37
39
  user,
38
40
  serviceMap,
@@ -196,7 +198,7 @@ const View = ({
196
198
  ...(namespaceConfig?.scope && { scope: namespaceConfig.scope }),
197
199
  datastakeId: id ? id : 'user',
198
200
  version,
199
- source,
201
+ sources: source || selectedPartners?.partners,
200
202
  })
201
203
  }
202
204
  }
@@ -212,7 +214,8 @@ const View = ({
212
214
  version,
213
215
  user,
214
216
  setLoading,
215
- APP
217
+ APP,
218
+ selectedPartners,
216
219
  })
217
220
 
218
221
  const extraLinking = useMemo(() => {
@@ -249,7 +252,7 @@ const View = ({
249
252
  <>
250
253
  <div className={"daf-view-form"}>
251
254
  <Header
252
- title={(namespace === 'kyc' ? "KYC" : data?.name) || ""}
255
+ title={(namespace === 'kyc' ? `${user?.firstName} ${user?.lastName} - KYC` : data?.name) || ""}
253
256
  breadcrumbs={breadcrumbs}
254
257
  goBackTo={goBack}
255
258
  actionButtons={actionButtons}
@@ -1,4 +1,4 @@
1
- import { useEffect } from "react";
1
+ import { useEffect, useRef } from "react";
2
2
  import { useGetQueryParams } from "../hooks/useGetQueryParams";
3
3
 
4
4
  export const useFetchData = ({
@@ -7,8 +7,12 @@ export const useFetchData = ({
7
7
  activeTab,
8
8
  extendingFilters,
9
9
  subject,
10
+ refetchTrigger,
10
11
  }) => {
11
12
  const { paginationQuery, searchParams, otherParams, sortBy, sortDir, } = useGetQueryParams({location});
13
+
14
+ const prevParamsRef = useRef();
15
+
12
16
  useEffect(() => {
13
17
  const cleanSearchParams = Object.fromEntries(
14
18
  Object.entries(searchParams).filter(([_, value]) => value != null && value !== '')
@@ -20,15 +24,30 @@ export const useFetchData = ({
20
24
  return;
21
25
  }
22
26
 
23
- getData({
27
+ const extendingSortKey = extendingFilters?.sortBy ? Object.keys(extendingFilters.sortBy)[0] : null;
28
+ const extendingSortDir = extendingFilters?.sortBy && extendingSortKey ? extendingFilters.sortBy[extendingSortKey] : null;
29
+
30
+ const currentParams = {
31
+ ...extendingFilters,
24
32
  pagination: paginationQuery,
25
33
  ...(Object.keys(otherParams).length > 0 && otherParams ),
26
34
  ...(Object.keys(cleanSearchParams).length > 0 && { search: cleanSearchParams }),
27
- tab: activeTab,
35
+ ...(activeTab && { tab: activeTab }),
28
36
  sortBy: {
29
- [sortBy || "updatedAt"]: sortDir ? (sortDir === "ascend" ? 1 : -1) : -1,
37
+ [sortBy || extendingSortKey || "updatedAt"]: sortDir ? (sortDir === "ascend" ? 1 : -1) : (extendingSortDir || -1),
30
38
  },
31
- ...extendingFilters,
32
- }, subject)
33
- }, [location.search, activeTab, JSON.stringify(extendingFilters)]);
39
+ };
40
+
41
+ const currentParamsString = JSON.stringify(currentParams);
42
+ const paramsChanged = prevParamsRef.current !== currentParamsString;
43
+ const shouldFetch = paramsChanged || refetchTrigger;
44
+
45
+ if (!shouldFetch) {
46
+ return;
47
+ }
48
+
49
+ prevParamsRef.current = currentParamsString;
50
+
51
+ getData(currentParams, subject);
52
+ }, [location.search, JSON.stringify(extendingFilters), activeTab, refetchTrigger]);
34
53
  }
@@ -37,11 +37,11 @@ class EventsService extends BaseService {
37
37
  });
38
38
  }
39
39
 
40
- getData(id, sourceId, source, version) {
40
+ getData(id, sourceId, sources, version) {
41
41
  return this.apiGet({
42
42
  isApp: true,
43
43
  url: `/event/${id}`,
44
- params: { authorId: sourceId, source, version },
44
+ params: { authorId: sourceId, sources, version },
45
45
  });
46
46
  }
47
47
 
@@ -44,11 +44,11 @@ class MineSiteService extends BaseService {
44
44
  });
45
45
  }
46
46
 
47
- getData(id, sourceId, source, version) {
47
+ getData(id, sourceId, sources, version) {
48
48
  return this.apiGet({
49
49
  url: `/location/${id}`,
50
50
  isApp: true,
51
- params: { authorId: sourceId, source, version },
51
+ params: { authorId: sourceId, sources, version },
52
52
  });
53
53
  }
54
54
 
@@ -45,11 +45,11 @@ class OperatorService extends BaseService {
45
45
  });
46
46
  }
47
47
 
48
- getData(id, sourceId, source, version) {
48
+ getData(id, sourceId, sources, version) {
49
49
  return this.apiGet({
50
50
  isApp: true,
51
51
  url: `/stakeholder/${id}`,
52
- params: { authorId: sourceId, source, version },
52
+ params: { authorId: sourceId, sources, version },
53
53
  });
54
54
  }
55
55
 
@@ -2,11 +2,11 @@ import { BaseService } from "./BaseService.js";
2
2
  import { createLazyService } from "./helpers/LazyService.js";
3
3
 
4
4
  class PartnerService extends BaseService {
5
- get(tab, filters) {
5
+ get(params) {
6
6
  return this.apiGet({
7
7
  url: "/partner",
8
8
  isApp: true,
9
- params: filters,
9
+ params,
10
10
  });
11
11
  }
12
12
 
@@ -5,7 +5,7 @@ class SourceService extends BaseService {
5
5
  get(tab, filters) {
6
6
  const { page, pageSize, search, searchParams, ...rest } = filters;
7
7
  const params = {
8
- filters: rest,
8
+ ...rest,
9
9
  pagination: {
10
10
  skip: page,
11
11
  take: pageSize,
@@ -18,11 +18,11 @@ class WorkersService extends BaseService {
18
18
  params: { scope, language },
19
19
  });
20
20
  }
21
- getData(id, sourceId, version, source) {
21
+ getData(id, sourceId, sources, version) {
22
22
  return this.apiGet({
23
23
  isApp: true,
24
24
  url: `/stakeholder/${id}`,
25
- params: { authorId: sourceId, version, source },
25
+ params: { authorId: sourceId, version, sources },
26
26
  });
27
27
  }
28
28