datastake-daf 0.6.847 → 0.6.849
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/index.js +191 -57
- package/dist/hooks/index.js +9 -8
- package/dist/pages/index.js +5216 -5489
- package/dist/services/index.js +11 -11
- package/dist/utils/index.js +23 -12
- package/package.json +1 -1
- package/src/@daf/core/components/Screens/Admin/AdminModals/NewUser/index.jsx +1 -1
- package/src/@daf/core/components/Screens/Admin/AdminTables/AccountTable/helper.js +59 -77
- package/src/@daf/core/components/Screens/Admin/AdminViews/index.jsx +1 -8
- package/src/@daf/core/components/Screens/TableScreen/StandardTablePage/index.jsx +108 -0
- package/src/@daf/core/components/Screens/TableScreen/TablePageWithTabs/index.jsx +9 -2
- package/src/@daf/core/components/TableScreen/TablePageWithTabs/index.jsx +13 -3
- package/src/@daf/hooks/useSources.js +6 -4
- package/src/@daf/pages/Dashboards/ConflictManagement/components/RisksWidget/components/IncidentsTime/config.js +3 -0
- package/src/@daf/pages/Dashboards/ConflictManagement/components/RisksWidget/components/IncidentsTime/hook.js +69 -4
- package/src/@daf/pages/Dashboards/ConflictManagement/components/RisksWidget/components/IncidentsTime/index.js +29 -92
- package/src/@daf/pages/Dashboards/ConflictManagement/components/RisksWidget/components/ProblemSolver/hook.js +59 -34
- package/src/@daf/pages/Dashboards/ConflictManagement/components/RisksWidget/components/ProblemSolver/index.js +36 -69
- package/src/@daf/pages/Dashboards/ConflictManagement/components/RisksWidget/components/TerritorialDistribution/hook.js +56 -0
- package/src/@daf/pages/Dashboards/ConflictManagement/components/RisksWidget/components/TerritorialDistribution/index.js +50 -75
- package/src/@daf/pages/Dashboards/ConflictManagement/index.js +14 -14
- package/src/@daf/pages/Dashboards/SupplyChain/components/ChartsContainer/components/GenderDistribution/index.js +46 -51
- package/src/@daf/pages/Dashboards/SupplyChain/components/ChartsContainer/components/Identification/hook.js +20 -20
- package/src/@daf/pages/Dashboards/SupplyChain/components/ChartsContainer/components/Identification/index.js +26 -2
- package/src/@daf/pages/Dashboards/SupplyChain/index.jsx +0 -1
- package/src/@daf/pages/Dashboards/UserDashboard/components/DataChainOfCustody/index.jsx +2 -1
- package/src/@daf/pages/Dashboards/UserDashboard/index.jsx +1 -0
- package/src/@daf/pages/Dashboards/helper.js +25 -20
- package/src/@daf/pages/Edit/index.jsx +3 -0
- package/src/@daf/pages/Partners/columns.js +2 -2
- package/src/@daf/pages/Partners/config.js +22 -0
- package/src/@daf/pages/Partners/hook.js +7 -11
- package/src/@daf/pages/Partners/index.jsx +128 -140
- package/src/@daf/pages/ResetPassword/index.jsx +2 -3
- package/src/@daf/pages/SelfAssesment/components/OrgInformationTable/columns.js +3 -2
- package/src/@daf/pages/TablePage/hook.js +51 -42
- package/src/@daf/pages/TablePage/index.jsx +95 -61
- package/src/@daf/{core/components/Screens → pages}/Users/columns.js +15 -10
- package/src/@daf/{core/components/Screens → pages}/Users/config.js +6 -16
- package/src/@daf/{core/components/Screens → pages}/Users/create.jsx +1 -1
- package/src/@daf/pages/Users/index.jsx +129 -0
- package/src/@daf/pages/View/hooks/useCallToGetData.js +5 -1
- package/src/@daf/pages/View/index.jsx +6 -3
- package/src/@daf/pages/hook.js +26 -7
- package/src/@daf/services/EventsService.js +2 -2
- package/src/@daf/services/MineSiteService.js +2 -2
- package/src/@daf/services/OperatorService.js +2 -2
- package/src/@daf/services/PartnerService.js +2 -2
- package/src/@daf/services/SourceService.js +1 -1
- package/src/@daf/services/WorkersService.js +2 -2
- package/src/constants/locales/fr/translation.js +23 -11
- package/src/constants/locales/sp/translation.js +1 -0
- package/src/index.js +1 -1
- package/src/pages.js +1 -1
- package/dist/style/datastake/mapbox-gl.css +0 -330
- package/src/@daf/core/components/Screens/Users/index.jsx +0 -173
package/dist/services/index.js
CHANGED
|
@@ -1453,7 +1453,7 @@ class SourceService extends BaseService {
|
|
|
1453
1453
|
...rest
|
|
1454
1454
|
} = filters;
|
|
1455
1455
|
const params = {
|
|
1456
|
-
|
|
1456
|
+
...rest,
|
|
1457
1457
|
pagination: {
|
|
1458
1458
|
skip: page,
|
|
1459
1459
|
take: pageSize
|
|
@@ -1705,13 +1705,13 @@ class OperatorService extends BaseService {
|
|
|
1705
1705
|
}
|
|
1706
1706
|
});
|
|
1707
1707
|
}
|
|
1708
|
-
getData(id, sourceId,
|
|
1708
|
+
getData(id, sourceId, sources, version) {
|
|
1709
1709
|
return this.apiGet({
|
|
1710
1710
|
isApp: true,
|
|
1711
1711
|
url: `/stakeholder/${id}`,
|
|
1712
1712
|
params: {
|
|
1713
1713
|
authorId: sourceId,
|
|
1714
|
-
|
|
1714
|
+
sources,
|
|
1715
1715
|
version
|
|
1716
1716
|
}
|
|
1717
1717
|
});
|
|
@@ -1765,11 +1765,11 @@ class OperatorService extends BaseService {
|
|
|
1765
1765
|
var OperatorService$1 = createLazyService(OperatorService);
|
|
1766
1766
|
|
|
1767
1767
|
class PartnerService extends BaseService {
|
|
1768
|
-
get(
|
|
1768
|
+
get(params) {
|
|
1769
1769
|
return this.apiGet({
|
|
1770
1770
|
url: "/partner",
|
|
1771
1771
|
isApp: true,
|
|
1772
|
-
params
|
|
1772
|
+
params
|
|
1773
1773
|
});
|
|
1774
1774
|
}
|
|
1775
1775
|
create(data) {
|
|
@@ -1878,13 +1878,13 @@ class EventsService extends BaseService {
|
|
|
1878
1878
|
signal
|
|
1879
1879
|
});
|
|
1880
1880
|
}
|
|
1881
|
-
getData(id, sourceId,
|
|
1881
|
+
getData(id, sourceId, sources, version) {
|
|
1882
1882
|
return this.apiGet({
|
|
1883
1883
|
isApp: true,
|
|
1884
1884
|
url: `/event/${id}`,
|
|
1885
1885
|
params: {
|
|
1886
1886
|
authorId: sourceId,
|
|
1887
|
-
|
|
1887
|
+
sources,
|
|
1888
1888
|
version
|
|
1889
1889
|
}
|
|
1890
1890
|
});
|
|
@@ -1969,14 +1969,14 @@ class WorkersService extends BaseService {
|
|
|
1969
1969
|
}
|
|
1970
1970
|
});
|
|
1971
1971
|
}
|
|
1972
|
-
getData(id, sourceId,
|
|
1972
|
+
getData(id, sourceId, sources, version) {
|
|
1973
1973
|
return this.apiGet({
|
|
1974
1974
|
isApp: true,
|
|
1975
1975
|
url: `/stakeholder/${id}`,
|
|
1976
1976
|
params: {
|
|
1977
1977
|
authorId: sourceId,
|
|
1978
1978
|
version,
|
|
1979
|
-
|
|
1979
|
+
sources
|
|
1980
1980
|
}
|
|
1981
1981
|
});
|
|
1982
1982
|
}
|
|
@@ -2077,13 +2077,13 @@ class MineSiteService extends BaseService {
|
|
|
2077
2077
|
isApp: true
|
|
2078
2078
|
});
|
|
2079
2079
|
}
|
|
2080
|
-
getData(id, sourceId,
|
|
2080
|
+
getData(id, sourceId, sources, version) {
|
|
2081
2081
|
return this.apiGet({
|
|
2082
2082
|
url: `/location/${id}`,
|
|
2083
2083
|
isApp: true,
|
|
2084
2084
|
params: {
|
|
2085
2085
|
authorId: sourceId,
|
|
2086
|
-
|
|
2086
|
+
sources,
|
|
2087
2087
|
version
|
|
2088
2088
|
}
|
|
2089
2089
|
});
|
package/dist/utils/index.js
CHANGED
|
@@ -9256,9 +9256,11 @@ const fr = {
|
|
|
9256
9256
|
"merge-subjects": "Fusionner les sujets",
|
|
9257
9257
|
"FB00007": "Assurez-vous que cela a été correctement communiqué, car l’administrateur du compte détient des privilèges critiques de gestion des utilisateurs.",
|
|
9258
9258
|
"add-new": "Ajouter un nouveau",
|
|
9259
|
-
"All Data": "Toutes
|
|
9259
|
+
"All Data": "Toutes Données",
|
|
9260
9260
|
"Site": "Site",
|
|
9261
|
-
"
|
|
9261
|
+
"Self Assessment": "Auto-Evaluation",
|
|
9262
|
+
"Operator Review": "Examen d’Opérateur",
|
|
9263
|
+
"Production Sites": "Sites de Production",
|
|
9262
9264
|
"Type of account": "Type de compte",
|
|
9263
9265
|
"accounts": "Comptes",
|
|
9264
9266
|
"users": "Utilisateurs",
|
|
@@ -9275,14 +9277,15 @@ const fr = {
|
|
|
9275
9277
|
"link-details": "Détails du lien",
|
|
9276
9278
|
"Mine Site Details": "Détails du site minier",
|
|
9277
9279
|
"Number of Workers on Site": "Nombre de travailleurs sur le site",
|
|
9278
|
-
"Extraction Methods": "Méthodes d'
|
|
9280
|
+
"Extraction Methods": "Méthodes d'Extraction",
|
|
9279
9281
|
"Find Data": "Rechercher des données",
|
|
9280
|
-
"Mine Review": "
|
|
9282
|
+
"Mine Review": " Examen de Mine",
|
|
9283
|
+
"Partner Update": "Update Partenaires",
|
|
9281
9284
|
"Completion": "Achèvement",
|
|
9282
|
-
"Information Completeness": "Complétude de l'
|
|
9285
|
+
"Information Completeness": "Complétude de l'Information",
|
|
9283
9286
|
"Consolidated": "Consolidé",
|
|
9284
9287
|
"Datapoints": "Points de données",
|
|
9285
|
-
"Own Data": "Données
|
|
9288
|
+
"Own Data": "Données Propres",
|
|
9286
9289
|
"Create Worker": "Créer un travailleur",
|
|
9287
9290
|
"Workers": "Travailleurs",
|
|
9288
9291
|
"Census Update": "Mise à jour du recensement",
|
|
@@ -9341,15 +9344,15 @@ const fr = {
|
|
|
9341
9344
|
"Stakeholders Data": "Données des parties prenantes",
|
|
9342
9345
|
"Events Data": "Données d'événements",
|
|
9343
9346
|
"Accumulation": "Accumulation",
|
|
9344
|
-
"Create Mine Site": "Créer un
|
|
9347
|
+
"Create Mine Site": "Créer un Site Minier",
|
|
9345
9348
|
"Supply Chain Map": "Carte de la chaîne d'approvisionnement",
|
|
9346
9349
|
"Participants": "Participants",
|
|
9347
9350
|
"Trade Connections": "Connexions commerciales",
|
|
9348
|
-
"Key Information": "Informations
|
|
9351
|
+
"Key Information": "Informations Clés",
|
|
9349
9352
|
"Weekly": "Hebdomadaire",
|
|
9350
9353
|
"Monthly": "Mensuel",
|
|
9351
9354
|
"Daily": "Quotidien",
|
|
9352
|
-
"Workforce": "Main
|
|
9355
|
+
"Workforce": "Main d’Œuvre ",
|
|
9353
9356
|
"Trade Actors": "Acteurs commerciaux",
|
|
9354
9357
|
"Mining Sites": "Sites miniers",
|
|
9355
9358
|
"Primary Data Collection": "Collecte de données primaires",
|
|
@@ -9386,6 +9389,9 @@ const fr = {
|
|
|
9386
9389
|
"under-development": "Under development",
|
|
9387
9390
|
"under-development-description": "Our team is actively building this feature. It will be available in an upcoming release.",
|
|
9388
9391
|
"Confirm new subject": "Confirmer nouveau sujet",
|
|
9392
|
+
"registration": "Enregistrement",
|
|
9393
|
+
"scrutiny": "Contrôle",
|
|
9394
|
+
"Organisation Policies": "Politiques Organisationnelles",
|
|
9389
9395
|
affirmations: {
|
|
9390
9396
|
"subject-created-successfully": "Sujet créé avec succès.",
|
|
9391
9397
|
"information-saved-successfully": "Information sauvegardée avec succès.",
|
|
@@ -9597,7 +9603,7 @@ const fr = {
|
|
|
9597
9603
|
"New to Datastake": "Nouveau sur Datastake",
|
|
9598
9604
|
"Sign Up": "S'inscrire",
|
|
9599
9605
|
"CADD Dashboard": "Tableau de bord CADD",
|
|
9600
|
-
"Dashboard Title": "Tableau de
|
|
9606
|
+
"Dashboard Title": "Tableau de Bord",
|
|
9601
9607
|
View: "Vue",
|
|
9602
9608
|
"KYC Status": "Statut KYC",
|
|
9603
9609
|
Create: "Créer",
|
|
@@ -11065,7 +11071,7 @@ const fr = {
|
|
|
11065
11071
|
"Embassy of Norway": "Ambassade de Norvège",
|
|
11066
11072
|
Analytics: "Indicateurs",
|
|
11067
11073
|
Dismiss: "Ignorer",
|
|
11068
|
-
"Due Dilligence": "Diligence
|
|
11074
|
+
"Due Dilligence": "Diligence Raisonnable",
|
|
11069
11075
|
"Assess Mine Site": "Évaluer Site Minier",
|
|
11070
11076
|
"Assess Supply Chain Actor": "Évaluer Acteur de la Chaine d’Approvisionnement",
|
|
11071
11077
|
"Report an Incident": "Rapporter un Incident",
|
|
@@ -11157,7 +11163,12 @@ const fr = {
|
|
|
11157
11163
|
"date-added": "Date de Création",
|
|
11158
11164
|
"last-active": "Dernière Activité",
|
|
11159
11165
|
"key-indicators": "Indicateurs Clés"
|
|
11160
|
-
}
|
|
11166
|
+
},
|
|
11167
|
+
"Armed Groups": "Groupes Armés",
|
|
11168
|
+
"Identified Armed Groups": "Groupes Armés Identifiés",
|
|
11169
|
+
"Reported Incidents": "Incidents Signalés",
|
|
11170
|
+
"Conflict Map": "Carte des Conflits",
|
|
11171
|
+
"Conflict Management": "Gestion des Conflits"
|
|
11161
11172
|
};
|
|
11162
11173
|
|
|
11163
11174
|
const sp = {
|
package/package.json
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import React from "react";
|
|
2
1
|
import moment from "moment";
|
|
3
|
-
import { Tag, Tooltip
|
|
2
|
+
import { Tag, Tooltip } from "antd";
|
|
4
3
|
import { findOptions } from "../../../../../../../helpers/StringHelper.js";
|
|
5
4
|
import CustomIcon from "../../../../Icon/CustomIcon.jsx";
|
|
6
5
|
import MoreMenu from "../../../../Table/MoreMenu/index.jsx";
|
|
@@ -32,57 +31,35 @@ export const getColumns = ({
|
|
|
32
31
|
onResendInvitation = () => {},
|
|
33
32
|
onCanelVerification = () => {},
|
|
34
33
|
setAddAccountVisible = () => {},
|
|
35
|
-
|
|
36
|
-
selectedAccounts = [],
|
|
34
|
+
|
|
37
35
|
}) => {
|
|
38
36
|
const cols = [
|
|
39
|
-
|
|
40
|
-
title: "",
|
|
41
|
-
dataIndex: "select",
|
|
42
|
-
key: "select",
|
|
43
|
-
width: 50,
|
|
44
|
-
active: true,
|
|
45
|
-
pending: true,
|
|
46
|
-
suspended: true,
|
|
47
|
-
show: true,
|
|
48
|
-
render: (v, all) => {
|
|
49
|
-
if (all.empty) {
|
|
50
|
-
return <div className="daf-default-cell" />;
|
|
51
|
-
}
|
|
52
|
-
return (
|
|
53
|
-
<Checkbox
|
|
54
|
-
onChange={() =>
|
|
55
|
-
setSelectedAccounts((prev) => {
|
|
56
|
-
const isSelected = prev.some((p) => p.userId === all.userId);
|
|
57
|
-
if (isSelected) {
|
|
58
|
-
return prev.filter((p) => p.userId !== all.userId);
|
|
59
|
-
}
|
|
60
|
-
return [...prev, all];
|
|
61
|
-
})
|
|
62
|
-
}
|
|
63
|
-
checked={selectedAccounts.some((p) => p.userId === all.userId)}
|
|
64
|
-
disabled={selectedAccounts.length >= 3 && !selectedAccounts.some((p) => p.userId === all.userId)}
|
|
65
|
-
/>
|
|
66
|
-
);
|
|
67
|
-
},
|
|
68
|
-
},
|
|
37
|
+
|
|
69
38
|
{
|
|
70
39
|
title: t("ID"),
|
|
71
|
-
dataIndex: "userId",
|
|
72
40
|
key: "userId",
|
|
41
|
+
ellipsis: true,
|
|
42
|
+
width: 160,
|
|
73
43
|
active: true,
|
|
74
44
|
pending: true,
|
|
75
45
|
suspended: true,
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
46
|
+
render: (_, all) => {
|
|
47
|
+
if (all.empty) {
|
|
48
|
+
return <div className="daf-default-cell" />;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
const id =
|
|
52
|
+
all.status === "pending"
|
|
53
|
+
? all.users?.[0]?.userId ??
|
|
54
|
+
all.invitedUser?.userId ??
|
|
55
|
+
all.datastakeId ??
|
|
56
|
+
"--"
|
|
57
|
+
: all.userId ?? "--";
|
|
58
|
+
|
|
59
|
+
return <div className="daf-default-cell">{id}</div>;
|
|
84
60
|
},
|
|
85
|
-
|
|
61
|
+
},
|
|
62
|
+
|
|
86
63
|
{
|
|
87
64
|
title: t("Name"),
|
|
88
65
|
dataIndex: "name",
|
|
@@ -94,25 +71,28 @@ export const getColumns = ({
|
|
|
94
71
|
suspended: true,
|
|
95
72
|
},
|
|
96
73
|
{
|
|
97
|
-
title: t("
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
74
|
+
title: t("Type"),
|
|
75
|
+
key: "type",
|
|
76
|
+
render: (_, all) => {
|
|
77
|
+
if (all.empty) {
|
|
78
|
+
return <div className="daf-default-cell" />;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
const typeValue =
|
|
82
|
+
all.status === "pending"
|
|
83
|
+
? all.type ?? all.otherData?.interface
|
|
84
|
+
: all.apps?.[0]?.interface;
|
|
85
|
+
|
|
86
|
+
return renderTypeTag({
|
|
87
|
+
value: typeValue,
|
|
88
|
+
label: findOptions(typeValue, selectOptions.type),
|
|
89
|
+
});
|
|
111
90
|
},
|
|
112
91
|
active: true,
|
|
113
92
|
pending: true,
|
|
114
93
|
suspended: true,
|
|
115
|
-
|
|
94
|
+
},
|
|
95
|
+
|
|
116
96
|
{
|
|
117
97
|
title: t("Email"),
|
|
118
98
|
dataIndex: "admin",
|
|
@@ -165,26 +145,28 @@ export const getColumns = ({
|
|
|
165
145
|
pending: true,
|
|
166
146
|
suspended: false,
|
|
167
147
|
},
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
148
|
+
{
|
|
149
|
+
title: t("Email Verified"),
|
|
150
|
+
dataIndex: "emailVerified",
|
|
151
|
+
key: "emailVerified",
|
|
152
|
+
render: (verified, all) => {
|
|
153
|
+
if (all.empty) {
|
|
154
|
+
return <div className="daf-default-cell" />;
|
|
155
|
+
}
|
|
176
156
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
active: false,
|
|
185
|
-
pending: true,
|
|
186
|
-
suspended: false,
|
|
157
|
+
const isVerified = all.users?.[0]?.emailVerified ?? verified ?? all.emailVerfied;
|
|
158
|
+
|
|
159
|
+
return isVerified ? (
|
|
160
|
+
<Tag color="green">{t("Yes")}</Tag>
|
|
161
|
+
) : (
|
|
162
|
+
<Tag color="red">{t("No")}</Tag>
|
|
163
|
+
);
|
|
187
164
|
},
|
|
165
|
+
ellipsis: false,
|
|
166
|
+
active: false,
|
|
167
|
+
pending: true,
|
|
168
|
+
suspended: false,
|
|
169
|
+
},
|
|
188
170
|
{
|
|
189
171
|
title: t("Date"),
|
|
190
172
|
dataIndex: "createdAt",
|
|
@@ -154,21 +154,14 @@ function AdminView({
|
|
|
154
154
|
|
|
155
155
|
try {
|
|
156
156
|
const { data} = await updateAccount({ id: editData.id, data: newData });
|
|
157
|
-
console.log({data})
|
|
158
157
|
|
|
159
|
-
|
|
160
|
-
hasPendingUsers: pendingUsers.length > 0,
|
|
161
|
-
hasInviteFunction: !!inviteCompanyAccount,
|
|
162
|
-
pendingUsers: pendingUsers
|
|
163
|
-
});
|
|
158
|
+
|
|
164
159
|
|
|
165
160
|
if (pendingUsers.length > 0 && inviteCompanyAccount) {
|
|
166
161
|
console.log('Inviting pending users:', pendingUsers.length);
|
|
167
162
|
for (const user of pendingUsers) {
|
|
168
163
|
try {
|
|
169
164
|
const { pendingCompanyId, status, ...userDataToInvite } = user;
|
|
170
|
-
console.log('Sending invitation for:', user.email, userDataToInvite);
|
|
171
|
-
// Use the standalone invite function, don't mix it with updateAccount
|
|
172
165
|
// await inviteCompanyAccount({
|
|
173
166
|
// companyId: editData.id,
|
|
174
167
|
// data: {
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import React, { useState, useEffect, useRef } from 'react'
|
|
2
|
+
import { Drawer } from 'antd'
|
|
3
|
+
import Header from '../../../Header/index.jsx'
|
|
4
|
+
import BaseScreen from '../../BaseScreen/index.jsx'
|
|
5
|
+
import { CREATE_DRAWER_WIDTH } from '../../../../../../helpers/Forms.js'
|
|
6
|
+
import DrawerHeader from '../../../Header/DrawerHeader/index.jsx'
|
|
7
|
+
|
|
8
|
+
const StandardTablePage = ({
|
|
9
|
+
t= () => {},
|
|
10
|
+
title,
|
|
11
|
+
breadCrumbs,
|
|
12
|
+
location,
|
|
13
|
+
loading = false,
|
|
14
|
+
goTo = () => {},
|
|
15
|
+
checkboxConfig = {},
|
|
16
|
+
columns = [],
|
|
17
|
+
data = {},
|
|
18
|
+
APP,
|
|
19
|
+
getApiBaseUrl = () => {},
|
|
20
|
+
selectOptions = {},
|
|
21
|
+
selectFiltersConfig = {},
|
|
22
|
+
getRedirectLink = () => {},
|
|
23
|
+
filtersConfig = {},
|
|
24
|
+
isMobile,
|
|
25
|
+
view,
|
|
26
|
+
onDownload,
|
|
27
|
+
downloadDisabled = false,
|
|
28
|
+
drawerTitle = "",
|
|
29
|
+
onCreateModalClose = () => {},
|
|
30
|
+
headerTooltip,
|
|
31
|
+
drawerTooltip,
|
|
32
|
+
externalOpenDrawer = false,
|
|
33
|
+
children
|
|
34
|
+
}) => {
|
|
35
|
+
const params = new URLSearchParams(location?.search);
|
|
36
|
+
const [openCreateModal, setOpenCreateModal] = useState(params.has("create"));
|
|
37
|
+
|
|
38
|
+
useEffect(() => {
|
|
39
|
+
if (externalOpenDrawer) {
|
|
40
|
+
setOpenCreateModal(true);
|
|
41
|
+
}
|
|
42
|
+
}, [externalOpenDrawer]);
|
|
43
|
+
|
|
44
|
+
console.log({openCreateModal, externalOpenDrawer})
|
|
45
|
+
|
|
46
|
+
return (
|
|
47
|
+
<div className="semibold form-input-output daf-create-view">
|
|
48
|
+
<Header
|
|
49
|
+
title={t(title)}
|
|
50
|
+
breadcrumbs={breadCrumbs}
|
|
51
|
+
actionButtons={[
|
|
52
|
+
{
|
|
53
|
+
type: "primary",
|
|
54
|
+
onClick: () => setOpenCreateModal(true),
|
|
55
|
+
tooltip: t("New"),
|
|
56
|
+
icon: "Add",
|
|
57
|
+
},
|
|
58
|
+
]}
|
|
59
|
+
onDownload={(onDownload && typeof onDownload === 'function') ? onDownload : undefined}
|
|
60
|
+
downloadDisabled={downloadDisabled}
|
|
61
|
+
tooltip={headerTooltip}
|
|
62
|
+
/>
|
|
63
|
+
<BaseScreen
|
|
64
|
+
t={t}
|
|
65
|
+
checkboxConfig={checkboxConfig}
|
|
66
|
+
defaultTableFilters={{}}
|
|
67
|
+
columns={columns}
|
|
68
|
+
data={Array.isArray(data?.data) ? data : data?.data}
|
|
69
|
+
loading={loading}
|
|
70
|
+
location={location}
|
|
71
|
+
goTo={goTo}
|
|
72
|
+
APP={APP}
|
|
73
|
+
getApiBaseUrl={getApiBaseUrl}
|
|
74
|
+
selectOptions={selectOptions}
|
|
75
|
+
selectFilters={selectFiltersConfig}
|
|
76
|
+
view={view}
|
|
77
|
+
getRedirectLink={getRedirectLink}
|
|
78
|
+
defaultUrlParams={{}}
|
|
79
|
+
module={APP}
|
|
80
|
+
filtersConfig={filtersConfig}
|
|
81
|
+
isMobile={isMobile}
|
|
82
|
+
/>
|
|
83
|
+
{openCreateModal && (
|
|
84
|
+
<Drawer
|
|
85
|
+
destroyOnHidden
|
|
86
|
+
title={
|
|
87
|
+
<DrawerHeader
|
|
88
|
+
title={t(drawerTitle)}
|
|
89
|
+
/>
|
|
90
|
+
}
|
|
91
|
+
tooltip={drawerTooltip}
|
|
92
|
+
open={openCreateModal}
|
|
93
|
+
onClose={() => setOpenCreateModal(false)}
|
|
94
|
+
width={CREATE_DRAWER_WIDTH}
|
|
95
|
+
bodyStyle={{ padding: 0 }}
|
|
96
|
+
>
|
|
97
|
+
{typeof children === 'function'
|
|
98
|
+
? children({ onDrawerClose: () => setOpenCreateModal(false), open: openCreateModal })
|
|
99
|
+
: children
|
|
100
|
+
}
|
|
101
|
+
</Drawer>
|
|
102
|
+
)}
|
|
103
|
+
|
|
104
|
+
</div>
|
|
105
|
+
)
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export default StandardTablePage
|
|
@@ -32,6 +32,7 @@ const TablePageWithTabs = ({
|
|
|
32
32
|
tabs = [],
|
|
33
33
|
headerTooltip,
|
|
34
34
|
drawerTooltip,
|
|
35
|
+
externalOpenDrawer = false,
|
|
35
36
|
children
|
|
36
37
|
}) => {
|
|
37
38
|
const params = new URLSearchParams(location?.search);
|
|
@@ -47,7 +48,13 @@ const TablePageWithTabs = ({
|
|
|
47
48
|
getActiveTabRef.current(activeTab);
|
|
48
49
|
}, [activeTab]);
|
|
49
50
|
|
|
50
|
-
|
|
51
|
+
useEffect(() => {
|
|
52
|
+
if (externalOpenDrawer) {
|
|
53
|
+
setOpenCreateModal(true);
|
|
54
|
+
}
|
|
55
|
+
}, [externalOpenDrawer]);
|
|
56
|
+
|
|
57
|
+
return (
|
|
51
58
|
<div className="semibold form-input-output daf-create-view">
|
|
52
59
|
<Header
|
|
53
60
|
title={t(title)}
|
|
@@ -90,7 +97,7 @@ const TablePageWithTabs = ({
|
|
|
90
97
|
checkboxConfig={checkboxConfig}
|
|
91
98
|
defaultTableFilters={{}}
|
|
92
99
|
columns={columns}
|
|
93
|
-
data={data?.data}
|
|
100
|
+
data={Array.isArray(data?.data) ? data : data?.data}
|
|
94
101
|
loading={loading}
|
|
95
102
|
location={location}
|
|
96
103
|
goTo={goTo}
|
|
@@ -29,10 +29,13 @@ const TablePageWithTabs = ({
|
|
|
29
29
|
downloadDisabled = false,
|
|
30
30
|
drawerTitle = "",
|
|
31
31
|
onCreateModalClose = () => {},
|
|
32
|
+
noTabs = false,
|
|
32
33
|
children
|
|
33
34
|
}) => {
|
|
34
35
|
const params = new URLSearchParams(location?.search);
|
|
35
|
-
const [activeTab, setActiveTab] = useState(
|
|
36
|
+
const [activeTab, setActiveTab] = useState(
|
|
37
|
+
noTabs ? null : (params.get("tab") || defaultActiveTab)
|
|
38
|
+
);
|
|
36
39
|
const [openCreateModal, setOpenCreateModal] = useState(params.has("create"));
|
|
37
40
|
|
|
38
41
|
const getActiveTabRef = useRef(getActiveTab);
|
|
@@ -44,6 +47,12 @@ const TablePageWithTabs = ({
|
|
|
44
47
|
getActiveTabRef.current(activeTab);
|
|
45
48
|
}, [activeTab]);
|
|
46
49
|
|
|
50
|
+
useEffect(() => {
|
|
51
|
+
if (!noTabs) {
|
|
52
|
+
getActiveTabRef.current(activeTab);
|
|
53
|
+
}
|
|
54
|
+
}, [activeTab, noTabs]);
|
|
55
|
+
|
|
47
56
|
return (
|
|
48
57
|
<div className="semibold form-input-output daf-create-view">
|
|
49
58
|
<Header
|
|
@@ -60,7 +69,8 @@ const TablePageWithTabs = ({
|
|
|
60
69
|
onDownload={onDownload}
|
|
61
70
|
downloadDisabled={downloadDisabled}
|
|
62
71
|
/>
|
|
63
|
-
|
|
72
|
+
{!noTabs && (
|
|
73
|
+
<Tabs
|
|
64
74
|
items={[
|
|
65
75
|
{ label: t("All Data"), key: "all" },
|
|
66
76
|
{ label: t("Own Data"), key: "own" },
|
|
@@ -80,7 +90,7 @@ const TablePageWithTabs = ({
|
|
|
80
90
|
goTo(`${location.pathname}?${newParams.toString()}`);
|
|
81
91
|
}}
|
|
82
92
|
className="view-page-tabs mt-3"
|
|
83
|
-
/>
|
|
93
|
+
/>)}
|
|
84
94
|
<BaseScreen
|
|
85
95
|
t={t}
|
|
86
96
|
checkboxConfig={checkboxConfig}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useEffect, useState } from "react";
|
|
2
2
|
import SourceService from "../services/SourceService.js";
|
|
3
3
|
|
|
4
|
-
export default function useSource({ user = {}, t = () => {}, getData = () => {}, id }) {
|
|
4
|
+
export default function useSource({ user = {}, t = () => {}, getData = () => {}, id, stop }) {
|
|
5
5
|
const [loading, setLoading] = useState(true);
|
|
6
6
|
const [partners, setPartners] = useState([]);
|
|
7
7
|
const [selectedPartners, setSelectedPartners] = useState({ loading: true });
|
|
@@ -59,8 +59,10 @@ export default function useSource({ user = {}, t = () => {}, getData = () => {},
|
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
if(!stop) {
|
|
63
|
+
fetchPartners();
|
|
64
|
+
}
|
|
65
|
+
}, [user.language, id, stop]);
|
|
64
66
|
|
|
65
67
|
function handleSelectedPartnersChange(selected) {
|
|
66
68
|
setSelectedPartners((prev) => ({
|
|
@@ -82,7 +84,6 @@ export default function useSource({ user = {}, t = () => {}, getData = () => {},
|
|
|
82
84
|
|
|
83
85
|
export const useSources = ({type, id, user, t = () => {}, stop}) => {
|
|
84
86
|
function getData(params) {
|
|
85
|
-
if(stop) return Promise.resolve({ data: [] });
|
|
86
87
|
if(id !== undefined && id !== null) {
|
|
87
88
|
return SourceService.getSources({type, id});
|
|
88
89
|
} else {
|
|
@@ -95,6 +96,7 @@ export const useSources = ({type, id, user, t = () => {}, stop}) => {
|
|
|
95
96
|
t,
|
|
96
97
|
getData: getData,
|
|
97
98
|
id,
|
|
99
|
+
stop,
|
|
98
100
|
});
|
|
99
101
|
|
|
100
102
|
const informationSources = partners?.length > 0 ? partners?.length - 1 : 0;
|