@bigbinary/neeto-molecules 4.0.117 → 4.0.118
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/AuditLogs.js +86 -28
- package/dist/AuditLogs.js.map +1 -1
- package/dist/cjs/AuditLogs.js +83 -25
- package/dist/cjs/AuditLogs.js.map +1 -1
- package/package.json +1 -1
- package/src/translations/ar.json +2 -2
- package/src/translations/bg.json +2 -2
- package/src/translations/ca.json +2 -2
- package/src/translations/cs.json +2 -2
- package/src/translations/da.json +2 -2
- package/src/translations/de.json +2 -2
- package/src/translations/en.json +2 -2
- package/src/translations/es-MX.json +2 -2
- package/src/translations/es.json +2 -2
- package/src/translations/et.json +2 -2
- package/src/translations/fi.json +2 -2
- package/src/translations/fil.json +2 -2
- package/src/translations/fr.json +2 -2
- package/src/translations/he.json +2 -2
- package/src/translations/hi.json +2 -2
- package/src/translations/hr.json +2 -2
- package/src/translations/id.json +2 -2
- package/src/translations/it.json +2 -2
- package/src/translations/ja.json +2 -2
- package/src/translations/ko.json +2 -2
- package/src/translations/nl.json +2 -2
- package/src/translations/pl.json +2 -2
- package/src/translations/pt-BR.json +2 -2
- package/src/translations/pt.json +2 -2
- package/src/translations/ro.json +2 -2
- package/src/translations/ru.json +2 -2
- package/src/translations/sk.json +2 -2
- package/src/translations/sl.json +2 -2
- package/src/translations/sv.json +2 -2
- package/src/translations/th.json +2 -2
- package/src/translations/tr.json +2 -2
- package/src/translations/uk.json +2 -2
- package/src/translations/vi.json +2 -2
- package/src/translations/zh-CN.json +2 -2
- package/src/translations/zh-TW.json +2 -2
package/dist/AuditLogs.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { useMemo, createElement } from 'react';
|
|
3
|
+
import { snakeToCamelCase, humanize, isNotEmpty, isPresent, findBy } from '@bigbinary/neeto-cist';
|
|
4
|
+
import { LANGUAGE_OPTIONS, DEFAULT_STALE_TIME, DEFAULT_PAGE_INDEX } from '@bigbinary/neeto-commons-frontend/constants';
|
|
4
5
|
import { useQueryParams } from '@bigbinary/neeto-commons-frontend/react-utils';
|
|
5
6
|
import NoData from '@bigbinary/neetoui/NoData';
|
|
6
7
|
import Spinner from '@bigbinary/neetoui/Spinner';
|
|
@@ -21,12 +22,11 @@ import GoogleCalendar from '@bigbinary/neeto-icons/misc/GoogleCalendar';
|
|
|
21
22
|
import Zoom from '@bigbinary/neeto-icons/misc/Zoom';
|
|
22
23
|
import Stripe from '@bigbinary/neeto-icons/misc/Stripe';
|
|
23
24
|
import StripeTypeface from '@bigbinary/neeto-icons/misc/StripeTypeface';
|
|
24
|
-
import { values } from 'ramda';
|
|
25
|
+
import { indexBy, prop, values, identity } from 'ramda';
|
|
25
26
|
import { globalProps } from '@bigbinary/neeto-commons-frontend/initializers';
|
|
26
27
|
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
27
28
|
import { useQuery } from '@tanstack/react-query';
|
|
28
29
|
import axios from 'axios';
|
|
29
|
-
import { createElement } from 'react';
|
|
30
30
|
import './index-DAYCJu79.js';
|
|
31
31
|
import './_commonjsHelpers-BFTU3MAI.js';
|
|
32
32
|
import './inject-css-C2dztUxs.js';
|
|
@@ -53,6 +53,8 @@ import '@bigbinary/neetoui/Input';
|
|
|
53
53
|
|
|
54
54
|
var _AUDIT_ICON_MAP;
|
|
55
55
|
var AUDIT_LOGS_QUERY_KEY = "audit-logs";
|
|
56
|
+
var COUNTRIES_LIST_QUERY_KEY = "countries-list"; // Same key as that used in "neeto-team-members" for cache reuse.
|
|
57
|
+
|
|
56
58
|
var ACTIONS = {
|
|
57
59
|
INVITED_USERS: "invitedUsers",
|
|
58
60
|
USER_SIGNED_UP: "userSignedUp",
|
|
@@ -100,9 +102,35 @@ var Trans = function Trans(_ref) {
|
|
|
100
102
|
});
|
|
101
103
|
};
|
|
102
104
|
|
|
103
|
-
var
|
|
105
|
+
var createFieldValueFormatter = function createFieldValueFormatter(_ref) {
|
|
106
|
+
var field = _ref.field,
|
|
107
|
+
countriesMap = _ref.countriesMap;
|
|
108
|
+
switch (field) {
|
|
109
|
+
case "language":
|
|
110
|
+
return function (value) {
|
|
111
|
+
var _findBy;
|
|
112
|
+
return ((_findBy = findBy({
|
|
113
|
+
value: value
|
|
114
|
+
}, LANGUAGE_OPTIONS)) === null || _findBy === void 0 ? void 0 : _findBy.label) || value;
|
|
115
|
+
};
|
|
116
|
+
case "countryIdentifier":
|
|
117
|
+
return function (value) {
|
|
118
|
+
var _countriesMap$value;
|
|
119
|
+
return ((_countriesMap$value = countriesMap[value]) === null || _countriesMap$value === void 0 ? void 0 : _countriesMap$value.name) || value;
|
|
120
|
+
};
|
|
121
|
+
default:
|
|
122
|
+
return identity;
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
var formatChangedFields = function formatChangedFields(_ref2) {
|
|
126
|
+
var changes = _ref2.changes,
|
|
127
|
+
countriesMap = _ref2.countriesMap;
|
|
104
128
|
var fields = Object.keys(changes).map(function (field, index) {
|
|
105
129
|
var change = changes[field];
|
|
130
|
+
var valueFormatter = createFieldValueFormatter({
|
|
131
|
+
field: field,
|
|
132
|
+
countriesMap: countriesMap
|
|
133
|
+
});
|
|
106
134
|
var element;
|
|
107
135
|
if (change && isPresent(change.from)) {
|
|
108
136
|
element = /*#__PURE__*/jsx("span", {
|
|
@@ -110,19 +138,19 @@ var formatChangedFields = function formatChangedFields(changes) {
|
|
|
110
138
|
i18nKey: "neetoMolecules.auditLogs.text.updatedFieldsWithPreviousValue",
|
|
111
139
|
additionalValues: {
|
|
112
140
|
field: humanize(field),
|
|
113
|
-
from: change.from,
|
|
114
|
-
to: change.to
|
|
141
|
+
from: valueFormatter(change.from),
|
|
142
|
+
to: valueFormatter(change.to)
|
|
115
143
|
}
|
|
116
144
|
})
|
|
117
145
|
}, field);
|
|
118
146
|
} else {
|
|
119
147
|
element = /*#__PURE__*/jsx("span", {
|
|
120
148
|
children: /*#__PURE__*/jsx(Trans, {
|
|
149
|
+
i18nKey: "neetoMolecules.auditLogs.text.updatedFieldsWithNewValue",
|
|
121
150
|
additionalValues: {
|
|
122
151
|
field: humanize(field),
|
|
123
|
-
to: change.to
|
|
124
|
-
}
|
|
125
|
-
i18nKey: "neetoMolecules.auditLogs.text.updatedFieldsWithNewValue"
|
|
152
|
+
to: valueFormatter(change.to)
|
|
153
|
+
}
|
|
126
154
|
})
|
|
127
155
|
}, field);
|
|
128
156
|
}
|
|
@@ -135,21 +163,23 @@ var formatChangedFields = function formatChangedFields(changes) {
|
|
|
135
163
|
var transformAction = function transformAction(action) {
|
|
136
164
|
return snakeToCamelCase(action.replace("audit_logs.organization.", ""));
|
|
137
165
|
};
|
|
138
|
-
var constructAuditLogText = function constructAuditLogText(
|
|
139
|
-
var
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
166
|
+
var constructAuditLogText = function constructAuditLogText(_ref3) {
|
|
167
|
+
var _ref3$countriesMap = _ref3.countriesMap,
|
|
168
|
+
countriesMap = _ref3$countriesMap === void 0 ? {} : _ref3$countriesMap,
|
|
169
|
+
action = _ref3.action,
|
|
170
|
+
performedBy = _ref3.performedBy,
|
|
171
|
+
_ref3$emails = _ref3.emails,
|
|
172
|
+
emails = _ref3$emails === void 0 ? [] : _ref3$emails,
|
|
173
|
+
firstName = _ref3.firstName,
|
|
174
|
+
lastName = _ref3.lastName,
|
|
175
|
+
organizationRole = _ref3.organizationRole,
|
|
176
|
+
email = _ref3.email,
|
|
177
|
+
_ref3$changes = _ref3.changes,
|
|
178
|
+
changes = _ref3$changes === void 0 ? {} : _ref3$changes,
|
|
179
|
+
status = _ref3.status,
|
|
180
|
+
message = _ref3.message,
|
|
181
|
+
errorMessage = _ref3.errorMessage,
|
|
182
|
+
addedPermissions = _ref3.addedPermissions;
|
|
153
183
|
switch (action) {
|
|
154
184
|
case ACTIONS.INVITED_USERS:
|
|
155
185
|
{
|
|
@@ -184,7 +214,10 @@ var constructAuditLogText = function constructAuditLogText(_ref) {
|
|
|
184
214
|
}
|
|
185
215
|
case ACTIONS.UPDATED_USER:
|
|
186
216
|
{
|
|
187
|
-
var changedFields = formatChangedFields(
|
|
217
|
+
var changedFields = formatChangedFields({
|
|
218
|
+
changes: changes,
|
|
219
|
+
countriesMap: countriesMap
|
|
220
|
+
});
|
|
188
221
|
var affectedUser = email || "user";
|
|
189
222
|
return /*#__PURE__*/jsx(Trans, {
|
|
190
223
|
additionalComponents: {
|
|
@@ -223,7 +256,10 @@ var constructAuditLogText = function constructAuditLogText(_ref) {
|
|
|
223
256
|
}
|
|
224
257
|
case ACTIONS.UPDATED_USER_PROFILE:
|
|
225
258
|
{
|
|
226
|
-
var _changedFields = formatChangedFields(
|
|
259
|
+
var _changedFields = formatChangedFields({
|
|
260
|
+
changes: changes,
|
|
261
|
+
countriesMap: countriesMap
|
|
262
|
+
});
|
|
227
263
|
return /*#__PURE__*/jsx(Trans, {
|
|
228
264
|
additionalComponents: {
|
|
229
265
|
ChangedFields: /*#__PURE__*/jsx(Fragment, {
|
|
@@ -358,11 +394,13 @@ var constructAuditLogText = function constructAuditLogText(_ref) {
|
|
|
358
394
|
}
|
|
359
395
|
}
|
|
360
396
|
};
|
|
397
|
+
var indexById = indexBy(prop("id"));
|
|
361
398
|
|
|
362
399
|
function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
363
400
|
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
364
401
|
var Card = function Card(_ref) {
|
|
365
402
|
var auditLog = _ref.auditLog,
|
|
403
|
+
countriesMap = _ref.countriesMap,
|
|
366
404
|
index = _ref.index,
|
|
367
405
|
totalCount = _ref.totalCount;
|
|
368
406
|
var key = auditLog.key,
|
|
@@ -373,6 +411,7 @@ var Card = function Card(_ref) {
|
|
|
373
411
|
var performedBy = (performer === null || performer === void 0 ? void 0 : performer.name) || "";
|
|
374
412
|
var performedAt = dateFormat.dateTime(updatedAt);
|
|
375
413
|
var auditText = constructAuditLogText(_objectSpread$2({
|
|
414
|
+
countriesMap: countriesMap,
|
|
376
415
|
action: action,
|
|
377
416
|
performedBy: performedBy
|
|
378
417
|
}, metadata));
|
|
@@ -413,8 +452,12 @@ var fetchAuditLogs = function fetchAuditLogs(params) {
|
|
|
413
452
|
params: params
|
|
414
453
|
});
|
|
415
454
|
};
|
|
455
|
+
var fetchCountries = function fetchCountries() {
|
|
456
|
+
return axios.get("neeto_team_members/profile/countries");
|
|
457
|
+
};
|
|
416
458
|
var auditLogsApi = {
|
|
417
|
-
fetchAuditLogs: fetchAuditLogs
|
|
459
|
+
fetchAuditLogs: fetchAuditLogs,
|
|
460
|
+
fetchCountries: fetchCountries
|
|
418
461
|
};
|
|
419
462
|
|
|
420
463
|
function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
@@ -431,6 +474,14 @@ var useFetchAuditLogs = function useFetchAuditLogs(_ref) {
|
|
|
431
474
|
}, options));
|
|
432
475
|
};
|
|
433
476
|
|
|
477
|
+
var useFetchCountries = function useFetchCountries() {
|
|
478
|
+
return useQuery({
|
|
479
|
+
queryKey: [COUNTRIES_LIST_QUERY_KEY],
|
|
480
|
+
queryFn: auditLogsApi.fetchCountries,
|
|
481
|
+
staleTime: DEFAULT_STALE_TIME
|
|
482
|
+
});
|
|
483
|
+
};
|
|
484
|
+
|
|
434
485
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
435
486
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
436
487
|
var AuditLogs = function AuditLogs(_ref) {
|
|
@@ -456,6 +507,12 @@ var AuditLogs = function AuditLogs(_ref) {
|
|
|
456
507
|
totalCount = _useFetchAuditLogs$da4 === void 0 ? 0 : _useFetchAuditLogs$da4,
|
|
457
508
|
isLoading = _useFetchAuditLogs.isLoading,
|
|
458
509
|
isFetching = _useFetchAuditLogs.isFetching;
|
|
510
|
+
var _useFetchCountries = useFetchCountries(),
|
|
511
|
+
countriesData = _useFetchCountries.data;
|
|
512
|
+
var countriesList = countriesData === null || countriesData === void 0 ? void 0 : countriesData.countries;
|
|
513
|
+
var countriesMap = useMemo(function () {
|
|
514
|
+
return countriesList ? indexById(countriesList) : {};
|
|
515
|
+
}, [countriesList]);
|
|
459
516
|
if (isLoading || isFetching) {
|
|
460
517
|
return /*#__PURE__*/jsx("div", {
|
|
461
518
|
className: "flex h-full w-full items-center justify-center",
|
|
@@ -471,6 +528,7 @@ var AuditLogs = function AuditLogs(_ref) {
|
|
|
471
528
|
children: auditLogs.map(function (auditLog, index) {
|
|
472
529
|
return /*#__PURE__*/createElement(Card, {
|
|
473
530
|
auditLog: auditLog,
|
|
531
|
+
countriesMap: countriesMap,
|
|
474
532
|
index: index,
|
|
475
533
|
key: auditLog.id,
|
|
476
534
|
totalCount: auditLogs.length
|
package/dist/AuditLogs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuditLogs.js","sources":["../src/components/AuditLogs/constants.js","../src/components/AuditLogs/Trans.jsx","../src/components/AuditLogs/utils.jsx","../src/components/AuditLogs/Card.jsx","../src/components/AuditLogs/api.js","../src/components/AuditLogs/useAuditLogsApi.js","../src/components/AuditLogs/index.jsx"],"sourcesContent":["import {\n User,\n UserAdd,\n UserCircle,\n UserRemove,\n UserSettings,\n CustomDomain,\n} from \"neetoicons\";\nimport { GoogleCalendar, Zoom, Stripe, StripeTypeface } from \"neetoicons/misc\";\n\nexport const AUDIT_LOGS_QUERY_KEY = \"audit-logs\";\n\nexport const ACTIONS = {\n INVITED_USERS: \"invitedUsers\",\n USER_SIGNED_UP: \"userSignedUp\",\n UPDATED_USER: \"updatedUser\",\n BULK_UPDATE_USERS: \"bulkUpdateUsers\",\n UPDATED_USER_PROFILE: \"updatedUserProfile\",\n CREATED_ROLE: \"createdRole\",\n UPDATED_ROLE: \"updatedRole\",\n DELETED_ROLE: \"deletedRole\",\n CONNECTED_GOOGLE_CALENDER: \"connectedGoogleCalendar\",\n DISCONNECTED_GOOGLE_CALENDER: \"disconnectedGoogleCalendar\",\n CONNECTED_STRIPE_ACCOUNT: \"connectedStripeAccount\",\n DISCONNECTED_STRIPE_ACCOUNT: \"disconnectedStripeAccount\",\n CONNECTED_ZOOM_INTEGRATION: \"connectedZoomIntegration\",\n DISCONNECTED_ZOOM_INTEGRATION: \"disconnectedZoomIntegration\",\n CONNECTED_CUSTOM_DOMAIN: \"connectedCustomDomain\",\n};\n\nexport const ADDITIONAL_DETAILS_KEYS = {\n ACTION: \"action\",\n PERFORMED_BY: \"performedBy\",\n PERFORMED_AT: \"performedAt\",\n PRODUCT: \"product\",\n};\n\nexport const AUDIT_ICON_MAP = {\n [ACTIONS.INVITED_USERS]: UserCircle,\n [ACTIONS.USER_SIGNED_UP]: UserAdd,\n [ACTIONS.UPDATED_USER]: User,\n [ACTIONS.BULK_UPDATE_USERS]: User,\n [ACTIONS.UPDATED_USER_PROFILE]: UserSettings,\n [ACTIONS.CREATED_ROLE]: UserAdd,\n [ACTIONS.UPDATED_ROLE]: UserSettings,\n [ACTIONS.DELETED_ROLE]: UserRemove,\n [ACTIONS.CONNECTED_GOOGLE_CALENDER]: GoogleCalendar,\n [ACTIONS.DISCONNECTED_GOOGLE_CALENDER]: GoogleCalendar,\n [ACTIONS.CONNECTED_STRIPE_ACCOUNT]: StripeTypeface,\n [ACTIONS.DISCONNECTED_STRIPE_ACCOUNT]: Stripe,\n [ACTIONS.CONNECTED_ZOOM_INTEGRATION]: Zoom,\n [ACTIONS.DISCONNECTED_ZOOM_INTEGRATION]: Zoom,\n [ACTIONS.CONNECTED_CUSTOM_DOMAIN]: CustomDomain,\n};\n\nexport const AUDIT_LOGS_PAGE_SIZE = 12;\n","import { globalProps } from \"neetocommons/initializers\";\nimport { Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { Trans as ReactTrans } from \"react-i18next\";\n\nconst Trans = ({\n i18nKey,\n additionalValues = {},\n additionalComponents = {},\n}) => (\n <ReactTrans\n {...{ i18nKey }}\n components={{\n Code: (\n <Typography\n className=\"neeto-ui-rounded-md neeto-ui-bg-gray-100 p-1\"\n component=\"code\"\n style=\"body3\"\n />\n ),\n Semibold: (\n <Typography\n className=\"n inline-block text-sm font-medium\"\n component=\"p\"\n />\n ),\n ...additionalComponents,\n }}\n values={{\n productSuffix: globalProps.appName,\n ...additionalValues,\n }}\n />\n);\n\nTrans.propTypes = {\n i18nKey: PropTypes.string.isRequired,\n additionalValues: PropTypes.object,\n additionalComponents: PropTypes.objectOf(PropTypes.element),\n};\n\nexport default Trans;\n","import { snakeToCamelCase, isNotEmpty, isPresent, humanize } from \"neetocist\";\nimport { values } from \"ramda\";\n\nimport { ACTIONS } from \"./constants\";\nimport Trans from \"./Trans\";\n\nconst formatChangedFields = changes => {\n const fields = Object.keys(changes).map((field, index) => {\n const change = changes[field];\n let element;\n\n if (change && isPresent(change.from)) {\n element = (\n <span key={field}>\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.updatedFieldsWithPreviousValue\"\n additionalValues={{\n field: humanize(field),\n from: change.from,\n to: change.to,\n }}\n />\n </span>\n );\n } else {\n element = (\n <span key={field}>\n <Trans\n additionalValues={{ field: humanize(field), to: change.to }}\n i18nKey=\"neetoMolecules.auditLogs.text.updatedFieldsWithNewValue\"\n />\n </span>\n );\n }\n\n return index > 0\n ? [<span key={`sep-${field}`}>, </span>, element]\n : element;\n });\n\n return fields.flat();\n};\n\nexport const transformAction = action =>\n snakeToCamelCase(action.replace(\"audit_logs.organization.\", \"\"));\n\nexport const constructAuditLogText = ({\n action,\n performedBy,\n emails = [],\n firstName,\n lastName,\n organizationRole,\n email,\n changes = {},\n status,\n message,\n errorMessage,\n addedPermissions,\n}) => {\n switch (action) {\n case ACTIONS.INVITED_USERS: {\n if (status === \"success\" && isNotEmpty(emails)) {\n const emailList = emails.join(\", \");\n\n return (\n <Trans\n additionalValues={{ performedBy, emailList }}\n i18nKey=\"neetoMolecules.auditLogs.text.invitedUsers\"\n />\n );\n }\n\n return (\n <Trans\n additionalValues={{ performedBy, errorMessage }}\n i18nKey=\"neetoMolecules.auditLogs.text.invitedUsersFailed\"\n />\n );\n }\n\n case ACTIONS.USER_SIGNED_UP: {\n const name = [firstName, lastName].filter(Boolean).join(\" \");\n const userIdentifier = name || organizationRole || email || \"User\";\n\n return (\n <Trans\n additionalValues={{ userIdentifier }}\n i18nKey=\"neetoMolecules.auditLogs.text.userSignedUp\"\n />\n );\n }\n\n case ACTIONS.UPDATED_USER: {\n const changedFields = formatChangedFields(changes);\n const affectedUser = email || \"user\";\n\n return (\n <Trans\n additionalComponents={{ ChangedFields: <>{changedFields}</> }}\n additionalValues={{ performedBy, affectedUser, changedFields }}\n i18nKey=\"neetoMolecules.auditLogs.text.updatedUser\"\n />\n );\n }\n\n case ACTIONS.BULK_UPDATE_USERS: {\n if (status === \"success\" && isNotEmpty(emails)) {\n const emailList = emails.join(\", \");\n\n return (\n <Trans\n additionalValues={{ performedBy, emailList, message }}\n i18nKey=\"neetoMolecules.auditLogs.text.bulkUpdateUsers\"\n />\n );\n }\n\n return (\n <Trans\n additionalValues={{ performedBy, errorMessage }}\n i18nKey=\"neetoMolecules.auditLogs.text.bulkUpdateUsersFailed\"\n />\n );\n }\n\n case ACTIONS.UPDATED_USER_PROFILE: {\n const changedFields = formatChangedFields(changes);\n\n return (\n <Trans\n additionalComponents={{ ChangedFields: <>{changedFields}</> }}\n additionalValues={{ performedBy }}\n i18nKey=\"neetoMolecules.auditLogs.text.updatedUserProfile\"\n />\n );\n }\n\n case ACTIONS.CREATED_ROLE: {\n const roleName = organizationRole || \"role\";\n\n return (\n <Trans\n additionalValues={{ performedBy, roleName }}\n i18nKey=\"neetoMolecules.auditLogs.text.createdRole\"\n />\n );\n }\n\n case ACTIONS.UPDATED_ROLE: {\n const roleName = organizationRole || \"role\";\n const permissionsArray = values(addedPermissions).map(permission =>\n humanize(permission.split(\".\")[1])\n );\n const addedPermissionsText = permissionsArray.join(\", \");\n\n return (\n // Disabling as we're using the same key for both singular and plural cases\n // eslint-disable-next-line @bigbinary/neeto/no-missing-localization\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.updatedRole\"\n additionalValues={{\n performedBy,\n roleName,\n addedPermissionsText,\n count: permissionsArray.length,\n }}\n />\n );\n }\n\n case ACTIONS.CONNECTED_GOOGLE_CALENDER: {\n return (\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.connectedGoogleCalender\"\n additionalValues={{\n performedBy,\n emailAddress: changes.emailAddress,\n }}\n />\n );\n }\n\n case ACTIONS.DISCONNECTED_GOOGLE_CALENDER: {\n return (\n <Trans\n additionalValues={{ performedBy }}\n i18nKey=\"neetoMolecules.auditLogs.text.disconnectedGoogleCalender\"\n />\n );\n }\n\n case ACTIONS.CONNECTED_STRIPE_ACCOUNT: {\n return (\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.connectedStripeAccount\"\n additionalValues={{\n performedBy,\n stripeAccountId: changes.stripeAccountId,\n }}\n />\n );\n }\n\n case ACTIONS.DISCONNECTED_STRIPE_ACCOUNT: {\n return (\n <Trans\n additionalValues={{ performedBy }}\n i18nKey=\"neetoMolecules.auditLogs.text.disconnectedStripeAccount\"\n />\n );\n }\n\n case ACTIONS.CONNECTED_ZOOM_INTEGRATION: {\n return (\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.connectedZoomAccount\"\n additionalValues={{\n performedBy,\n zoomAccountId: changes.zoomAccountId,\n }}\n />\n );\n }\n\n case ACTIONS.DISCONNECTED_ZOOM_INTEGRATION: {\n return (\n <Trans\n additionalValues={{ performedBy }}\n i18nKey=\"neetoMolecules.auditLogs.text.disconnectedZoomAccount\"\n />\n );\n }\n\n case ACTIONS.CONNECTED_CUSTOM_DOMAIN: {\n return (\n <Trans\n additionalValues={{ performedBy, hostname: changes.hostname }}\n i18nKey=\"neetoMolecules.auditLogs.text.connectedCustomDomain\"\n />\n );\n }\n\n case ACTIONS.DELETED_ROLE: {\n const roleName = organizationRole || \"role\";\n\n return (\n <Trans\n additionalValues={{ performedBy, roleName }}\n i18nKey=\"neetoMolecules.auditLogs.text.deletedRole\"\n />\n );\n }\n\n default: {\n return (\n <Trans\n additionalValues={{ performedBy }}\n i18nKey=\"neetoMolecules.auditLogs.text.performedAction\"\n />\n );\n }\n }\n};\n","import classnames from \"classnames\";\nimport { dateFormat } from \"neetocommons/utils\";\nimport { Typography } from \"neetoui\";\n\nimport { AUDIT_ICON_MAP } from \"./constants\";\nimport { constructAuditLogText, transformAction } from \"./utils\";\n\nconst Card = ({ auditLog, index, totalCount }) => {\n const { key, metadata, performer, updatedAt } = auditLog;\n\n const action = transformAction(key);\n const performedBy = performer?.name || \"\";\n const performedAt = dateFormat.dateTime(updatedAt);\n\n const auditText = constructAuditLogText({\n action,\n performedBy,\n ...metadata,\n });\n\n const Icon = AUDIT_ICON_MAP[action];\n\n return (\n <div\n data-cy=\"audit-log-card\"\n className={classnames(\n \"align-items-center neeto-ui-border-gray-200 flex w-full gap-x-4 border-b border-l border-r p-3\",\n {\n \"rounded-t-md border-t\": index === 0,\n \"rounded-b-md\": index === totalCount - 1,\n }\n )}\n >\n <div className=\"neeto-ui-rounded-full neeto-ui-bg-gray-100 flex size-10 flex-shrink-0 items-center justify-center\">\n <Icon className=\"neeto-ui-text-gray-600 flex-shrink-0\" size={22} />\n </div>\n <div className=\"flex flex-col gap-y-2\" data-cy=\"audit-log-content\">\n <Typography\n component=\"span\"\n data-cy=\"audit-log-text\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {auditText}\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-500 m-0\"\n data-cy=\"audit-log-timestamp\"\n style=\"body3\"\n >\n {performedAt}\n </Typography>\n </div>\n </div>\n );\n};\n\nexport default Card;\n","import axios from \"axios\";\n\nconst fetchAuditLogs = params => axios.get(\"api/v1/audit_logs\", { params });\n\nconst auditLogsApi = { fetchAuditLogs };\n\nexport default auditLogsApi;\n","import { useQuery } from \"@tanstack/react-query\";\n\nimport auditLogsApi from \"./api\";\nimport { AUDIT_LOGS_QUERY_KEY } from \"./constants\";\n\nexport const useFetchAuditLogs = ({ params, options = {} }) =>\n useQuery({\n queryKey: [AUDIT_LOGS_QUERY_KEY, params],\n queryFn: () => auditLogsApi.fetchAuditLogs(params),\n ...options,\n });\n","import { isPresent } from \"neetocist\";\nimport { DEFAULT_PAGE_INDEX } from \"neetocommons/constants\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport { NoData, Spinner, Pagination } from \"neetoui\";\nimport propTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Container from \"components/Container\";\nimport Header from \"components/Header\";\n\nimport Card from \"./Card\";\nimport { AUDIT_LOGS_PAGE_SIZE } from \"./constants\";\nimport { useFetchAuditLogs } from \"./useAuditLogsApi\";\n\nconst AuditLogs = ({ headerProps, noDataHelpText, noDataTitle }) => {\n const { t } = useTranslation();\n\n const { page = DEFAULT_PAGE_INDEX } = useQueryParams();\n\n const {\n data: { auditLogs = [], totalCount = 0 } = {},\n isLoading,\n isFetching,\n } = useFetchAuditLogs({ params: { page, pageSize: AUDIT_LOGS_PAGE_SIZE } });\n\n if (isLoading || isFetching) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <Container className=\"relative\">\n <Header title={t(\"neetoMolecules.auditLogs.title\")} {...headerProps} />\n {isPresent(auditLogs) ? (\n <div className=\"w-full\">\n {auditLogs.map((auditLog, index) => (\n <Card\n {...{ auditLog, index }}\n key={auditLog.id}\n totalCount={auditLogs.length}\n />\n ))}\n </div>\n ) : (\n <div className=\"flex h-full w-full items-center justify-center\">\n <NoData\n helpText={noDataHelpText}\n title={noDataTitle || t(\"neetoMolecules.auditLogs.noData\")}\n />\n </div>\n )}\n <Pagination\n className=\"neeto-ui-bg-white fixed bottom-5 right-6\"\n count={totalCount}\n pageNo={parseInt(page)}\n pageSize={AUDIT_LOGS_PAGE_SIZE}\n />\n </Container>\n );\n};\n\nAuditLogs.propTypes = {\n /**\n * Props to be passed to the `Header` component.\n */\n headerProps: propTypes.object,\n /**\n * Help text to be displayed to the `NoData` component when there are no audit logs.\n */\n noDataHelpText: propTypes.string,\n /**\n * Title to be passed to the `NoData` component when there are no audit logs.\n */\n noDataTitle: propTypes.string,\n};\n\nexport default AuditLogs;\n"],"names":["AUDIT_LOGS_QUERY_KEY","ACTIONS","INVITED_USERS","USER_SIGNED_UP","UPDATED_USER","BULK_UPDATE_USERS","UPDATED_USER_PROFILE","CREATED_ROLE","UPDATED_ROLE","DELETED_ROLE","CONNECTED_GOOGLE_CALENDER","DISCONNECTED_GOOGLE_CALENDER","CONNECTED_STRIPE_ACCOUNT","DISCONNECTED_STRIPE_ACCOUNT","CONNECTED_ZOOM_INTEGRATION","DISCONNECTED_ZOOM_INTEGRATION","CONNECTED_CUSTOM_DOMAIN","AUDIT_ICON_MAP","_AUDIT_ICON_MAP","_defineProperty","UserCircle","UserAdd","User","UserSettings","UserRemove","GoogleCalendar","StripeTypeface","Stripe","Zoom","CustomDomain","AUDIT_LOGS_PAGE_SIZE","Trans","_ref","i18nKey","_ref$additionalValues","additionalValues","_ref$additionalCompon","additionalComponents","_jsx","ReactTrans","components","_objectSpread","Code","Typography","className","component","style","Semibold","values","productSuffix","globalProps","appName","formatChangedFields","changes","fields","Object","keys","map","field","index","change","element","isPresent","from","children","humanize","to","concat","flat","transformAction","action","snakeToCamelCase","replace","constructAuditLogText","performedBy","_ref$emails","emails","firstName","lastName","organizationRole","email","_ref$changes","status","message","errorMessage","addedPermissions","isNotEmpty","emailList","join","name","filter","Boolean","userIdentifier","changedFields","affectedUser","ChangedFields","_Fragment","roleName","permissionsArray","permission","split","addedPermissionsText","count","length","emailAddress","stripeAccountId","zoomAccountId","hostname","Card","auditLog","totalCount","key","metadata","performer","updatedAt","performedAt","dateFormat","dateTime","auditText","Icon","_jsxs","classnames","size","lineHeight","fetchAuditLogs","params","axios","get","auditLogsApi","useFetchAuditLogs","_ref$options","options","useQuery","queryKey","queryFn","AuditLogs","headerProps","noDataHelpText","noDataTitle","_useTranslation","useTranslation","t","_useQueryParams","useQueryParams","_useQueryParams$page","page","DEFAULT_PAGE_INDEX","_useFetchAuditLogs","pageSize","_useFetchAuditLogs$da","data","_useFetchAuditLogs$da2","_useFetchAuditLogs$da3","auditLogs","_useFetchAuditLogs$da4","isLoading","isFetching","Spinner","Container","Header","title","_createElement","id","NoData","helpText","Pagination","pageNo","parseInt"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AuditLogs.js","sources":["../src/components/AuditLogs/constants.js","../src/components/AuditLogs/Trans.jsx","../src/components/AuditLogs/utils.jsx","../src/components/AuditLogs/Card.jsx","../src/components/AuditLogs/api.js","../src/components/AuditLogs/useAuditLogsApi.js","../src/components/AuditLogs/useCountriesApi.js","../src/components/AuditLogs/index.jsx"],"sourcesContent":["import {\n User,\n UserAdd,\n UserCircle,\n UserRemove,\n UserSettings,\n CustomDomain,\n} from \"neetoicons\";\nimport { GoogleCalendar, Zoom, Stripe, StripeTypeface } from \"neetoicons/misc\";\n\nexport const AUDIT_LOGS_QUERY_KEY = \"audit-logs\";\nexport const COUNTRIES_LIST_QUERY_KEY = \"countries-list\"; // Same key as that used in \"neeto-team-members\" for cache reuse.\n\nexport const ACTIONS = {\n INVITED_USERS: \"invitedUsers\",\n USER_SIGNED_UP: \"userSignedUp\",\n UPDATED_USER: \"updatedUser\",\n BULK_UPDATE_USERS: \"bulkUpdateUsers\",\n UPDATED_USER_PROFILE: \"updatedUserProfile\",\n CREATED_ROLE: \"createdRole\",\n UPDATED_ROLE: \"updatedRole\",\n DELETED_ROLE: \"deletedRole\",\n CONNECTED_GOOGLE_CALENDER: \"connectedGoogleCalendar\",\n DISCONNECTED_GOOGLE_CALENDER: \"disconnectedGoogleCalendar\",\n CONNECTED_STRIPE_ACCOUNT: \"connectedStripeAccount\",\n DISCONNECTED_STRIPE_ACCOUNT: \"disconnectedStripeAccount\",\n CONNECTED_ZOOM_INTEGRATION: \"connectedZoomIntegration\",\n DISCONNECTED_ZOOM_INTEGRATION: \"disconnectedZoomIntegration\",\n CONNECTED_CUSTOM_DOMAIN: \"connectedCustomDomain\",\n};\n\nexport const ADDITIONAL_DETAILS_KEYS = {\n ACTION: \"action\",\n PERFORMED_BY: \"performedBy\",\n PERFORMED_AT: \"performedAt\",\n PRODUCT: \"product\",\n};\n\nexport const AUDIT_ICON_MAP = {\n [ACTIONS.INVITED_USERS]: UserCircle,\n [ACTIONS.USER_SIGNED_UP]: UserAdd,\n [ACTIONS.UPDATED_USER]: User,\n [ACTIONS.BULK_UPDATE_USERS]: User,\n [ACTIONS.UPDATED_USER_PROFILE]: UserSettings,\n [ACTIONS.CREATED_ROLE]: UserAdd,\n [ACTIONS.UPDATED_ROLE]: UserSettings,\n [ACTIONS.DELETED_ROLE]: UserRemove,\n [ACTIONS.CONNECTED_GOOGLE_CALENDER]: GoogleCalendar,\n [ACTIONS.DISCONNECTED_GOOGLE_CALENDER]: GoogleCalendar,\n [ACTIONS.CONNECTED_STRIPE_ACCOUNT]: StripeTypeface,\n [ACTIONS.DISCONNECTED_STRIPE_ACCOUNT]: Stripe,\n [ACTIONS.CONNECTED_ZOOM_INTEGRATION]: Zoom,\n [ACTIONS.DISCONNECTED_ZOOM_INTEGRATION]: Zoom,\n [ACTIONS.CONNECTED_CUSTOM_DOMAIN]: CustomDomain,\n};\n\nexport const AUDIT_LOGS_PAGE_SIZE = 12;\n","import { globalProps } from \"neetocommons/initializers\";\nimport { Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { Trans as ReactTrans } from \"react-i18next\";\n\nconst Trans = ({\n i18nKey,\n additionalValues = {},\n additionalComponents = {},\n}) => (\n <ReactTrans\n {...{ i18nKey }}\n components={{\n Code: (\n <Typography\n className=\"neeto-ui-rounded-md neeto-ui-bg-gray-100 p-1\"\n component=\"code\"\n style=\"body3\"\n />\n ),\n Semibold: (\n <Typography\n className=\"n inline-block text-sm font-medium\"\n component=\"p\"\n />\n ),\n ...additionalComponents,\n }}\n values={{\n productSuffix: globalProps.appName,\n ...additionalValues,\n }}\n />\n);\n\nTrans.propTypes = {\n i18nKey: PropTypes.string.isRequired,\n additionalValues: PropTypes.object,\n additionalComponents: PropTypes.objectOf(PropTypes.element),\n};\n\nexport default Trans;\n","import {\n snakeToCamelCase,\n isNotEmpty,\n isPresent,\n humanize,\n findBy,\n} from \"neetocist\";\nimport { LANGUAGE_OPTIONS } from \"neetocommons/constants\";\nimport { identity, indexBy, prop, values } from \"ramda\";\n\nimport { ACTIONS } from \"./constants\";\nimport Trans from \"./Trans\";\n\nconst createFieldValueFormatter = ({ field, countriesMap }) => {\n switch (field) {\n case \"language\":\n return value => findBy({ value }, LANGUAGE_OPTIONS)?.label || value;\n case \"countryIdentifier\":\n return value => countriesMap[value]?.name || value;\n default:\n return identity;\n }\n};\n\nconst formatChangedFields = ({ changes, countriesMap }) => {\n const fields = Object.keys(changes).map((field, index) => {\n const change = changes[field];\n const valueFormatter = createFieldValueFormatter({ field, countriesMap });\n let element;\n\n if (change && isPresent(change.from)) {\n element = (\n <span key={field}>\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.updatedFieldsWithPreviousValue\"\n additionalValues={{\n field: humanize(field),\n from: valueFormatter(change.from),\n to: valueFormatter(change.to),\n }}\n />\n </span>\n );\n } else {\n element = (\n <span key={field}>\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.updatedFieldsWithNewValue\"\n additionalValues={{\n field: humanize(field),\n to: valueFormatter(change.to),\n }}\n />\n </span>\n );\n }\n\n return index > 0\n ? [<span key={`sep-${field}`}>, </span>, element]\n : element;\n });\n\n return fields.flat();\n};\n\nexport const transformAction = action =>\n snakeToCamelCase(action.replace(\"audit_logs.organization.\", \"\"));\n\nexport const constructAuditLogText = ({\n countriesMap = {},\n action,\n performedBy,\n emails = [],\n firstName,\n lastName,\n organizationRole,\n email,\n changes = {},\n status,\n message,\n errorMessage,\n addedPermissions,\n}) => {\n switch (action) {\n case ACTIONS.INVITED_USERS: {\n if (status === \"success\" && isNotEmpty(emails)) {\n const emailList = emails.join(\", \");\n\n return (\n <Trans\n additionalValues={{ performedBy, emailList }}\n i18nKey=\"neetoMolecules.auditLogs.text.invitedUsers\"\n />\n );\n }\n\n return (\n <Trans\n additionalValues={{ performedBy, errorMessage }}\n i18nKey=\"neetoMolecules.auditLogs.text.invitedUsersFailed\"\n />\n );\n }\n\n case ACTIONS.USER_SIGNED_UP: {\n const name = [firstName, lastName].filter(Boolean).join(\" \");\n const userIdentifier = name || organizationRole || email || \"User\";\n\n return (\n <Trans\n additionalValues={{ userIdentifier }}\n i18nKey=\"neetoMolecules.auditLogs.text.userSignedUp\"\n />\n );\n }\n\n case ACTIONS.UPDATED_USER: {\n const changedFields = formatChangedFields({ changes, countriesMap });\n const affectedUser = email || \"user\";\n\n return (\n <Trans\n additionalComponents={{ ChangedFields: <>{changedFields}</> }}\n additionalValues={{ performedBy, affectedUser, changedFields }}\n i18nKey=\"neetoMolecules.auditLogs.text.updatedUser\"\n />\n );\n }\n\n case ACTIONS.BULK_UPDATE_USERS: {\n if (status === \"success\" && isNotEmpty(emails)) {\n const emailList = emails.join(\", \");\n\n return (\n <Trans\n additionalValues={{ performedBy, emailList, message }}\n i18nKey=\"neetoMolecules.auditLogs.text.bulkUpdateUsers\"\n />\n );\n }\n\n return (\n <Trans\n additionalValues={{ performedBy, errorMessage }}\n i18nKey=\"neetoMolecules.auditLogs.text.bulkUpdateUsersFailed\"\n />\n );\n }\n\n case ACTIONS.UPDATED_USER_PROFILE: {\n const changedFields = formatChangedFields({ changes, countriesMap });\n\n return (\n <Trans\n additionalComponents={{ ChangedFields: <>{changedFields}</> }}\n additionalValues={{ performedBy }}\n i18nKey=\"neetoMolecules.auditLogs.text.updatedUserProfile\"\n />\n );\n }\n\n case ACTIONS.CREATED_ROLE: {\n const roleName = organizationRole || \"role\";\n\n return (\n <Trans\n additionalValues={{ performedBy, roleName }}\n i18nKey=\"neetoMolecules.auditLogs.text.createdRole\"\n />\n );\n }\n\n case ACTIONS.UPDATED_ROLE: {\n const roleName = organizationRole || \"role\";\n const permissionsArray = values(addedPermissions).map(permission =>\n humanize(permission.split(\".\")[1])\n );\n const addedPermissionsText = permissionsArray.join(\", \");\n\n return (\n // Disabling as we're using the same key for both singular and plural cases\n // eslint-disable-next-line @bigbinary/neeto/no-missing-localization\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.updatedRole\"\n additionalValues={{\n performedBy,\n roleName,\n addedPermissionsText,\n count: permissionsArray.length,\n }}\n />\n );\n }\n\n case ACTIONS.CONNECTED_GOOGLE_CALENDER: {\n return (\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.connectedGoogleCalender\"\n additionalValues={{\n performedBy,\n emailAddress: changes.emailAddress,\n }}\n />\n );\n }\n\n case ACTIONS.DISCONNECTED_GOOGLE_CALENDER: {\n return (\n <Trans\n additionalValues={{ performedBy }}\n i18nKey=\"neetoMolecules.auditLogs.text.disconnectedGoogleCalender\"\n />\n );\n }\n\n case ACTIONS.CONNECTED_STRIPE_ACCOUNT: {\n return (\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.connectedStripeAccount\"\n additionalValues={{\n performedBy,\n stripeAccountId: changes.stripeAccountId,\n }}\n />\n );\n }\n\n case ACTIONS.DISCONNECTED_STRIPE_ACCOUNT: {\n return (\n <Trans\n additionalValues={{ performedBy }}\n i18nKey=\"neetoMolecules.auditLogs.text.disconnectedStripeAccount\"\n />\n );\n }\n\n case ACTIONS.CONNECTED_ZOOM_INTEGRATION: {\n return (\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.connectedZoomAccount\"\n additionalValues={{\n performedBy,\n zoomAccountId: changes.zoomAccountId,\n }}\n />\n );\n }\n\n case ACTIONS.DISCONNECTED_ZOOM_INTEGRATION: {\n return (\n <Trans\n additionalValues={{ performedBy }}\n i18nKey=\"neetoMolecules.auditLogs.text.disconnectedZoomAccount\"\n />\n );\n }\n\n case ACTIONS.CONNECTED_CUSTOM_DOMAIN: {\n return (\n <Trans\n additionalValues={{ performedBy, hostname: changes.hostname }}\n i18nKey=\"neetoMolecules.auditLogs.text.connectedCustomDomain\"\n />\n );\n }\n\n case ACTIONS.DELETED_ROLE: {\n const roleName = organizationRole || \"role\";\n\n return (\n <Trans\n additionalValues={{ performedBy, roleName }}\n i18nKey=\"neetoMolecules.auditLogs.text.deletedRole\"\n />\n );\n }\n\n default: {\n return (\n <Trans\n additionalValues={{ performedBy }}\n i18nKey=\"neetoMolecules.auditLogs.text.performedAction\"\n />\n );\n }\n }\n};\n\nexport const indexById = indexBy(prop(\"id\"));\n","import classnames from \"classnames\";\nimport { dateFormat } from \"neetocommons/utils\";\nimport { Typography } from \"neetoui\";\n\nimport { AUDIT_ICON_MAP } from \"./constants\";\nimport { constructAuditLogText, transformAction } from \"./utils\";\n\nconst Card = ({ auditLog, countriesMap, index, totalCount }) => {\n const { key, metadata, performer, updatedAt } = auditLog;\n\n const action = transformAction(key);\n const performedBy = performer?.name || \"\";\n const performedAt = dateFormat.dateTime(updatedAt);\n\n const auditText = constructAuditLogText({\n countriesMap,\n action,\n performedBy,\n ...metadata,\n });\n\n const Icon = AUDIT_ICON_MAP[action];\n\n return (\n <div\n data-cy=\"audit-log-card\"\n className={classnames(\n \"align-items-center neeto-ui-border-gray-200 flex w-full gap-x-4 border-b border-l border-r p-3\",\n {\n \"rounded-t-md border-t\": index === 0,\n \"rounded-b-md\": index === totalCount - 1,\n }\n )}\n >\n <div className=\"neeto-ui-rounded-full neeto-ui-bg-gray-100 flex size-10 flex-shrink-0 items-center justify-center\">\n <Icon className=\"neeto-ui-text-gray-600 flex-shrink-0\" size={22} />\n </div>\n <div className=\"flex flex-col gap-y-2\" data-cy=\"audit-log-content\">\n <Typography\n component=\"span\"\n data-cy=\"audit-log-text\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {auditText}\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-500 m-0\"\n data-cy=\"audit-log-timestamp\"\n style=\"body3\"\n >\n {performedAt}\n </Typography>\n </div>\n </div>\n );\n};\n\nexport default Card;\n","import axios from \"axios\";\n\nconst fetchAuditLogs = params => axios.get(\"api/v1/audit_logs\", { params });\nconst fetchCountries = () => axios.get(\"neeto_team_members/profile/countries\");\n\nconst auditLogsApi = { fetchAuditLogs, fetchCountries };\n\nexport default auditLogsApi;\n","import { useQuery } from \"@tanstack/react-query\";\n\nimport auditLogsApi from \"./api\";\nimport { AUDIT_LOGS_QUERY_KEY } from \"./constants\";\n\nexport const useFetchAuditLogs = ({ params, options = {} }) =>\n useQuery({\n queryKey: [AUDIT_LOGS_QUERY_KEY, params],\n queryFn: () => auditLogsApi.fetchAuditLogs(params),\n ...options,\n });\n","import { useQuery } from \"@tanstack/react-query\";\nimport { DEFAULT_STALE_TIME } from \"neetocommons/constants\";\n\nimport auditLogsApi from \"./api\";\nimport { COUNTRIES_LIST_QUERY_KEY } from \"./constants\";\n\nexport const useFetchCountries = () =>\n useQuery({\n queryKey: [COUNTRIES_LIST_QUERY_KEY],\n queryFn: auditLogsApi.fetchCountries,\n staleTime: DEFAULT_STALE_TIME,\n });\n","import { useMemo } from \"react\";\n\nimport { isPresent } from \"neetocist\";\nimport { DEFAULT_PAGE_INDEX } from \"neetocommons/constants\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport { NoData, Spinner, Pagination } from \"neetoui\";\nimport propTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Container from \"components/Container\";\nimport Header from \"components/Header\";\n\nimport Card from \"./Card\";\nimport { AUDIT_LOGS_PAGE_SIZE } from \"./constants\";\nimport { useFetchAuditLogs } from \"./useAuditLogsApi\";\nimport { useFetchCountries } from \"./useCountriesApi\";\nimport { indexById } from \"./utils\";\n\nconst AuditLogs = ({ headerProps, noDataHelpText, noDataTitle }) => {\n const { t } = useTranslation();\n\n const { page = DEFAULT_PAGE_INDEX } = useQueryParams();\n\n const {\n data: { auditLogs = [], totalCount = 0 } = {},\n isLoading,\n isFetching,\n } = useFetchAuditLogs({ params: { page, pageSize: AUDIT_LOGS_PAGE_SIZE } });\n\n const { data: countriesData } = useFetchCountries();\n const countriesList = countriesData?.countries;\n const countriesMap = useMemo(\n () => (countriesList ? indexById(countriesList) : {}),\n [countriesList]\n );\n\n if (isLoading || isFetching) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <Container className=\"relative\">\n <Header title={t(\"neetoMolecules.auditLogs.title\")} {...headerProps} />\n {isPresent(auditLogs) ? (\n <div className=\"w-full\">\n {auditLogs.map((auditLog, index) => (\n <Card\n {...{ auditLog, countriesMap, index }}\n key={auditLog.id}\n totalCount={auditLogs.length}\n />\n ))}\n </div>\n ) : (\n <div className=\"flex h-full w-full items-center justify-center\">\n <NoData\n helpText={noDataHelpText}\n title={noDataTitle || t(\"neetoMolecules.auditLogs.noData\")}\n />\n </div>\n )}\n <Pagination\n className=\"neeto-ui-bg-white fixed bottom-5 right-6\"\n count={totalCount}\n pageNo={parseInt(page)}\n pageSize={AUDIT_LOGS_PAGE_SIZE}\n />\n </Container>\n );\n};\n\nAuditLogs.propTypes = {\n /**\n * Props to be passed to the `Header` component.\n */\n headerProps: propTypes.object,\n /**\n * Help text to be displayed to the `NoData` component when there are no audit logs.\n */\n noDataHelpText: propTypes.string,\n /**\n * Title to be passed to the `NoData` component when there are no audit logs.\n */\n noDataTitle: propTypes.string,\n};\n\nexport default AuditLogs;\n"],"names":["AUDIT_LOGS_QUERY_KEY","COUNTRIES_LIST_QUERY_KEY","ACTIONS","INVITED_USERS","USER_SIGNED_UP","UPDATED_USER","BULK_UPDATE_USERS","UPDATED_USER_PROFILE","CREATED_ROLE","UPDATED_ROLE","DELETED_ROLE","CONNECTED_GOOGLE_CALENDER","DISCONNECTED_GOOGLE_CALENDER","CONNECTED_STRIPE_ACCOUNT","DISCONNECTED_STRIPE_ACCOUNT","CONNECTED_ZOOM_INTEGRATION","DISCONNECTED_ZOOM_INTEGRATION","CONNECTED_CUSTOM_DOMAIN","AUDIT_ICON_MAP","_AUDIT_ICON_MAP","_defineProperty","UserCircle","UserAdd","User","UserSettings","UserRemove","GoogleCalendar","StripeTypeface","Stripe","Zoom","CustomDomain","AUDIT_LOGS_PAGE_SIZE","Trans","_ref","i18nKey","_ref$additionalValues","additionalValues","_ref$additionalCompon","additionalComponents","_jsx","ReactTrans","components","_objectSpread","Code","Typography","className","component","style","Semibold","values","productSuffix","globalProps","appName","createFieldValueFormatter","field","countriesMap","value","_findBy","findBy","LANGUAGE_OPTIONS","label","_countriesMap$value","name","identity","formatChangedFields","_ref2","changes","fields","Object","keys","map","index","change","valueFormatter","element","isPresent","from","children","humanize","to","concat","flat","transformAction","action","snakeToCamelCase","replace","constructAuditLogText","_ref3","_ref3$countriesMap","performedBy","_ref3$emails","emails","firstName","lastName","organizationRole","email","_ref3$changes","status","message","errorMessage","addedPermissions","isNotEmpty","emailList","join","filter","Boolean","userIdentifier","changedFields","affectedUser","ChangedFields","_Fragment","roleName","permissionsArray","permission","split","addedPermissionsText","count","length","emailAddress","stripeAccountId","zoomAccountId","hostname","indexById","indexBy","prop","Card","auditLog","totalCount","key","metadata","performer","updatedAt","performedAt","dateFormat","dateTime","auditText","Icon","_jsxs","classnames","size","lineHeight","fetchAuditLogs","params","axios","get","fetchCountries","auditLogsApi","useFetchAuditLogs","_ref$options","options","useQuery","queryKey","queryFn","useFetchCountries","staleTime","DEFAULT_STALE_TIME","AuditLogs","headerProps","noDataHelpText","noDataTitle","_useTranslation","useTranslation","t","_useQueryParams","useQueryParams","_useQueryParams$page","page","DEFAULT_PAGE_INDEX","_useFetchAuditLogs","pageSize","_useFetchAuditLogs$da","data","_useFetchAuditLogs$da2","_useFetchAuditLogs$da3","auditLogs","_useFetchAuditLogs$da4","isLoading","isFetching","_useFetchCountries","countriesData","countriesList","countries","useMemo","Spinner","Container","Header","title","_createElement","id","NoData","helpText","Pagination","pageNo","parseInt"],"mappings":"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"}
|
package/dist/cjs/AuditLogs.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
4
|
+
var React = require('react');
|
|
4
5
|
var neetoCist = require('@bigbinary/neeto-cist');
|
|
5
6
|
var constants = require('@bigbinary/neeto-commons-frontend/constants');
|
|
6
7
|
var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
@@ -28,7 +29,6 @@ var initializers = require('@bigbinary/neeto-commons-frontend/initializers');
|
|
|
28
29
|
var jsxRuntime = require('react/jsx-runtime');
|
|
29
30
|
var reactQuery = require('@tanstack/react-query');
|
|
30
31
|
var axios = require('axios');
|
|
31
|
-
var React = require('react');
|
|
32
32
|
require('./index-JY2zVpnv.js');
|
|
33
33
|
require('./_commonjsHelpers-BJu3ubxk.js');
|
|
34
34
|
require('./inject-css-B6qYtOJe.js');
|
|
@@ -55,6 +55,8 @@ require('@bigbinary/neetoui/Input');
|
|
|
55
55
|
|
|
56
56
|
var _AUDIT_ICON_MAP;
|
|
57
57
|
var AUDIT_LOGS_QUERY_KEY = "audit-logs";
|
|
58
|
+
var COUNTRIES_LIST_QUERY_KEY = "countries-list"; // Same key as that used in "neeto-team-members" for cache reuse.
|
|
59
|
+
|
|
58
60
|
var ACTIONS = {
|
|
59
61
|
INVITED_USERS: "invitedUsers",
|
|
60
62
|
USER_SIGNED_UP: "userSignedUp",
|
|
@@ -102,9 +104,35 @@ var Trans = function Trans(_ref) {
|
|
|
102
104
|
});
|
|
103
105
|
};
|
|
104
106
|
|
|
105
|
-
var
|
|
107
|
+
var createFieldValueFormatter = function createFieldValueFormatter(_ref) {
|
|
108
|
+
var field = _ref.field,
|
|
109
|
+
countriesMap = _ref.countriesMap;
|
|
110
|
+
switch (field) {
|
|
111
|
+
case "language":
|
|
112
|
+
return function (value) {
|
|
113
|
+
var _findBy;
|
|
114
|
+
return ((_findBy = neetoCist.findBy({
|
|
115
|
+
value: value
|
|
116
|
+
}, constants.LANGUAGE_OPTIONS)) === null || _findBy === void 0 ? void 0 : _findBy.label) || value;
|
|
117
|
+
};
|
|
118
|
+
case "countryIdentifier":
|
|
119
|
+
return function (value) {
|
|
120
|
+
var _countriesMap$value;
|
|
121
|
+
return ((_countriesMap$value = countriesMap[value]) === null || _countriesMap$value === void 0 ? void 0 : _countriesMap$value.name) || value;
|
|
122
|
+
};
|
|
123
|
+
default:
|
|
124
|
+
return ramda.identity;
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
var formatChangedFields = function formatChangedFields(_ref2) {
|
|
128
|
+
var changes = _ref2.changes,
|
|
129
|
+
countriesMap = _ref2.countriesMap;
|
|
106
130
|
var fields = Object.keys(changes).map(function (field, index) {
|
|
107
131
|
var change = changes[field];
|
|
132
|
+
var valueFormatter = createFieldValueFormatter({
|
|
133
|
+
field: field,
|
|
134
|
+
countriesMap: countriesMap
|
|
135
|
+
});
|
|
108
136
|
var element;
|
|
109
137
|
if (change && neetoCist.isPresent(change.from)) {
|
|
110
138
|
element = /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
@@ -112,19 +140,19 @@ var formatChangedFields = function formatChangedFields(changes) {
|
|
|
112
140
|
i18nKey: "neetoMolecules.auditLogs.text.updatedFieldsWithPreviousValue",
|
|
113
141
|
additionalValues: {
|
|
114
142
|
field: neetoCist.humanize(field),
|
|
115
|
-
from: change.from,
|
|
116
|
-
to: change.to
|
|
143
|
+
from: valueFormatter(change.from),
|
|
144
|
+
to: valueFormatter(change.to)
|
|
117
145
|
}
|
|
118
146
|
})
|
|
119
147
|
}, field);
|
|
120
148
|
} else {
|
|
121
149
|
element = /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
122
150
|
children: /*#__PURE__*/jsxRuntime.jsx(Trans, {
|
|
151
|
+
i18nKey: "neetoMolecules.auditLogs.text.updatedFieldsWithNewValue",
|
|
123
152
|
additionalValues: {
|
|
124
153
|
field: neetoCist.humanize(field),
|
|
125
|
-
to: change.to
|
|
126
|
-
}
|
|
127
|
-
i18nKey: "neetoMolecules.auditLogs.text.updatedFieldsWithNewValue"
|
|
154
|
+
to: valueFormatter(change.to)
|
|
155
|
+
}
|
|
128
156
|
})
|
|
129
157
|
}, field);
|
|
130
158
|
}
|
|
@@ -137,21 +165,23 @@ var formatChangedFields = function formatChangedFields(changes) {
|
|
|
137
165
|
var transformAction = function transformAction(action) {
|
|
138
166
|
return neetoCist.snakeToCamelCase(action.replace("audit_logs.organization.", ""));
|
|
139
167
|
};
|
|
140
|
-
var constructAuditLogText = function constructAuditLogText(
|
|
141
|
-
var
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
168
|
+
var constructAuditLogText = function constructAuditLogText(_ref3) {
|
|
169
|
+
var _ref3$countriesMap = _ref3.countriesMap,
|
|
170
|
+
countriesMap = _ref3$countriesMap === void 0 ? {} : _ref3$countriesMap,
|
|
171
|
+
action = _ref3.action,
|
|
172
|
+
performedBy = _ref3.performedBy,
|
|
173
|
+
_ref3$emails = _ref3.emails,
|
|
174
|
+
emails = _ref3$emails === void 0 ? [] : _ref3$emails,
|
|
175
|
+
firstName = _ref3.firstName,
|
|
176
|
+
lastName = _ref3.lastName,
|
|
177
|
+
organizationRole = _ref3.organizationRole,
|
|
178
|
+
email = _ref3.email,
|
|
179
|
+
_ref3$changes = _ref3.changes,
|
|
180
|
+
changes = _ref3$changes === void 0 ? {} : _ref3$changes,
|
|
181
|
+
status = _ref3.status,
|
|
182
|
+
message = _ref3.message,
|
|
183
|
+
errorMessage = _ref3.errorMessage,
|
|
184
|
+
addedPermissions = _ref3.addedPermissions;
|
|
155
185
|
switch (action) {
|
|
156
186
|
case ACTIONS.INVITED_USERS:
|
|
157
187
|
{
|
|
@@ -186,7 +216,10 @@ var constructAuditLogText = function constructAuditLogText(_ref) {
|
|
|
186
216
|
}
|
|
187
217
|
case ACTIONS.UPDATED_USER:
|
|
188
218
|
{
|
|
189
|
-
var changedFields = formatChangedFields(
|
|
219
|
+
var changedFields = formatChangedFields({
|
|
220
|
+
changes: changes,
|
|
221
|
+
countriesMap: countriesMap
|
|
222
|
+
});
|
|
190
223
|
var affectedUser = email || "user";
|
|
191
224
|
return /*#__PURE__*/jsxRuntime.jsx(Trans, {
|
|
192
225
|
additionalComponents: {
|
|
@@ -225,7 +258,10 @@ var constructAuditLogText = function constructAuditLogText(_ref) {
|
|
|
225
258
|
}
|
|
226
259
|
case ACTIONS.UPDATED_USER_PROFILE:
|
|
227
260
|
{
|
|
228
|
-
var _changedFields = formatChangedFields(
|
|
261
|
+
var _changedFields = formatChangedFields({
|
|
262
|
+
changes: changes,
|
|
263
|
+
countriesMap: countriesMap
|
|
264
|
+
});
|
|
229
265
|
return /*#__PURE__*/jsxRuntime.jsx(Trans, {
|
|
230
266
|
additionalComponents: {
|
|
231
267
|
ChangedFields: /*#__PURE__*/jsxRuntime.jsx(jsxRuntime.Fragment, {
|
|
@@ -360,11 +396,13 @@ var constructAuditLogText = function constructAuditLogText(_ref) {
|
|
|
360
396
|
}
|
|
361
397
|
}
|
|
362
398
|
};
|
|
399
|
+
var indexById = ramda.indexBy(ramda.prop("id"));
|
|
363
400
|
|
|
364
401
|
function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
365
402
|
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
366
403
|
var Card = function Card(_ref) {
|
|
367
404
|
var auditLog = _ref.auditLog,
|
|
405
|
+
countriesMap = _ref.countriesMap,
|
|
368
406
|
index = _ref.index,
|
|
369
407
|
totalCount = _ref.totalCount;
|
|
370
408
|
var key = auditLog.key,
|
|
@@ -375,6 +413,7 @@ var Card = function Card(_ref) {
|
|
|
375
413
|
var performedBy = (performer === null || performer === void 0 ? void 0 : performer.name) || "";
|
|
376
414
|
var performedAt = utils.dateFormat.dateTime(updatedAt);
|
|
377
415
|
var auditText = constructAuditLogText(_objectSpread$2({
|
|
416
|
+
countriesMap: countriesMap,
|
|
378
417
|
action: action,
|
|
379
418
|
performedBy: performedBy
|
|
380
419
|
}, metadata));
|
|
@@ -415,8 +454,12 @@ var fetchAuditLogs = function fetchAuditLogs(params) {
|
|
|
415
454
|
params: params
|
|
416
455
|
});
|
|
417
456
|
};
|
|
457
|
+
var fetchCountries = function fetchCountries() {
|
|
458
|
+
return axios.get("neeto_team_members/profile/countries");
|
|
459
|
+
};
|
|
418
460
|
var auditLogsApi = {
|
|
419
|
-
fetchAuditLogs: fetchAuditLogs
|
|
461
|
+
fetchAuditLogs: fetchAuditLogs,
|
|
462
|
+
fetchCountries: fetchCountries
|
|
420
463
|
};
|
|
421
464
|
|
|
422
465
|
function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
@@ -433,6 +476,14 @@ var useFetchAuditLogs = function useFetchAuditLogs(_ref) {
|
|
|
433
476
|
}, options));
|
|
434
477
|
};
|
|
435
478
|
|
|
479
|
+
var useFetchCountries = function useFetchCountries() {
|
|
480
|
+
return reactQuery.useQuery({
|
|
481
|
+
queryKey: [COUNTRIES_LIST_QUERY_KEY],
|
|
482
|
+
queryFn: auditLogsApi.fetchCountries,
|
|
483
|
+
staleTime: constants.DEFAULT_STALE_TIME
|
|
484
|
+
});
|
|
485
|
+
};
|
|
486
|
+
|
|
436
487
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
437
488
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
438
489
|
var AuditLogs = function AuditLogs(_ref) {
|
|
@@ -458,6 +509,12 @@ var AuditLogs = function AuditLogs(_ref) {
|
|
|
458
509
|
totalCount = _useFetchAuditLogs$da4 === void 0 ? 0 : _useFetchAuditLogs$da4,
|
|
459
510
|
isLoading = _useFetchAuditLogs.isLoading,
|
|
460
511
|
isFetching = _useFetchAuditLogs.isFetching;
|
|
512
|
+
var _useFetchCountries = useFetchCountries(),
|
|
513
|
+
countriesData = _useFetchCountries.data;
|
|
514
|
+
var countriesList = countriesData === null || countriesData === void 0 ? void 0 : countriesData.countries;
|
|
515
|
+
var countriesMap = React.useMemo(function () {
|
|
516
|
+
return countriesList ? indexById(countriesList) : {};
|
|
517
|
+
}, [countriesList]);
|
|
461
518
|
if (isLoading || isFetching) {
|
|
462
519
|
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
463
520
|
className: "flex h-full w-full items-center justify-center",
|
|
@@ -473,6 +530,7 @@ var AuditLogs = function AuditLogs(_ref) {
|
|
|
473
530
|
children: auditLogs.map(function (auditLog, index) {
|
|
474
531
|
return /*#__PURE__*/React.createElement(Card, {
|
|
475
532
|
auditLog: auditLog,
|
|
533
|
+
countriesMap: countriesMap,
|
|
476
534
|
index: index,
|
|
477
535
|
key: auditLog.id,
|
|
478
536
|
totalCount: auditLogs.length
|