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
@@ -2,8 +2,8 @@ import React, { useState, useMemo, useEffect, useCallback } from 'react'
2
2
  import { Modal } from 'antd';
3
3
  import { usePartnersActions } from './hook.js';
4
4
  import { getColumns } from './columns.js';
5
- import TablePageWithTabs from '../../core/components/Screens/TableScreen/TablePageWithTabs/index.jsx';
6
- import { checkboxConfig, selectFiltersConfig, filtersConfig } from './config.js';
5
+ import TablePage from '../TablePage/index.jsx';
6
+ import { checkboxConfig, filtersConfig, getSelectFiltersConfig, getFilterOptions } from './config.js';
7
7
  import Create from './create.jsx';
8
8
  import { useGetQueryParams } from '../../hooks/useGetQueryParams.js';
9
9
  import ModalHeader from '../../core/components/Header/ModalHeader/index.jsx';
@@ -37,47 +37,6 @@ const PartnersTable = ({
37
37
  const [pendingEditId, setPendingEditId] = useState(null);
38
38
  const [openModal, setOpenModal] = useState(false);
39
39
 
40
- const tabs = useMemo(() => [
41
- { label: t("List"), key: "partners" },
42
- { label: (
43
- <div className="tab-cont">
44
- <div className="flex flex-column justify-content-center">
45
- {t('Requests')}
46
- </div>
47
- {typeof totalRequests === 'number' ? (
48
- <div className="flex flex-column justify-content-center">
49
- <div className="bubble">
50
- <div className="flex flex-column justify-content-center">
51
- {totalRequests}
52
- </div>
53
- </div>
54
- </div>
55
- ) : null}
56
- </div>
57
- ),
58
- key: "requests"
59
- },
60
- ], [t, totalRequests]);
61
-
62
- const { paginationQuery, searchParams, otherParams, sortBy, sortDir, } = useGetQueryParams({location});
63
-
64
- const filters = useMemo(() => {
65
- const cleanSearchParams = Object.fromEntries(
66
- Object.entries(searchParams).filter(([_, value]) => value != null && value !== '')
67
- );
68
-
69
- return {
70
- pagination: paginationQuery,
71
- ...(Object.keys(otherParams).length > 0 && otherParams ),
72
- ...(Object.keys(cleanSearchParams).length > 0 && { search: cleanSearchParams }),
73
- tab: activeTab,
74
- sortBy: {
75
- [sortBy || "updatedAt"]: sortDir ? (sortDir === "ascend" ? 1 : -1) : -1,
76
- },
77
- ...extendingFilters,
78
- }
79
- }, [location.search, activeTab, JSON.stringify(extendingFilters)]);
80
-
81
40
  const {
82
41
  loading,
83
42
  data,
@@ -93,8 +52,6 @@ const PartnersTable = ({
93
52
  initFetchDone,
94
53
  setInitFetchDone,
95
54
  } = usePartnersActions({
96
- activeTab,
97
- filters,
98
55
  setTotalRequests,
99
56
  t,
100
57
  });
@@ -110,18 +67,8 @@ const PartnersTable = ({
110
67
  selectOptions,
111
68
  block,
112
69
  setOpen: setOpenModal,
113
- }), [t, accept, decline, suspend, resendInvite, activate, activeTab, selectOptions, block, setOpenModal]);
114
-
115
- const handleActiveTabChange = useCallback((value) => {
116
- setActiveTab(value);
117
- }, []);
118
-
119
- useEffect(() => {
120
- if (requestDataFetch) {
121
- fetchData();
122
- setRequestDataFetch(false);
123
- }
124
- }, [requestDataFetch, fetchData, setRequestDataFetch]);
70
+ options,
71
+ }), [t, accept, decline, suspend, resendInvite, activate, activeTab, selectOptions, block, setOpenModal, options]);
125
72
 
126
73
  useEffect(() => {
127
74
  if (searchLocationParams.has("datastakeId") && !pendingEditId) {
@@ -139,97 +86,138 @@ const PartnersTable = ({
139
86
  }
140
87
  }, [data, pendingEditId]);
141
88
 
142
- useEffect(() => {
143
- fetchData();
144
- }, [filters]);
89
+ const tabs = useMemo(() => [
90
+ { label: t("List"), key: "partners" },
91
+ {
92
+ label: (
93
+ <div className="tab-cont">
94
+ <div className="flex flex-column justify-content-center">
95
+ {t('Requests')}
96
+ </div>
97
+ {typeof totalRequests === 'number' ? (
98
+ <div className="flex flex-column justify-content-center">
99
+ <div className="bubble">
100
+ <div className="flex flex-column justify-content-center">
101
+ {totalRequests}
102
+ </div>
103
+ </div>
104
+ </div>
105
+ ) : null}
106
+ </div>
107
+ ),
108
+ key: "requests"
109
+ },
110
+ ], [t, totalRequests]);
145
111
 
146
- const headerTooltip = useMemo(() => ({
147
- title: t("Partners"),
148
- content: (
149
- <div className="max-w-250">
150
- {t(
151
- "Partners are organisations sharing their information with you, or receiving your information.",
152
- )}
153
- <br />
154
- {t("Only authorised users can create partnerships.")}
155
- </div>
156
- ),
157
- }), [t]);
158
-
159
- const drawerTooltip = useMemo(() => ({
160
- content: (
161
- <div className="max-w-250">
162
- {t("Source: This partner will share information with you.")},
163
- <br />
164
- {t("Client: You will share information with this partner.")},
165
- <br />
166
- {t("Exchange: You will both share information with each other.")}
167
- </div>
168
- ),
112
+ const selectFiltersConfig = useMemo(() => {
113
+ return getSelectFiltersConfig({t});
114
+ }, [t]);
115
+
116
+ const filterOptions = useMemo(() => {
117
+ return getFilterOptions(options, t);
118
+ }, [options, t]);
119
+
120
+ const headerInfo = useMemo(() => ({
121
+ title: "Partners",
122
+ createTitle: "Create Partner",
123
+ tooltip: {
124
+ title: t("Partners"),
125
+ content: (
126
+ <div className="max-w-250">
127
+ {t("Partners are organisations sharing their information with you, or receiving your information.")}
128
+ <br />
129
+ {t("Only authorised users can create partnerships.")}
130
+ </div>
131
+ ),
132
+ },
133
+ drawerTooltip: {
134
+ content: (
135
+ <div className="max-w-250">
136
+ {t("Source: This partner will share information with you.")},
137
+ <br />
138
+ {t("Client: You will share information with this partner.")},
139
+ <br />
140
+ {t("Exchange: You will both share information with each other.")}
141
+ </div>
142
+ ),
143
+ },
169
144
  }), [t]);
170
-
171
- return (
145
+
146
+ const customCreate = useCallback(({ onDrawerClose }) => (
147
+ <Create
148
+ query={query}
149
+ goTo={goTo}
150
+ user={user}
151
+ t={t}
152
+ ajaxForms={ajaxForms}
153
+ changeAjaxForms={changeAjaxForms}
154
+ ajaxOptions={ajaxOptions}
155
+ changeAjaxOptions={changeAjaxOptions}
156
+ onClose={onDrawerClose}
157
+ fetchData={() => setRequestDataFetch(true)}
158
+ APP={APP}
159
+ getAppHeader={getAppHeader}
160
+ getApiBaseUrl={getApiBaseUrl}
161
+ />
162
+ ), [query, goTo, user, t, ajaxForms, changeAjaxForms, ajaxOptions, changeAjaxOptions, APP, getAppHeader, getApiBaseUrl, setRequestDataFetch]);
163
+
164
+ const customModal = useMemo(() => (
172
165
  <>
173
- <TablePageWithTabs
174
- t={t}
175
- tabs={tabs}
176
- title={t("Partners")}
177
- breadCrumbs={breadcrumbs}
178
- location={location}
179
- loading={loading}
180
- goTo={goTo}
181
- defaultActiveTab={"partners"}
182
- columns={columns}
183
- data={data}
184
- checkboxConfig={checkboxConfig}
185
- APP={APP}
186
- getApiBaseUrl={getApiBaseUrl}
187
- selectOptions={selectOptions}
188
- selectFiltersConfig={selectFiltersConfig}
189
- getRedirectLink={getRedirectLink}
190
- filtersConfig={filtersConfig}
191
- isMobile={isMobile}
192
- view="partners"
193
- getActiveTab={handleActiveTabChange}
194
- headerTooltip={headerTooltip}
195
- drawerTitle={t("Create Partner")}
196
- drawerTooltip={drawerTooltip}
166
+ <Modal
167
+ open={!!openModal}
168
+ onCancel={() => setOpenModal(false)}
169
+ footer={null}
170
+ title={<ModalHeader title={t("Edit Settings")} />}
197
171
  >
198
- {({onDrawerClose}) => (
199
- <Create
200
- query={query}
201
- goTo={goTo}
202
- user={user}
203
- t={t}
204
- ajaxForms={ajaxForms}
205
- changeAjaxForms={changeAjaxForms}
206
- ajaxOptions={ajaxOptions}
207
- changeAjaxOptions={changeAjaxOptions}
208
- onClose={onDrawerClose}
172
+ {openModal ? (
173
+ <Edit
174
+ partner={openModal}
209
175
  fetchData={() => setRequestDataFetch(true)}
210
- APP={APP}
211
- getAppHeader={getAppHeader}
212
- getApiBaseUrl={getApiBaseUrl}
213
- />
214
- )}
215
- </TablePageWithTabs>
216
- <Modal
217
- open={!!openModal}
218
- onCancel={() => setOpenModal(false)}
219
- footer={null}
220
- title={<ModalHeader title={t("Edit Settings")} />}
221
- >
222
- {openModal ? (
223
- <Edit
224
- partner={openModal}
225
- fetchData={() => setRequestDataFetch(true)}
226
- onClose={() => setOpenModal(false)}
176
+ onClose={() => setOpenModal(false)}
227
177
  t={t}
228
- />
229
- ) : null}
230
- </Modal>
178
+ />
179
+ ) : null}
180
+ </Modal>
231
181
  <input id="myInput" hidden />
232
182
  </>
183
+ ), [openModal, t, setRequestDataFetch]);
184
+
185
+ const handleActiveTabChange = useCallback((value) => {
186
+ setActiveTab(value);
187
+ }, []);
188
+
189
+ return (
190
+ <TablePage
191
+ t={t}
192
+ goTo={goTo}
193
+ user={user}
194
+ options={filterOptions}
195
+ getRedirectLink={getRedirectLink}
196
+ theme={theme}
197
+ loading={loading}
198
+ data={data}
199
+ isMobile={isMobile}
200
+ APP={APP}
201
+ location={location}
202
+ headerInfo={headerInfo}
203
+ extendingFilters={extendingFilters}
204
+ getData={fetchData}
205
+ getApiBaseUrl={getApiBaseUrl}
206
+ getAppHeader={getAppHeader}
207
+ applications={applications}
208
+ subject="partners"
209
+ breadcrumbs={breadcrumbs}
210
+ customCreate={customCreate}
211
+ customModal={customModal}
212
+ customTabs={tabs}
213
+ defaultActiveTab="partners"
214
+ customColumns={columns}
215
+ customCheckboxConfig={checkboxConfig}
216
+ customFiltersConfig={filtersConfig}
217
+ customSelectFiltersConfig={selectFiltersConfig}
218
+ getActiveTab={handleActiveTabChange}
219
+ refetchTrigger={requestDataFetch}
220
+ />
233
221
  )
234
222
  }
235
223
 
@@ -1,7 +1,6 @@
1
1
  import React from "react";
2
- import DafButton from "../../../Button/index.jsx";
3
- import Loading from "../../../Loading/index.jsx";
4
- import AuthForm from "../../../AuthForm/index.jsx";
2
+ import DafButton from "../../core/components/Button/index.jsx";
3
+ import AuthForm from "../../core/components/AuthForm/index.jsx";
5
4
 
6
5
  const step = 1;
7
6
 
@@ -29,11 +29,12 @@ const cols = [
29
29
  }
30
30
 
31
31
  const title = all?.published
32
- ? t("general-information")
33
- : t("registration");
32
+ ? `${t("general-information")}-KYC`
33
+ : `${t("registration")}-KYC`;
34
34
 
35
35
  return <Tooltip title={title}>{title}</Tooltip>;
36
36
  },
37
+
37
38
  },
38
39
  {
39
40
  dataIndex: "completion",
@@ -9,53 +9,54 @@ import {
9
9
  getViewConfig
10
10
  } from './config.js';
11
11
  import { getColumns } from './columns.js';
12
-
13
- export const useFetchData = ({
14
- location,
15
- getData,
16
- activeTab,
17
- extendingFilters,
18
- subject,
19
- }) => {
20
- const { paginationQuery, searchParams, otherParams, sortBy, sortDir, } = useGetQueryParams({location});
12
+ import { useFetchData } from '../hook.js';
13
+
14
+ // export const useFetchData = ({
15
+ // location,
16
+ // getData,
17
+ // activeTab,
18
+ // extendingFilters,
19
+ // subject,
20
+ // }) => {
21
+ // const { paginationQuery, searchParams, otherParams, sortBy, sortDir, } = useGetQueryParams({location});
21
22
 
22
- const prevParamsRef = useRef();
23
+ // const prevParamsRef = useRef();
23
24
 
24
- useEffect(() => {
25
- const cleanSearchParams = Object.fromEntries(
26
- Object.entries(searchParams).filter(([_, value]) => value != null && value !== '')
27
- );
25
+ // useEffect(() => {
26
+ // const cleanSearchParams = Object.fromEntries(
27
+ // Object.entries(searchParams).filter(([_, value]) => value != null && value !== '')
28
+ // );
28
29
 
29
- const hasPagination = paginationQuery.skip != null || paginationQuery.take != null;
30
+ // const hasPagination = paginationQuery.skip != null || paginationQuery.take != null;
30
31
 
31
- if (!hasPagination) {
32
- return;
33
- }
34
-
35
- const extendingSortKey = extendingFilters?.sortBy ? Object.keys(extendingFilters.sortBy)[0] : null;
36
- const extendingSortDir = extendingFilters?.sortBy && extendingSortKey ? extendingFilters.sortBy[extendingSortKey] : null;
37
-
38
- const currentParams = {
39
- ...extendingFilters,
40
- pagination: paginationQuery,
41
- ...(Object.keys(otherParams).length > 0 && otherParams ),
42
- ...(Object.keys(cleanSearchParams).length > 0 && { search: cleanSearchParams }),
43
- tab: activeTab,
44
- sortBy: {
45
- [sortBy || extendingSortKey || "updatedAt"]: sortDir ? (sortDir === "ascend" ? 1 : -1) : (extendingSortDir || -1),
46
- },
47
- };
48
-
49
- const currentParamsString = JSON.stringify(currentParams);
50
- if (prevParamsRef.current === currentParamsString) {
51
- return;
52
- }
32
+ // if (!hasPagination) {
33
+ // return;
34
+ // }
35
+
36
+ // const extendingSortKey = extendingFilters?.sortBy ? Object.keys(extendingFilters.sortBy)[0] : null;
37
+ // const extendingSortDir = extendingFilters?.sortBy && extendingSortKey ? extendingFilters.sortBy[extendingSortKey] : null;
38
+
39
+ // const currentParams = {
40
+ // ...extendingFilters,
41
+ // pagination: paginationQuery,
42
+ // ...(Object.keys(otherParams).length > 0 && otherParams ),
43
+ // ...(Object.keys(cleanSearchParams).length > 0 && { search: cleanSearchParams }),
44
+ // tab: activeTab,
45
+ // sortBy: {
46
+ // [sortBy || extendingSortKey || "updatedAt"]: sortDir ? (sortDir === "ascend" ? 1 : -1) : (extendingSortDir || -1),
47
+ // },
48
+ // };
49
+
50
+ // const currentParamsString = JSON.stringify(currentParams);
51
+ // if (prevParamsRef.current === currentParamsString) {
52
+ // return;
53
+ // }
53
54
 
54
- prevParamsRef.current = currentParamsString;
55
+ // prevParamsRef.current = currentParamsString;
55
56
 
56
- getData(currentParams, subject);
57
- }, [location.search, JSON.stringify(extendingFilters), activeTab]);
58
- }
57
+ // getData(currentParams, subject);
58
+ // }, [location.search, JSON.stringify(extendingFilters), activeTab]);
59
+ // }
59
60
 
60
61
  export const useTablePage = ({
61
62
  subject,
@@ -72,9 +73,13 @@ export const useTablePage = ({
72
73
  applications,
73
74
  subjectClear,
74
75
  APP,
76
+ defaultActiveTab = "own",
77
+ getActiveTab,
78
+ refetchTrigger,
79
+ noTabs = false,
75
80
  }) => {
76
81
  const [selectOptions, setSelectOptions] = useState();
77
- const [activeTab, setActiveTab] = useState("own");
82
+ const [activeTab, setActiveTab] = useState(noTabs ? null : defaultActiveTab);
78
83
 
79
84
  useFetchData({
80
85
  location,
@@ -82,6 +87,7 @@ export const useTablePage = ({
82
87
  activeTab,
83
88
  extendingFilters: extendingFilters,
84
89
  subject,
90
+ refetchTrigger,
85
91
  });
86
92
 
87
93
  const columns = useMemo(() =>
@@ -133,6 +139,9 @@ export const useTablePage = ({
133
139
  );
134
140
  const handleActiveTabChange = useCallback((value) => {
135
141
  setActiveTab(value);
142
+ if (getActiveTab && typeof getActiveTab === 'function' && !noTabs) {
143
+ getActiveTab(value);
144
+ }
136
145
  }, []);
137
146
 
138
147
  useEffect(
@@ -1,5 +1,6 @@
1
1
  import React, { useMemo } from 'react';
2
2
  import TablePageWithTabs from '../../core/components/Screens/TableScreen/TablePageWithTabs/index.jsx';
3
+ import StandardTablePage from '../../core/components/Screens/TableScreen/StandardTablePage/index.jsx';
3
4
  import Create from './create.jsx';
4
5
  import { displayMessage } from '../../../helpers/messages.js';
5
6
  import { useTablePage } from './hook.js';
@@ -40,8 +41,19 @@ const TablePage = ({
40
41
  subject,
41
42
  breadcrumbs = [],
42
43
  onDownload,
44
+ customCreate,
45
+ customModal,
46
+ customTabs,
47
+ defaultActiveTab = "own",
48
+ customColumns,
49
+ customCheckboxConfig,
50
+ customFiltersConfig,
51
+ customSelectFiltersConfig,
52
+ getActiveTab,
53
+ noTabs = false,
54
+ refetchTrigger,
55
+ externalOpenDrawer = false,
43
56
  }) => {
44
-
45
57
  const {
46
58
  activeTab,
47
59
  selectOptions,
@@ -53,6 +65,7 @@ const TablePage = ({
53
65
  formInfo,
54
66
  viewConfig,
55
67
  } = useTablePage({
68
+ defaultActiveTab,
56
69
  subject,
57
70
  location,
58
71
  getData,
@@ -67,69 +80,90 @@ const TablePage = ({
67
80
  applications,
68
81
  subjectClear,
69
82
  APP,
83
+ getActiveTab,
84
+ refetchTrigger,
70
85
  });
71
86
 
87
+ const TableComponent = noTabs ? StandardTablePage : TablePageWithTabs;
88
+
89
+ const commonProps = {
90
+ t,
91
+ title: t(headerInfo?.title || viewConfig?.title || ""),
92
+ breadCrumbs: breadcrumbs,
93
+ location,
94
+ loading,
95
+ goTo,
96
+ columns: customColumns || columns,
97
+ data,
98
+ checkboxConfig: customCheckboxConfig || checkboxConfig,
99
+ APP,
100
+ getApiBaseUrl,
101
+ selectOptions,
102
+ selectFiltersConfig: customSelectFiltersConfig || selectFiltersConfig,
103
+ getRedirectLink,
104
+ filtersConfig: customFiltersConfig || _filtersConfig,
105
+ isMobile,
106
+ view: subject,
107
+ onDownload: onDownload && typeof onDownload === 'function' ? onDownload : undefined,
108
+ drawerTitle: t(headerInfo?.createTitle || viewConfig?.createTitle || ""),
109
+ headerTooltip: headerInfo?.tooltip,
110
+ drawerTooltip: headerInfo?.drawerTooltip,
111
+ externalOpenDrawer,
112
+ };
113
+
114
+ const tabsOnlyProps = noTabs ? {} : {
115
+ tabs: customTabs,
116
+ defaultActiveTab,
117
+ getActiveTab: handleActiveTabChange,
118
+ };
119
+
72
120
  return (
73
- <TablePageWithTabs
74
- t={t}
75
- title={t(headerInfo?.title || viewConfig?.title || "")}
76
- breadCrumbs={breadcrumbs}
77
- location={location}
78
- loading={loading}
79
- goTo={goTo}
80
- defaultActiveTab={"own"}
81
- columns={columns}
82
- data={data}
83
- checkboxConfig={checkboxConfig}
84
- APP={APP}
85
- getApiBaseUrl={getApiBaseUrl}
86
- selectOptions={selectOptions}
87
- selectFiltersConfig={selectFiltersConfig}
88
- getRedirectLink={getRedirectLink}
89
- filtersConfig={_filtersConfig}
90
- isMobile={isMobile}
91
- view={subject}
92
- getActiveTab={handleActiveTabChange}
93
- onDownload={onDownload && typeof onDownload === 'function' ? onDownload : undefined}
94
- drawerTitle={t(headerInfo?.createTitle || viewConfig?.createTitle || "")}
95
- >
96
- {({onDrawerClose}) => (
97
- <Create
98
- t={t}
99
- goTo={goTo}
100
- user={user}
101
- APP={APP}
102
- getApiBaseUrl={getApiBaseUrl}
103
- getAppHeader={getAppHeader}
104
- getData={formConfig.getFormData}
105
- saveData={formConfig.saveFormData}
106
- loading={formConfig.formLoading}
107
- onSubmitted={(type, m, data) => {
108
- if (data.datastakeId) {
109
- displayMessage(
110
- type,
111
- t("affirmations::subject-created-successfully") || m,
112
- );
113
- goTo(`/app/edit/${subject}/${data.datastakeId}`);
114
- }
115
- }}
116
- onCancel={onDrawerClose}
117
- query={formConfig.query}
118
- ajaxForms={formConfig.ajaxForms}
119
- changeAjaxForms={formConfig.changeAjaxForms}
120
- ajaxOptions={formConfig.ajaxOptions}
121
- changeAjaxOptions={formConfig.changeAjaxOptions}
122
- formData={formConfig.formData}
123
- formValue={formConfig.formValue}
124
- form={formConfig.form}
125
- namespace={formConfig?.namespace || formInfo?.namespace}
126
- view={formConfig?.view || formInfo.view}
127
- scope={formConfig?.scope || formInfo.scope}
128
- formType={formConfig?.formType || formInfo.formType}
129
- defaultData={defaultValues}
130
- />
131
- )}
132
- </TablePageWithTabs>
121
+ <>
122
+ <TableComponent
123
+ {...commonProps}
124
+ {...tabsOnlyProps}
125
+ >
126
+ {({onDrawerClose, setOpenCreateDrawer}) =>
127
+ customCreate ? customCreate({ onDrawerClose, setOpenCreateDrawer }) : (
128
+ <Create
129
+ t={t}
130
+ goTo={goTo}
131
+ user={user}
132
+ APP={APP}
133
+ getApiBaseUrl={getApiBaseUrl}
134
+ getAppHeader={getAppHeader}
135
+ getData={formConfig.getFormData}
136
+ saveData={formConfig.saveFormData}
137
+ loading={formConfig.formLoading}
138
+ onSubmitted={(type, m, data) => {
139
+ if (data.datastakeId) {
140
+ displayMessage(
141
+ type,
142
+ t("affirmations::subject-created-successfully") || m,
143
+ );
144
+ goTo(`/app/edit/${subject}/${data.datastakeId}`);
145
+ }
146
+ }}
147
+ onCancel={onDrawerClose}
148
+ query={formConfig.query}
149
+ ajaxForms={formConfig.ajaxForms}
150
+ changeAjaxForms={formConfig.changeAjaxForms}
151
+ ajaxOptions={formConfig.ajaxOptions}
152
+ changeAjaxOptions={formConfig.changeAjaxOptions}
153
+ formData={formConfig.formData}
154
+ formValue={formConfig.formValue}
155
+ form={formConfig.form}
156
+ namespace={formConfig?.namespace || formInfo?.namespace}
157
+ view={formConfig?.view || formInfo.view}
158
+ scope={formConfig?.scope || formInfo.scope}
159
+ formType={formConfig?.formType || formInfo.formType}
160
+ defaultData={defaultValues}
161
+ />
162
+ )
163
+ }
164
+ </TableComponent>
165
+ {customModal}
166
+ </>
133
167
  );
134
168
  };
135
169