@bigbinary/neeto-team-members-frontend 5.0.62 → 5.0.64

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 (72) hide show
  1. package/dist/.ready +1 -1
  2. package/dist/ManageMember.js +5 -11
  3. package/dist/ManageMember.js.map +1 -1
  4. package/dist/{Permissions-LWRAefeb.js → Permissions-BVkx_S_F.js} +2 -2
  5. package/dist/Permissions-BVkx_S_F.js.map +1 -0
  6. package/dist/{Permissions-Bz0SmJzH.js → Permissions-DIdoAJlu.js} +2 -2
  7. package/dist/Permissions-DIdoAJlu.js.map +1 -0
  8. package/dist/Profile.js +4 -13
  9. package/dist/Profile.js.map +1 -1
  10. package/dist/{ProfileImage-BLnx0E90.js → ProfileImage-BjDA-txF.js} +2 -2
  11. package/dist/ProfileImage-BjDA-txF.js.map +1 -0
  12. package/dist/{ProfileImage-V240yfTY.js → ProfileImage-Ca02-i_d.js} +2 -2
  13. package/dist/ProfileImage-Ca02-i_d.js.map +1 -0
  14. package/dist/cjs/ManageMember.js +5 -11
  15. package/dist/cjs/ManageMember.js.map +1 -1
  16. package/dist/cjs/Profile.js +4 -14
  17. package/dist/cjs/Profile.js.map +1 -1
  18. package/dist/cjs/v2/Groups.js +1 -1
  19. package/dist/cjs/v2/Groups.js.map +1 -1
  20. package/dist/cjs/v2/ManageMember.js +1048 -42
  21. package/dist/cjs/v2/ManageMember.js.map +1 -1
  22. package/dist/cjs/v2/MembersDropdown.js +1 -1
  23. package/dist/cjs/v2/MembersInvite.js +1 -1
  24. package/dist/cjs/v2/MembersInvite.js.map +1 -1
  25. package/dist/cjs/v2/Permissions.js +1 -1
  26. package/dist/cjs/v2/Profile.js +5 -13
  27. package/dist/cjs/v2/Profile.js.map +1 -1
  28. package/dist/cjs/v2/Roles.js +1 -1
  29. package/dist/cjs/v2/TeamMembers.js +21 -20
  30. package/dist/cjs/v2/TeamMembers.js.map +1 -1
  31. package/dist/cjs/v2/TeamsDropdown.js +1 -1
  32. package/dist/cjs/v2/hooks.js +187 -5
  33. package/dist/cjs/v2/hooks.js.map +1 -1
  34. package/dist/cjs/v2/index.js +7 -6
  35. package/dist/cjs/v2/index.js.map +1 -1
  36. package/dist/{index-BRgcqXVL.js → index-BVrpRWeD.js} +3 -3
  37. package/dist/index-BVrpRWeD.js.map +1 -0
  38. package/dist/{index-BMb0DElQ.js → index-CVZHlIdE.js} +3 -3
  39. package/dist/index-CVZHlIdE.js.map +1 -0
  40. package/dist/utils-BFRNzhia.js +318 -0
  41. package/dist/utils-BFRNzhia.js.map +1 -0
  42. package/dist/utils-DEOuQRcK.js +300 -0
  43. package/dist/utils-DEOuQRcK.js.map +1 -0
  44. package/dist/v2/Groups.js +1 -1
  45. package/dist/v2/Groups.js.map +1 -1
  46. package/dist/v2/ManageMember.js +1041 -41
  47. package/dist/v2/ManageMember.js.map +1 -1
  48. package/dist/v2/MembersDropdown.js +1 -1
  49. package/dist/v2/MembersInvite.js +1 -1
  50. package/dist/v2/MembersInvite.js.map +1 -1
  51. package/dist/v2/Permissions.js +1 -1
  52. package/dist/v2/Profile.js +6 -14
  53. package/dist/v2/Profile.js.map +1 -1
  54. package/dist/v2/Roles.js +1 -1
  55. package/dist/v2/TeamMembers.js +5 -4
  56. package/dist/v2/TeamMembers.js.map +1 -1
  57. package/dist/v2/TeamsDropdown.js +1 -1
  58. package/dist/v2/hooks.js +184 -5
  59. package/dist/v2/hooks.js.map +1 -1
  60. package/dist/v2/index.js +6 -5
  61. package/dist/v2/index.js.map +1 -1
  62. package/package.json +5 -5
  63. package/dist/Permissions-Bz0SmJzH.js.map +0 -1
  64. package/dist/Permissions-LWRAefeb.js.map +0 -1
  65. package/dist/ProfileImage-BLnx0E90.js.map +0 -1
  66. package/dist/ProfileImage-V240yfTY.js.map +0 -1
  67. package/dist/index-BFScwOib.js +0 -1272
  68. package/dist/index-BFScwOib.js.map +0 -1
  69. package/dist/index-BMb0DElQ.js.map +0 -1
  70. package/dist/index-BRgcqXVL.js.map +0 -1
  71. package/dist/index-CBt9gCBK.js +0 -1293
  72. package/dist/index-CBt9gCBK.js.map +0 -1
@@ -1,1293 +0,0 @@
1
- 'use strict';
2
-
3
- var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
4
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
5
- var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
6
- var _regeneratorRuntime = require('@babel/runtime/regenerator');
7
- var React = require('react');
8
- var neetoAtoms = require('@bigbinary/neeto-atoms');
9
- var classnames = require('classnames');
10
- var lucideReact = require('lucide-react');
11
- var initializers = require('@bigbinary/neeto-commons-frontend/v2/initializers');
12
- var utils = require('@bigbinary/neeto-commons-frontend/v2/utils');
13
- var hooks = require('@bigbinary/neeto-image-uploader-frontend/v2/hooks');
14
- var ramda = require('ramda');
15
- var reactI18next = require('react-i18next');
16
- var sonner = require('sonner');
17
- var useRolesApi = require('./useRolesApi-DuL4eCuF.js');
18
- var useTeamsApi = require('./useTeamsApi-ClWGPxNW.js');
19
- var formik = require('formik');
20
- var neetoCist = require('@bigbinary/neeto-cist');
21
- var v2_RolesRadioGroup = require('./RolesRadioGroup-D4h-GY0X.js');
22
- var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
23
- var jsxRuntime = require('react/jsx-runtime');
24
- var Select = require('./Select-CshPoN2b.js');
25
- var Card = require('@bigbinary/neeto-atoms/primitives/Card');
26
- var constants = require('@bigbinary/neeto-commons-frontend/v2/constants');
27
- var reactUtils = require('@bigbinary/neeto-commons-frontend/v2/react-utils');
28
- var CopyToClipboardButton = require('@bigbinary/neeto-molecules/v2/CopyToClipboardButton');
29
- var useInviteLinksApi = require('./useInviteLinksApi-COVfmZiQ.js');
30
- var formik$1 = require('@bigbinary/neeto-atoms/formik');
31
- var utils$1 = require('./cjs/utils.js');
32
- var neetoTimeZones = require('@bigbinary/neeto-time-zones');
33
- var PhoneNumber = require('@bigbinary/neeto-molecules/v2/PhoneNumber');
34
- var constants$1 = require('./constants-D_H6M1Pm.js');
35
- var ProfileImage = require('./ProfileImage-BLnx0E90.js');
36
- var ActionBlock = require('./ActionBlock-C9Iy0jGZ.js');
37
- var index = require('./index-BOQKf6as.js');
38
- var primitives = require('@bigbinary/neeto-atoms/primitives');
39
- var i18next = require('i18next');
40
- var MoreDropdown = require('@bigbinary/neeto-molecules/v2/MoreDropdown');
41
-
42
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
43
-
44
- var _asyncToGenerator__default = /*#__PURE__*/_interopDefault(_asyncToGenerator);
45
- var _defineProperty__default = /*#__PURE__*/_interopDefault(_defineProperty);
46
- var _slicedToArray__default = /*#__PURE__*/_interopDefault(_slicedToArray);
47
- var _regeneratorRuntime__default = /*#__PURE__*/_interopDefault(_regeneratorRuntime);
48
- var classnames__default = /*#__PURE__*/_interopDefault(classnames);
49
- var _objectWithoutProperties__default = /*#__PURE__*/_interopDefault(_objectWithoutProperties);
50
- var CopyToClipboardButton__default = /*#__PURE__*/_interopDefault(CopyToClipboardButton);
51
- var i18next__default = /*#__PURE__*/_interopDefault(i18next);
52
- var MoreDropdown__default = /*#__PURE__*/_interopDefault(MoreDropdown);
53
-
54
- var _excluded = ["name", "label", "className", "checked", "disabled", "onChange"];
55
- 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; }
56
- 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__default.default(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; }
57
- var FormikSwitch = function FormikSwitch(_ref) {
58
- var name = _ref.name,
59
- label = _ref.label,
60
- className = _ref.className,
61
- checkedProp = _ref.checked,
62
- disabled = _ref.disabled,
63
- onChangeProp = _ref.onChange,
64
- rest = _objectWithoutProperties__default.default(_ref, _excluded);
65
- var _useField = formik.useField(name),
66
- _useField2 = _slicedToArray__default.default(_useField, 3),
67
- field = _useField2[0],
68
- helpers = _useField2[2];
69
- var isChecked = checkedProp !== undefined ? checkedProp : field.value;
70
- return /*#__PURE__*/jsxRuntime.jsxs("div", {
71
- className: neetoAtoms.cn("flex items-center gap-2", className),
72
- children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Switch, _objectSpread$2({
73
- disabled: disabled,
74
- checked: isChecked,
75
- id: name,
76
- onCheckedChange: function onCheckedChange(val) {
77
- helpers.setValue(val);
78
- onChangeProp === null || onChangeProp === void 0 || onChangeProp({
79
- target: {
80
- checked: val
81
- }
82
- });
83
- }
84
- }, rest)), label && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Label, {
85
- htmlFor: name,
86
- children: label
87
- })]
88
- });
89
- };
90
-
91
- var _getQueryParams = utils.getQueryParams(),
92
- page = _getQueryParams.page,
93
- pageSize = _getQueryParams.pageSize;
94
- var DEFAULT_RADIX = 10;
95
- ({
96
- page: ramda.clamp(1, Infinity, parseInt(page)) || constants.DEFAULT_PAGE_INDEX,
97
- pageSize: ramda.clamp(10, 100, parseInt(pageSize)) || constants.DEFAULT_PAGE_SIZE});
98
- var DEFAULT_SELECTED_ROWS = {
99
- active: [],
100
- emails: [],
101
- keys: [],
102
- displayNames: []
103
- };
104
-
105
- var AppList = function AppList(_ref) {
106
- var _globalProps$user;
107
- var globalRoles = _ref.globalRoles,
108
- savedStateRef = _ref.savedStateRef;
109
- var _useTranslation = reactI18next.useTranslation(),
110
- t = _useTranslation.t;
111
- var _useState = React.useState(savedStateRef.current.isAppListEnabled),
112
- _useState2 = _slicedToArray__default.default(_useState, 2),
113
- isAppListEnabled = _useState2[0],
114
- setIsAppListEnabled = _useState2[1];
115
- var _useFormikContext = formik.useFormikContext(),
116
- _useFormikContext$val = _useFormikContext.values,
117
- _useFormikContext$val2 = _useFormikContext$val.emails,
118
- emails = _useFormikContext$val2 === void 0 ? [] : _useFormikContext$val2,
119
- _useFormikContext$val3 = _useFormikContext$val.appRoles,
120
- appRoles = _useFormikContext$val3 === void 0 ? [] : _useFormikContext$val3,
121
- setFieldValue = _useFormikContext.setFieldValue;
122
- var selectedEmail = ramda.pluck("value", emails);
123
- var isManageProductsLinkEnabled = ((_globalProps$user = initializers.globalProps.user) === null || _globalProps$user === void 0 ? void 0 : _globalProps$user.isOwner) && Object.keys(globalRoles).length >= 3;
124
- React.useEffect(function () {
125
- if (savedStateRef.current.isAppListEnabled !== isAppListEnabled) {
126
- appRoles === null || appRoles === void 0 || appRoles.forEach(function (appRole, index) {
127
- var _globalProps$appName;
128
- if ((appRole === null || appRole === void 0 ? void 0 : appRole.appName) === ((_globalProps$appName = initializers.globalProps.appName) === null || _globalProps$appName === void 0 ? void 0 : _globalProps$appName.substring(5))) {
129
- setFieldValue("appRoles[".concat(index, "].isEnabled"), true);
130
- return;
131
- }
132
- setFieldValue("appRoles[".concat(index, "].isEnabled"), isAppListEnabled);
133
- });
134
- }
135
- savedStateRef.current.isAppListEnabled = isAppListEnabled;
136
- }, [isAppListEnabled]); // eslint-disable-line react-hooks/exhaustive-deps
137
-
138
- var buildRoleOptions = function buildRoleOptions(roles) {
139
- return roles.map(function (role) {
140
- return neetoCist.toLabelAndValue(role.name);
141
- });
142
- };
143
- return /*#__PURE__*/jsxRuntime.jsxs("div", {
144
- className: "flex flex-col gap-6",
145
- children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
146
- className: "w-full space-y-3",
147
- children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
148
- className: "flex items-start gap-2",
149
- children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Checkbox, {
150
- checked: isAppListEnabled,
151
- "data-testid": "ntm-manage-members-app-list-checkbox",
152
- id: "app-list-toggle",
153
- onCheckedChange: function onCheckedChange() {
154
- return setIsAppListEnabled(ramda.not);
155
- }
156
- }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Label, {
157
- className: "leading-relaxed",
158
- htmlFor: "app-list-toggle",
159
- children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
160
- className: "leading-relaxed",
161
- variant: "body3",
162
- children: /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
163
- i18nKey: "neetoTeamMembers.helpers.addMembersToNeetoProducts",
164
- values: {
165
- emails: selectedEmail
166
- }
167
- })
168
- })
169
- })]
170
- }), isManageProductsLinkEnabled && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
171
- variant: "body3",
172
- children: /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
173
- i18nKey: "neetoTeamMembers.helpers.manageProducts",
174
- components: {
175
- button: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
176
- asChild: true,
177
- variant: "link",
178
- children: /*#__PURE__*/jsxRuntime.jsx("a", {
179
- href: v2_RolesRadioGroup.NEETO_AUTH_MANAGE_PRODUCT_URL,
180
- children: "manage"
181
- })
182
- })
183
- }
184
- })
185
- })]
186
- }), /*#__PURE__*/jsxRuntime.jsx("div", {
187
- className: "w-full",
188
- children: appRoles.map(function (_ref2, index) {
189
- var _globalProps$appName2;
190
- var appName = _ref2.appName,
191
- isEnabled = _ref2.isEnabled;
192
- var isCurrentApp = appName === ((_globalProps$appName2 = initializers.globalProps.appName) === null || _globalProps$appName2 === void 0 ? void 0 : _globalProps$appName2.substring(5));
193
- var isAppRoleSelectionChecked = isCurrentApp || isEnabled;
194
- return /*#__PURE__*/jsxRuntime.jsxs("div", {
195
- className: "flex w-full items-center justify-between py-2",
196
- children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Tooltip, {
197
- content: isCurrentApp ? t("neetoTeamMembers.tooltips.hostAppIsRequired") : null,
198
- children: /*#__PURE__*/jsxRuntime.jsx("span", {
199
- children: /*#__PURE__*/jsxRuntime.jsx(FormikSwitch, {
200
- checked: isAppRoleSelectionChecked,
201
- disabled: isCurrentApp,
202
- name: "appsRoles[".concat(index, "].isEnabled"),
203
- label: t("neetoTeamMembers.labels.neeto_", {
204
- product: appName
205
- }),
206
- onChange: function onChange(_ref3) {
207
- var target = _ref3.target;
208
- setFieldValue("appRoles[".concat(index, "].isEnabled"), target.checked);
209
- }
210
- })
211
- })
212
- }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Tooltip, {
213
- content: isCurrentApp ? t("neetoTeamMembers.tooltips.goBackToChangeRole") : null,
214
- children: /*#__PURE__*/jsxRuntime.jsx("span", {
215
- className: "w-1/2 max-w-[250px]",
216
- children: /*#__PURE__*/jsxRuntime.jsx(Select.FormikSelect, {
217
- isDisabled: isCurrentApp || !isEnabled,
218
- name: "appRoles[".concat(index, "].activeRole"),
219
- options: buildRoleOptions(globalRoles[appName])
220
- })
221
- })
222
- })]
223
- }, appName);
224
- })
225
- })]
226
- });
227
- };
228
-
229
- var Confirmation = function Confirmation() {
230
- var _globalProps$organiza;
231
- var _useTranslation = reactI18next.useTranslation(),
232
- t = _useTranslation.t;
233
- var _useFormikContext = formik.useFormikContext(),
234
- _useFormikContext$val = _useFormikContext.values,
235
- emails = _useFormikContext$val.emails,
236
- role = _useFormikContext$val.role,
237
- appRoles = _useFormikContext$val.appRoles;
238
- var selectedEmail = ramda.pluck("value", emails);
239
- var activeAppRoles = neetoCist.filterBy({
240
- isEnabled: true
241
- }, appRoles);
242
- var isMultipleProduct = activeAppRoles.length > 1;
243
- return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
244
- children: [/*#__PURE__*/jsxRuntime.jsx(Card.Card, {
245
- className: "w-full shrink-0 bg-muted/40 ring-0",
246
- size: "sm",
247
- children: /*#__PURE__*/jsxRuntime.jsxs(Card.CardContent, {
248
- className: "flex items-start gap-3",
249
- children: [/*#__PURE__*/jsxRuntime.jsx("div", {
250
- className: "bg-primary/10 mt-0.5 flex size-9 shrink-0 items-center justify-center neeto-ui-rounded-full",
251
- children: /*#__PURE__*/jsxRuntime.jsx(lucideReact.Mail, {
252
- className: "size-4 text-primary"
253
- })
254
- }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
255
- className: "min-w-0 flex-1 leading-relaxed",
256
- variant: "body3",
257
- children: isMultipleProduct ? /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
258
- i18nKey: "neetoTeamMembers.helpers.multipleProductInvitation",
259
- values: {
260
- count: selectedEmail.length,
261
- emails: selectedEmail,
262
- orgName: (_globalProps$organiza = initializers.globalProps.organization) === null || _globalProps$organiza === void 0 ? void 0 : _globalProps$organiza.name
263
- }
264
- }) : /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
265
- i18nKey: "neetoTeamMembers.helpers.singleProductInvitation",
266
- values: v2_RolesRadioGroup.getSingleInvitationTranslationProps({
267
- activeAppRoles: activeAppRoles,
268
- role: role,
269
- selectedEmail: selectedEmail
270
- })
271
- })
272
- })]
273
- })
274
- }), isMultipleProduct && /*#__PURE__*/jsxRuntime.jsx(Card.Card, {
275
- className: "w-full shrink-0 ring-0",
276
- size: "sm",
277
- children: /*#__PURE__*/jsxRuntime.jsx(Card.CardContent, {
278
- className: "overflow-hidden neeto-ui-rounded-md border border-border p-0",
279
- children: /*#__PURE__*/jsxRuntime.jsxs("table", {
280
- className: "w-full border-collapse",
281
- children: [/*#__PURE__*/jsxRuntime.jsx("thead", {
282
- className: "bg-muted/40",
283
- children: /*#__PURE__*/jsxRuntime.jsxs("tr", {
284
- children: [/*#__PURE__*/jsxRuntime.jsx("th", {
285
- className: "px-3 py-2 text-start text-xs font-medium uppercase tracking-wide text-muted-foreground",
286
- children: t("neetoTeamMembers.common.productName")
287
- }), /*#__PURE__*/jsxRuntime.jsx("th", {
288
- className: "px-3 py-2 text-start text-xs font-medium uppercase tracking-wide text-muted-foreground",
289
- children: t("neetoTeamMembers.common.role", constants.SINGULAR)
290
- })]
291
- })
292
- }), /*#__PURE__*/jsxRuntime.jsx("tbody", {
293
- className: "divide-y divide-border",
294
- children: activeAppRoles.map(function (_ref) {
295
- var appName = _ref.appName,
296
- activeRole = _ref.activeRole;
297
- return /*#__PURE__*/jsxRuntime.jsxs("tr", {
298
- children: [/*#__PURE__*/jsxRuntime.jsx("td", {
299
- className: "px-3 py-2",
300
- children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
301
- variant: "body3",
302
- children: t("neetoTeamMembers.labels.neeto_", {
303
- product: appName
304
- })
305
- })
306
- }), /*#__PURE__*/jsxRuntime.jsx("td", {
307
- className: "px-3 py-2",
308
- children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
309
- variant: "body3",
310
- children: activeRole
311
- })
312
- })]
313
- }, appName);
314
- })
315
- })]
316
- })
317
- })
318
- })]
319
- });
320
- };
321
-
322
- var InviteLink = function InviteLink(_ref) {
323
- var _inviteLinks$, _inviteLinks$2, _inviteLinks$3, _inviteLinks$4, _inviteLinks$5, _inviteLinks$6, _inviteLinks$7;
324
- var t = _ref.t,
325
- roles = _ref.roles;
326
- var _useCreateInviteLinks = useInviteLinksApi.useCreateInviteLinks(),
327
- createInviteLink = _useCreateInviteLinks.mutate,
328
- isCreateLinkPending = _useCreateInviteLinks.isPending;
329
- var _useRegenerateInviteL = useInviteLinksApi.useRegenerateInviteLink(),
330
- regenerateLink = _useRegenerateInviteL.mutate;
331
- var _useFetchInviteLinks = useInviteLinksApi.useFetchInviteLinks(),
332
- _useFetchInviteLinks$ = _useFetchInviteLinks.data,
333
- _useFetchInviteLinks$2 = _useFetchInviteLinks$ === void 0 ? {} : _useFetchInviteLinks$,
334
- _useFetchInviteLinks$3 = _useFetchInviteLinks$2.inviteLinks,
335
- inviteLinks = _useFetchInviteLinks$3 === void 0 ? [] : _useFetchInviteLinks$3,
336
- isFetchLinkLoading = _useFetchInviteLinks.isLoading;
337
- var _useFormikContext = formik.useFormikContext(),
338
- values = _useFormikContext.values;
339
- var _useState = React.useState(""),
340
- _useState2 = _slicedToArray__default.default(_useState, 2),
341
- feedbackMessage = _useState2[0],
342
- setFeedbackMessage = _useState2[1];
343
- var feedbackTimerRef = React.useRef();
344
- var showFeedback = function showFeedback(message) {
345
- setFeedbackMessage(message);
346
- clearTimeout(feedbackTimerRef.current);
347
- feedbackTimerRef.current = setTimeout(function () {
348
- return setFeedbackMessage("");
349
- }, v2_RolesRadioGroup.FEEDBACK_DURATION_MS);
350
- };
351
- React.useEffect(function () {
352
- return function () {
353
- return clearTimeout(feedbackTimerRef.current);
354
- };
355
- }, []);
356
- var isInviteLinkEmpty = !isFetchLinkLoading && ramda.isEmpty(inviteLinks);
357
- var handleRegenerate = function handleRegenerate() {
358
- var _findBy = neetoCist.findBy({
359
- name: values.role
360
- }, roles),
361
- roleId = _findBy.id;
362
- if (ramda.isEmpty(inviteLinks)) {
363
- createInviteLink({
364
- organizationRoleId: roleId
365
- }, {
366
- onSuccess: function onSuccess() {
367
- return showFeedback(t("neetoTeamMembers.alerts.success.inviteLinkGenerated"));
368
- }
369
- });
370
- return;
371
- }
372
- regenerateLink({
373
- inviteLinkId: inviteLinks[0].id,
374
- payload: {
375
- organizationRoleId: roleId
376
- }
377
- }, {
378
- onSuccess: function onSuccess() {
379
- return showFeedback(t("neetoTeamMembers.alerts.success.inviteLinkRegenerated"));
380
- }
381
- });
382
- };
383
- if (isFetchLinkLoading || isCreateLinkPending) {
384
- return /*#__PURE__*/jsxRuntime.jsx("div", {
385
- className: "flex w-full items-center justify-center",
386
- children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Spinner, {})
387
- });
388
- }
389
- return /*#__PURE__*/jsxRuntime.jsxs("div", {
390
- className: "w-full space-y-2",
391
- children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
392
- className: "flex items-center gap-2 pt-1",
393
- children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
394
- className: "relative flex min-w-0 grow items-center truncate neeto-ui-rounded-md border border-border bg-muted/50 leading-none",
395
- children: [isInviteLinkEmpty ? /*#__PURE__*/jsxRuntime.jsx("div", {
396
- className: "relative min-w-0 grow truncate p-2 leading-none"
397
- }) : /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
398
- asChild: true,
399
- className: "relative block h-auto min-w-0 shrink grow truncate p-2 font-normal leading-none no-underline hover:underline",
400
- variant: "link",
401
- children: /*#__PURE__*/jsxRuntime.jsx("a", {
402
- href: v2_RolesRadioGroup.getInviteURL(inviteLinks === null || inviteLinks === void 0 || (_inviteLinks$ = inviteLinks[0]) === null || _inviteLinks$ === void 0 ? void 0 : _inviteLinks$.token),
403
- rel: "noopener noreferrer",
404
- target: "_blank",
405
- children: v2_RolesRadioGroup.getInviteURL(inviteLinks === null || inviteLinks === void 0 || (_inviteLinks$2 = inviteLinks[0]) === null || _inviteLinks$2 === void 0 ? void 0 : _inviteLinks$2.token)
406
- })
407
- }), isInviteLinkEmpty ? /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
408
- className: "rounded-s-none",
409
- onClick: handleRegenerate,
410
- children: t("neetoTeamMembers.buttons.generateLink")
411
- }) : /*#__PURE__*/jsxRuntime.jsx(CopyToClipboardButton__default.default, {
412
- className: "rounded-s-none border-s",
413
- value: v2_RolesRadioGroup.getInviteURL(inviteLinks === null || inviteLinks === void 0 || (_inviteLinks$3 = inviteLinks[0]) === null || _inviteLinks$3 === void 0 ? void 0 : _inviteLinks$3.token),
414
- variant: "ghost"
415
- })]
416
- }), !isInviteLinkEmpty && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.DropdownMenu, {
417
- customTarget: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
418
- "aria-label": t("neetoTeamMembers.buttons.regenerateLink"),
419
- className: "shrink-0",
420
- icon: lucideReact.EllipsisVertical,
421
- size: "icon",
422
- variant: "ghost"
423
- }),
424
- children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.DropdownMenu.Menu, {
425
- children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.DropdownMenu.MenuItem, {
426
- onClick: handleRegenerate,
427
- children: t("neetoTeamMembers.buttons.regenerateLink")
428
- })
429
- })
430
- })]
431
- }), feedbackMessage && /*#__PURE__*/jsxRuntime.jsxs("div", {
432
- "aria-live": "polite",
433
- className: "flex w-fit items-center gap-1.5 neeto-ui-rounded-md bg-success-solid px-2 py-1 text-success-solid-foreground animate-in fade-in slide-in-from-top-1 duration-200",
434
- children: [/*#__PURE__*/jsxRuntime.jsx(lucideReact.Check, {
435
- className: "size-3.5 shrink-0"
436
- }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
437
- color: "inherit",
438
- variant: "caption",
439
- weight: "medium",
440
- children: feedbackMessage
441
- })]
442
- }), /*#__PURE__*/jsxRuntime.jsx("div", {
443
- children: !isInviteLinkEmpty && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
444
- className: "leading-relaxed",
445
- color: "muted",
446
- variant: "body3",
447
- children: /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
448
- components: {
449
- strong: /*#__PURE__*/jsxRuntime.jsx("strong", {})
450
- },
451
- i18nKey: "neetoTeamMembers.alerts.messages.inviteLink",
452
- values: {
453
- expiryDays: v2_RolesRadioGroup.remainingExpiryDays(inviteLinks === null || inviteLinks === void 0 || (_inviteLinks$4 = inviteLinks[0]) === null || _inviteLinks$4 === void 0 ? void 0 : _inviteLinks$4.expiresAt),
454
- role: inviteLinks === null || inviteLinks === void 0 || (_inviteLinks$5 = inviteLinks[0]) === null || _inviteLinks$5 === void 0 || (_inviteLinks$5 = _inviteLinks$5.organizationRole) === null || _inviteLinks$5 === void 0 ? void 0 : _inviteLinks$5.name,
455
- inviteLimit: inviteLinks === null || inviteLinks === void 0 || (_inviteLinks$6 = inviteLinks[0]) === null || _inviteLinks$6 === void 0 ? void 0 : _inviteLinks$6.inviteLimit,
456
- appName: initializers.globalProps.appName,
457
- emailDomain: inviteLinks === null || inviteLinks === void 0 || (_inviteLinks$7 = inviteLinks[0]) === null || _inviteLinks$7 === void 0 ? void 0 : _inviteLinks$7.domain
458
- }
459
- })
460
- })
461
- })]
462
- });
463
- };
464
- var InviteLink$1 = reactUtils.withT(InviteLink);
465
-
466
- var MultipleEmailInput = function MultipleEmailInput(_ref) {
467
- var _head;
468
- var _ref$emails = _ref.emails,
469
- emails = _ref$emails === void 0 ? [] : _ref$emails,
470
- innerRef = _ref.innerRef,
471
- _ref$selectedMember = _ref.selectedMember,
472
- selectedMember = _ref$selectedMember === void 0 ? null : _ref$selectedMember,
473
- setCurrentPage = _ref.setCurrentPage;
474
- var isInviteLinkFeatureEnabled = !utils$1.isNeetoAuthApp();
475
- var _useTranslation = reactI18next.useTranslation(),
476
- t = _useTranslation.t;
477
- var _useFormikContext = formik.useFormikContext(),
478
- setFieldValue = _useFormikContext.setFieldValue;
479
- var handleInputChange = function handleInputChange(event) {
480
- var email = event.target.value;
481
- var emailList = [{
482
- label: email,
483
- value: email,
484
- valid: v2_RolesRadioGroup.EMAIL_REGEX.test(email)
485
- }];
486
- setFieldValue("emails", emailList);
487
- };
488
- return /*#__PURE__*/jsxRuntime.jsx("div", {
489
- className: "w-full",
490
- children: selectedMember ? /*#__PURE__*/jsxRuntime.jsx(formik$1.Input, {
491
- "data-testid": "ntm-manage-member-email-input",
492
- name: "emails",
493
- type: "email",
494
- value: (_head = ramda.head(emails)) === null || _head === void 0 ? void 0 : _head.value,
495
- label: /*#__PURE__*/jsxRuntime.jsx("span", {
496
- className: "flex w-full justify-between",
497
- children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
498
- variant: "body3",
499
- children: t("neetoTeamMembers.common.email", constants.SINGULAR)
500
- })
501
- }),
502
- onChange: handleInputChange
503
- }) : /*#__PURE__*/jsxRuntime.jsxs("div", {
504
- children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
505
- className: "flex items-center justify-between pb-2",
506
- children: [/*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Label, {
507
- children: [t("neetoTeamMembers.common.email", constants.PLURAL), /*#__PURE__*/jsxRuntime.jsx("span", {
508
- className: "text-destructive",
509
- children: " *"
510
- })]
511
- }), isInviteLinkFeatureEnabled && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
512
- variant: "link",
513
- onClick: function onClick() {
514
- return setCurrentPage(v2_RolesRadioGroup.FORM_PAGES.INVITE_LINK);
515
- },
516
- children: t("neetoTeamMembers.buttons.inviteLink")
517
- })]
518
- }), /*#__PURE__*/jsxRuntime.jsx(formik$1.MultiEmailInput, {
519
- required: true,
520
- counter: v2_RolesRadioGroup.COUNTER_PROPS,
521
- "data-testid": "ntm-manage-member-email-input",
522
- filterInvalidEmails: v2_RolesRadioGroup.FILTER_INVALID_EMAILS,
523
- helpText: t("neetoTeamMembers.helpers.enterMultipleEmails"),
524
- label: "",
525
- name: "emails",
526
- placeholder: t("neetoTeamMembers.placeholders.email"),
527
- ref: innerRef
528
- })]
529
- })
530
- });
531
- };
532
-
533
- var NameInputs = reactUtils.withT(function (_ref) {
534
- var t = _ref.t,
535
- innerRef = _ref.innerRef;
536
- return /*#__PURE__*/jsxRuntime.jsxs("div", {
537
- className: "flex w-full gap-4",
538
- children: [/*#__PURE__*/jsxRuntime.jsx(formik$1.Input, {
539
- "data-testid": "ntm-edit-member-first-name-text-field",
540
- label: t("neetoTeamMembers.labels.firstName"),
541
- name: "firstName",
542
- ref: innerRef
543
- }), /*#__PURE__*/jsxRuntime.jsx(formik$1.Input, {
544
- "data-testid": "ntm-edit-member-last-name-text-field",
545
- label: t("neetoTeamMembers.labels.lastName"),
546
- name: "lastName"
547
- })]
548
- });
549
- });
550
-
551
- var ProfileSettings = function ProfileSettings(_ref) {
552
- var member = _ref.member,
553
- setFieldValue = _ref.setFieldValue,
554
- isTimezoneFieldDisabled = _ref.isTimezoneFieldDisabled;
555
- var _useTranslation = reactI18next.useTranslation(),
556
- t = _useTranslation.t;
557
- var setFieldValueRef = React.useRef(setFieldValue);
558
- React.useEffect(function () {
559
- setFieldValueRef.current = setFieldValue;
560
- }, [setFieldValue]);
561
- var _useCountries = ProfileImage.useCountries(),
562
- countryDropdownOptions = _useCountries.countryDropdownOptions,
563
- isFetchingCountriesList = _useCountries.isFetchingCountriesList,
564
- handleCountryChange = _useCountries.handleCountryChange;
565
- var timezoneContainerRef = React.useCallback(function (node) {
566
- if (ramda.isNotNil(node)) {
567
- new neetoTimeZones.NeetoTimezoneSelector(node, {
568
- isTimeFormat24H: member.timeFormat === "24h",
569
- className: "w-full z-10",
570
- position: "bottom",
571
- initialValue: member.timeZone,
572
- onChange: function onChange(_ref2) {
573
- var main = _ref2.main;
574
- return setFieldValueRef.current("timeZone", main);
575
- },
576
- disabled: isTimezoneFieldDisabled
577
- });
578
- }
579
- }, [member.timeZone, member.timeFormat, isTimezoneFieldDisabled]);
580
- React.useEffect(function () {
581
- var country = neetoCist.findBy({
582
- value: member.countryIdentifier
583
- }, countryDropdownOptions);
584
- if (country) handleCountryChange(country);
585
- }, [member.countryIdentifier, countryDropdownOptions, handleCountryChange]);
586
- return /*#__PURE__*/jsxRuntime.jsxs("div", {
587
- className: "w-full space-y-6",
588
- "data-cy": "ntm-profile-settings",
589
- children: [/*#__PURE__*/jsxRuntime.jsx(PhoneNumber.FormikPhoneNumberInput, {
590
- "data-cy": "ntm-edit-member-phonenumber-field",
591
- label: t("neetoTeamMembers.profile.inputs.label.phonenumber"),
592
- name: "phonenumber"
593
- }), /*#__PURE__*/jsxRuntime.jsx(Select.FormikSelect, {
594
- "data-cy": "ntm-edit-member-country-select",
595
- isLoading: isFetchingCountriesList,
596
- label: t("neetoTeamMembers.profile.inputs.label.country"),
597
- name: "countryId",
598
- options: countryDropdownOptions,
599
- onChange: function onChange(value) {
600
- var option = countryDropdownOptions.find(function (o) {
601
- return o.value === value;
602
- });
603
- var dependentFields = handleCountryChange(option);
604
- setFieldValue("dateFormat", dependentFields === null || dependentFields === void 0 ? void 0 : dependentFields.dateFormat);
605
- }
606
- }), /*#__PURE__*/jsxRuntime.jsx(Select.FormikSelect, {
607
- "data-cy": "ntm-edit-member-language-select",
608
- label: t("neetoTeamMembers.profile.inputs.label.language"),
609
- name: "language",
610
- options: constants.LANGUAGE_OPTIONS
611
- }), /*#__PURE__*/jsxRuntime.jsxs("div", {
612
- className: "space-y-2",
613
- children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Label, {
614
- children: t("neetoTeamMembers.profile.inputs.label.timeZone")
615
- }), /*#__PURE__*/jsxRuntime.jsx("div", {
616
- "data-cy": "ntm-edit-member-timezone-select",
617
- ref: timezoneContainerRef,
618
- className: neetoAtoms.cn("w-full grow", {
619
- "pointer-events-none bg-muted": isTimezoneFieldDisabled
620
- })
621
- })]
622
- }), /*#__PURE__*/jsxRuntime.jsx(Select.FormikSelect, {
623
- "data-cy": "ntm-edit-member-time-format-select",
624
- label: t("neetoTeamMembers.profile.inputs.label.preferredTimeFormat"),
625
- name: "timeFormat",
626
- options: constants$1.TIME_FORMAT_OPTIONS
627
- }), /*#__PURE__*/jsxRuntime.jsx(Select.FormikSelect, {
628
- "data-cy": "ntm-edit-member-date-format-select",
629
- label: t("neetoTeamMembers.profile.inputs.label.preferredDateFormat"),
630
- name: "dateFormat",
631
- options: constants$1.DATE_FORMAT_OPTIONS
632
- })]
633
- });
634
- };
635
-
636
- 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; }
637
- function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty__default.default(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
638
- var renderNameColumn = function renderNameColumn(_ref) {
639
- var config = _ref.config,
640
- handleUpdateRole = _ref.handleUpdateRole,
641
- handleUpdateStatus = _ref.handleUpdateStatus,
642
- tableData = _ref.tableData;
643
- var name = tableData.displayName,
644
- imageUrl = tableData.profileImageUrl;
645
- return /*#__PURE__*/jsxRuntime.jsxs("div", {
646
- className: "flex w-full justify-between gap-3",
647
- children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
648
- className: "flex items-center gap-2",
649
- children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Avatar, {
650
- className: "size-8",
651
- user: {
652
- name: name,
653
- imageUrl: imageUrl
654
- }
655
- }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
656
- className: "whitespace-normal",
657
- "data-testid": "ntm-member-name-".concat(utils.hyphenize(name)),
658
- variant: "body3",
659
- children: name
660
- })]
661
- }), renderDropdownButton({
662
- config: config,
663
- handleUpdateRole: handleUpdateRole,
664
- handleUpdateStatus: handleUpdateStatus,
665
- tableData: tableData
666
- })]
667
- });
668
- };
669
- var renderDropdownButton = function renderDropdownButton(_ref2) {
670
- var _config$table, _config$table$dropdow;
671
- var config = _ref2.config,
672
- handleUpdateRole = _ref2.handleUpdateRole,
673
- handleUpdateStatus = _ref2.handleUpdateStatus,
674
- tableData = _ref2.tableData;
675
- return /*#__PURE__*/jsxRuntime.jsx(MoreDropdown__default.default, {
676
- isDisabled: ramda.not(config.permissions.update),
677
- dropdownButtonProps: {
678
- "data-testid": "ntm-members-table-row-dropdown-button",
679
- tooltipProps: {
680
- content: i18next__default.default.t("neetoTeamMembers.tooltips.noPermissionToEditMembers"),
681
- disabled: config.permissions.update,
682
- position: "top"
683
- }
684
- },
685
- menuTopChildren: /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
686
- children: [/*#__PURE__*/jsxRuntime.jsx(primitives.DropdownMenuItem, {
687
- className: "cursor-pointer",
688
- "data-testid": "ntm-edit-member-button",
689
- onClick: function onClick() {
690
- return handleUpdateRole(tableData);
691
- },
692
- children: i18next__default.default.t("neetoTeamMembers.common.edit")
693
- }), config === null || config === void 0 || (_config$table = config.table) === null || _config$table === void 0 || (_config$table$dropdow = _config$table.dropdownProps) === null || _config$table$dropdow === void 0 ? void 0 : _config$table$dropdow.call(_config$table, tableData), /*#__PURE__*/jsxRuntime.jsx(primitives.DropdownMenuItem, {
694
- className: "cursor-pointer",
695
- "data-testid": "ntm-deactivate-member-button",
696
- onClick: function onClick() {
697
- return handleUpdateStatus(tableData);
698
- },
699
- children: i18next__default.default.t("neetoTeamMembers.common.remove")
700
- })]
701
- })
702
- });
703
- };
704
- var getDefaultAlertTitle = function getDefaultAlertTitle(_ref3) {
705
- var member = _ref3.member;
706
- return member !== null && member !== void 0 && member.active ? i18next__default.default.t("neetoTeamMembers.common.remove_", {
707
- what: initializers.taxonomies.member.singular
708
- }) : i18next__default.default.t("neetoTeamMembers.common.activate_", {
709
- what: initializers.taxonomies.member.singular
710
- });
711
- };
712
- var getDefaultAlertMessage = function getDefaultAlertMessage(_ref4) {
713
- var member = _ref4.member;
714
- return /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
715
- i18nKey: "neetoTeamMembers.alerts.messages.removeMember",
716
- values: _objectSpread$1(_objectSpread$1({}, constants.SINGULAR), {}, {
717
- person: member === null || member === void 0 ? void 0 : member.displayName
718
- })
719
- });
720
- };
721
- var getDefaultColumns = function getDefaultColumns(_ref5) {
722
- var config = _ref5.config,
723
- handleUpdateRole = _ref5.handleUpdateRole,
724
- handleUpdateStatus = _ref5.handleUpdateStatus,
725
- otherColumns = _ref5.otherColumns,
726
- isSize = _ref5.isSize;
727
- return [{
728
- accessorKey: "name",
729
- id: "name",
730
- size: 300,
731
- enablePinning: neetoCist.isNotEmpty(otherColumns) && !isSize("mobile"),
732
- cell: function cell(_ref6) {
733
- var row = _ref6.row;
734
- return renderNameColumn({
735
- config: config,
736
- handleUpdateRole: handleUpdateRole,
737
- handleUpdateStatus: handleUpdateStatus,
738
- tableData: row.original
739
- });
740
- },
741
- enableSorting: true,
742
- header: i18next__default.default.t("neetoTeamMembers.common.name"),
743
- enableHiding: false
744
- }, {
745
- accessorKey: "email",
746
- id: "email",
747
- enableSorting: true,
748
- size: 350,
749
- header: i18next__default.default.t("neetoTeamMembers.common.email", constants.SINGULAR)
750
- }, {
751
- accessorKey: "role",
752
- enableSorting: true,
753
- size: 200,
754
- header: i18next__default.default.t("neetoTeamMembers.common.role", constants.SINGULAR)
755
- }];
756
- };
757
- var removeExcludedRole = ramda.curry(function (excludedRoles, role) {
758
- return !(excludedRoles !== null && excludedRoles !== void 0 && excludedRoles.includes(role === null || role === void 0 ? void 0 : role.name));
759
- });
760
- var getColumnData = function getColumnData(_ref7) {
761
- var _config$otherColumns;
762
- var config = _ref7.config,
763
- handleUpdateRole = _ref7.handleUpdateRole,
764
- handleUpdateStatus = _ref7.handleUpdateStatus,
765
- isSize = _ref7.isSize;
766
- var otherColumns = (_config$otherColumns = config === null || config === void 0 ? void 0 : config.otherColumns) !== null && _config$otherColumns !== void 0 ? _config$otherColumns : [];
767
- var defaultColumns = getDefaultColumns({
768
- config: config,
769
- handleUpdateRole: handleUpdateRole,
770
- handleUpdateStatus: handleUpdateStatus,
771
- otherColumns: otherColumns,
772
- isSize: isSize
773
- });
774
- var columns = defaultColumns.map(function (column) {
775
- var otherColumn = otherColumns.find(function (col) {
776
- return ramda.identical(col.accessorKey || col.id, column.accessorKey || column.id);
777
- });
778
- return otherColumn || column;
779
- });
780
- otherColumns.forEach(function (otherColumn) {
781
- var key = otherColumn.accessorKey || otherColumn.id;
782
- var exists = columns.find(function (col) {
783
- return ramda.identical(col.accessorKey || col.id, key);
784
- });
785
- if (!exists) columns.push(otherColumn);
786
- });
787
- return columns;
788
- };
789
- var renderUpdateAlert = function renderUpdateAlert(field, props) {
790
- var _config$alert;
791
- var config = props.config,
792
- member = props.member;
793
- if (config !== null && config !== void 0 && (_config$alert = config.alert) !== null && _config$alert !== void 0 && _config$alert[field]) {
794
- var _config$alert2;
795
- return (_config$alert2 = config.alert) === null || _config$alert2 === void 0 ? void 0 : _config$alert2[field]({
796
- active: member === null || member === void 0 ? void 0 : member.active,
797
- id: member === null || member === void 0 ? void 0 : member.id,
798
- name: member === null || member === void 0 ? void 0 : member.displayName
799
- });
800
- }
801
- return field === "title" ? getDefaultAlertTitle(props) : getDefaultAlertMessage(props);
802
- };
803
- var handlePageChange = function handlePageChange(setFilters, history) {
804
- return function (page, pageSize) {
805
- var searchParams = utils.getQueryParams({
806
- toCamelCase: false
807
- });
808
- history.replace(utils.buildUrl(window.location.pathname, ramda.mergeLeft({
809
- page: page,
810
- page_size: pageSize
811
- }, searchParams)));
812
- setFilters(ramda.mergeLeft({
813
- page: page,
814
- pageSize: pageSize
815
- }));
816
- };
817
- };
818
- var getFilteredRoles = function getFilteredRoles() {
819
- var roles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
820
- var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
821
- return ramda.filter(removeExcludedRole(config === null || config === void 0 ? void 0 : config.excludedRoles), roles);
822
- };
823
- var generateNoDataContent = function generateNoDataContent(_ref9) {
824
- var buttonProps = _ref9.buttonProps;
825
- var disabled = buttonProps.disabled,
826
- onClick = buttonProps.onClick;
827
- var noDataTitle = i18next__default.default.t("neetoTeamMembers.common.memberEmptyTitle", {
828
- what: initializers.taxonomies.member.plural
829
- });
830
- var noDataDescription = i18next__default.default.t("neetoTeamMembers.common.memberEmptyDescription", {
831
- what: initializers.taxonomies.member.plural
832
- });
833
- var noDataButtonProps = {
834
- "data-testid": "ntm-add-member-button",
835
- disabled: disabled,
836
- label: i18next__default.default.t("neetoTeamMembers.common.addNew_", {
837
- what: initializers.taxonomies.member.singular
838
- }),
839
- onClick: onClick
840
- };
841
- return {
842
- noDataTitle: noDataTitle,
843
- noDataDescription: noDataDescription,
844
- noDataIcon: lucideReact.Users,
845
- noDataButtonProps: noDataButtonProps
846
- };
847
- };
848
-
849
- 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; }
850
- 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__default.default(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; }
851
- var ManageMember = function ManageMember(_ref) {
852
- var _config$additionalFie, _manageMemberComponen;
853
- var config = _ref.config,
854
- onComplete = _ref.onComplete,
855
- _ref$roles = _ref.roles,
856
- roles = _ref$roles === void 0 ? [] : _ref$roles,
857
- _ref$selectedMember = _ref.selectedMember,
858
- selectedMember = _ref$selectedMember === void 0 ? null : _ref$selectedMember,
859
- _ref$componentConfig = _ref.componentConfig,
860
- componentConfig = _ref$componentConfig === void 0 ? {} : _ref$componentConfig;
861
- var _useTranslation = reactI18next.useTranslation(),
862
- t = _useTranslation.t;
863
- var _useState = React.useState(false),
864
- _useState2 = _slicedToArray__default.default(_useState, 2),
865
- isCreationStatusPollingEnabled = _useState2[0],
866
- setIsCreationStatusPollingEnabled = _useState2[1];
867
- var isViewPermissionGranted = config.permissions.view;
868
- var isNotDevelopment = initializers.globalProps.railsEnv !== "development";
869
- var _useFetchMembers = useTeamsApi.useFetchMembers({
870
- enabled: isViewPermissionGranted
871
- }),
872
- team = _useFetchMembers.data;
873
- var isManageMemberOpen = !!componentConfig.isOpen;
874
- var _useFetchMember = useTeamsApi.useFetchMember(selectedMember === null || selectedMember === void 0 ? void 0 : selectedMember.id, {
875
- enabled: !!selectedMember && isManageMemberOpen
876
- }),
877
- memberShowData = _useFetchMember.data,
878
- isMemberDetailLoading = _useFetchMember.isLoading;
879
- var isTimezoneFieldDisabled = selectedMember && memberShowData && !selectedMember.isOwner && !memberShowData.timezoneChangeEnabled;
880
- var _useState3 = React.useState(v2_RolesRadioGroup.FORM_PAGES.MAIN),
881
- _useState4 = _slicedToArray__default.default(_useState3, 2),
882
- currentPage = _useState4[0],
883
- setCurrentPage = _useState4[1];
884
- var formReference = React.useRef(null);
885
- var inputReference = React.useRef(null);
886
- var appListSavedStateReference = React.useRef({
887
- isAppListEnabled: true
888
- });
889
- var shouldSkipAppListPage = React.useRef(false);
890
- var formikValues = React.useRef(null);
891
- var manageMemberComponentConfig = _objectSpread(_objectSpread({}, v2_RolesRadioGroup.DEFAULT_COMPONENT_CONFIG), {}, {
892
- initialFocusRef: inputReference
893
- }, componentConfig);
894
- var Component = v2_RolesRadioGroup.MEMBERS_FORM_COMPONENT_MAPPER[manageMemberComponentConfig.type || "pane"];
895
- var haveToFetchRoles = ramda.isEmpty(roles) && isViewPermissionGranted;
896
- var isEditForm = !!selectedMember;
897
- var isLastPage = currentPage === v2_RolesRadioGroup.FORM_PAGES.CONFIRMATION || isEditForm;
898
- var _useFetchRoles = useRolesApi.useFetchRoles({
899
- select: function select(response) {
900
- var _response$organizatio;
901
- return ramda.reverse((_response$organizatio = response.organizationRoles) !== null && _response$organizatio !== void 0 ? _response$organizatio : []);
902
- },
903
- enabled: haveToFetchRoles
904
- }),
905
- _useFetchRoles$data = _useFetchRoles.data,
906
- rolesList = _useFetchRoles$data === void 0 ? roles : _useFetchRoles$data,
907
- isRolesLoading = _useFetchRoles.isLoading;
908
- var _useFetchGlobalRoles = useRolesApi.useFetchGlobalRoles({
909
- select: function select(response) {
910
- return ramda.groupBy(ramda.prop("appName"), response !== null && response !== void 0 ? response : []);
911
- },
912
- enabled: isNotDevelopment && !selectedMember && isViewPermissionGranted
913
- }),
914
- _useFetchGlobalRoles$ = _useFetchGlobalRoles.data,
915
- globalRoles = _useFetchGlobalRoles$ === void 0 ? {} : _useFetchGlobalRoles$,
916
- isGlobalRolesLoading = _useFetchGlobalRoles.isLoading;
917
- var filteredRoles = getFilteredRoles(rolesList, config);
918
- var initialFormValues = v2_RolesRadioGroup.renderInitialValues({
919
- additionalFieldsInitialValues: (_config$additionalFie = config.additionalFields) === null || _config$additionalFie === void 0 ? void 0 : _config$additionalFie.initialValues,
920
- globalRoles: globalRoles,
921
- memberShowData: memberShowData,
922
- roles: filteredRoles,
923
- selectedMember: selectedMember
924
- });
925
- var _useCreateMember = useTeamsApi.useCreateMember({
926
- onSuccess: function onSuccess() {
927
- return setIsCreationStatusPollingEnabled(true);
928
- }
929
- }),
930
- _useCreateMember$data = _useCreateMember.data,
931
- _useCreateMember$data2 = _useCreateMember$data === void 0 ? {} : _useCreateMember$data,
932
- jobId = _useCreateMember$data2.jobId,
933
- createMember = _useCreateMember.mutate,
934
- isCreatingMember = _useCreateMember.isPending;
935
- var refetchInterval = function refetchInterval(query) {
936
- var _ref2 = query.state.data || {},
937
- isCompleted = _ref2.isCompleted;
938
- if (isCompleted) {
939
- setIsCreationStatusPollingEnabled(false);
940
- return false;
941
- }
942
- return 2000;
943
- };
944
- var _useMembersCreationSt = useTeamsApi.useMembersCreationStatus(jobId, {
945
- refetchInterval: refetchInterval,
946
- enabled: isCreationStatusPollingEnabled && !!jobId
947
- }),
948
- creationStatus = _useMembersCreationSt.data;
949
- React.useEffect(function () {
950
- var _config$createMember;
951
- var _ref3 = creationStatus || {},
952
- isCompleted = _ref3.isCompleted,
953
- isSuccessful = _ref3.isSuccessful,
954
- users = _ref3.users,
955
- error = _ref3.error;
956
- if (!isCompleted) return;
957
- handleClose();
958
- config === null || config === void 0 || (_config$createMember = config.createMember) === null || _config$createMember === void 0 || (_config$createMember = _config$createMember.onSuccess) === null || _config$createMember === void 0 || _config$createMember.callback({
959
- users: users
960
- });
961
- if (isSuccessful) {
962
- utils.showThumbsUpToastr();
963
- } else {
964
- sonner.toast.error(error);
965
- }
966
- useTeamsApi.refetchMembers();
967
- }, [creationStatus]);
968
- var _useUpdateMember = useTeamsApi.useUpdateMember({
969
- onSuccess: function onSuccess() {
970
- var _config$updateMember, _globalProps$user;
971
- handleClose(true);
972
- config === null || config === void 0 || (_config$updateMember = config.updateMember) === null || _config$updateMember === void 0 || (_config$updateMember = _config$updateMember.onSuccess) === null || _config$updateMember === void 0 || _config$updateMember.callback();
973
- if ((selectedMember === null || selectedMember === void 0 ? void 0 : selectedMember.id) === ((_globalProps$user = initializers.globalProps.user) === null || _globalProps$user === void 0 ? void 0 : _globalProps$user.id)) {
974
- window.location.reload();
975
- }
976
- }
977
- }),
978
- updateMember = _useUpdateMember.mutate,
979
- isUpdatingMember = _useUpdateMember.isPending;
980
- var hasRoleChanged = function hasRoleChanged(_ref4) {
981
- var submitted = _ref4.submitted,
982
- values = _ref4.values;
983
- return submitted && (values === null || values === void 0 ? void 0 : values.role) !== (selectedMember === null || selectedMember === void 0 ? void 0 : selectedMember.role);
984
- };
985
- var handleClose = function handleClose() {
986
- var submitted = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
987
- onComplete({
988
- submitted: hasRoleChanged({
989
- submitted: submitted,
990
- values: formikValues.current
991
- })
992
- });
993
- setCurrentPage(v2_RolesRadioGroup.FORM_PAGES.MAIN);
994
- appListSavedStateReference.current = {
995
- isAppListEnabled: true
996
- };
997
- setIsCreationStatusPollingEnabled(false);
998
- };
999
- var _useProfileImageUploa = hooks.useProfileImageUpload({
1000
- uploadConfig: {
1001
- folder: "Auth",
1002
- customMetadata: {
1003
- appName: "neetoAuth"
1004
- }
1005
- }
1006
- }),
1007
- uploadImage = _useProfileImageUploa.uploadImage,
1008
- isUploading = _useProfileImageUploa.isUploading;
1009
- var handleUploadImage = /*#__PURE__*/function () {
1010
- var _ref5 = _asyncToGenerator__default.default(/*#__PURE__*/_regeneratorRuntime__default.default.mark(function _callee(image) {
1011
- var result;
1012
- return _regeneratorRuntime__default.default.wrap(function _callee$(_context) {
1013
- while (1) switch (_context.prev = _context.next) {
1014
- case 0:
1015
- _context.next = 2;
1016
- return uploadImage(image, function (uploadedImageData) {
1017
- result = uploadedImageData;
1018
- });
1019
- case 2:
1020
- return _context.abrupt("return", result);
1021
- case 3:
1022
- case "end":
1023
- return _context.stop();
1024
- }
1025
- }, _callee);
1026
- }));
1027
- return function handleUploadImage(_x) {
1028
- return _ref5.apply(this, arguments);
1029
- };
1030
- }();
1031
- var isProcessing = isCreatingMember || isUpdatingMember || isUploading || isRolesLoading || isGlobalRolesLoading || isMemberDetailLoading;
1032
- var handleAddMember = /*#__PURE__*/function () {
1033
- var _ref6 = _asyncToGenerator__default.default(/*#__PURE__*/_regeneratorRuntime__default.default.mark(function _callee2(values) {
1034
- var _values$avatar, payload, _yield$handleUploadIm, fileId, filePath, url;
1035
- return _regeneratorRuntime__default.default.wrap(function _callee2$(_context2) {
1036
- while (1) switch (_context2.prev = _context2.next) {
1037
- case 0:
1038
- if (!selectedMember) {
1039
- _context2.next = 25;
1040
- break;
1041
- }
1042
- payload = v2_RolesRadioGroup.renderPayload(values, selectedMember, initialFormValues);
1043
- if (!((_values$avatar = values.avatar) !== null && _values$avatar !== void 0 && _values$avatar.file)) {
1044
- _context2.next = 22;
1045
- break;
1046
- }
1047
- if (!payload.profile) payload.profile = {};
1048
- if (!(values.avatar.file === "_destroy")) {
1049
- _context2.next = 8;
1050
- break;
1051
- }
1052
- payload.profile.avatar = {
1053
- fileId: "_destroy",
1054
- filePath: "",
1055
- url: ""
1056
- };
1057
- _context2.next = 22;
1058
- break;
1059
- case 8:
1060
- _context2.prev = 8;
1061
- _context2.next = 11;
1062
- return handleUploadImage(values.avatar.file);
1063
- case 11:
1064
- _yield$handleUploadIm = _context2.sent;
1065
- fileId = _yield$handleUploadIm.fileId;
1066
- filePath = _yield$handleUploadIm.filePath;
1067
- url = _yield$handleUploadIm.url;
1068
- payload.profile.avatar = {
1069
- fileId: fileId,
1070
- filePath: filePath,
1071
- url: url
1072
- };
1073
- _context2.next = 22;
1074
- break;
1075
- case 18:
1076
- _context2.prev = 18;
1077
- _context2.t0 = _context2["catch"](8);
1078
- sonner.toast.error(_context2.t0.message);
1079
- return _context2.abrupt("return");
1080
- case 22:
1081
- updateMember({
1082
- id: selectedMember.id,
1083
- payload: payload
1084
- });
1085
- _context2.next = 26;
1086
- break;
1087
- case 25:
1088
- createMember(v2_RolesRadioGroup.renderPayload(values));
1089
- case 26:
1090
- case "end":
1091
- return _context2.stop();
1092
- }
1093
- }, _callee2, null, [[8, 18]]);
1094
- }));
1095
- return function handleAddMember(_x2) {
1096
- return _ref6.apply(this, arguments);
1097
- };
1098
- }();
1099
- var handleOnSubmit = /*#__PURE__*/function () {
1100
- var _ref8 = _asyncToGenerator__default.default(/*#__PURE__*/_regeneratorRuntime__default.default.mark(function _callee3(values, _ref7) {
1101
- var setSubmitting;
1102
- return _regeneratorRuntime__default.default.wrap(function _callee3$(_context3) {
1103
- while (1) switch (_context3.prev = _context3.next) {
1104
- case 0:
1105
- setSubmitting = _ref7.setSubmitting;
1106
- shouldSkipAppListPage.current = ramda.isEmpty(values.appRoles);
1107
- if (!isLastPage) {
1108
- _context3.next = 7;
1109
- break;
1110
- }
1111
- _context3.next = 5;
1112
- return handleAddMember(values);
1113
- case 5:
1114
- _context3.next = 8;
1115
- break;
1116
- case 7:
1117
- if (currentPage === v2_RolesRadioGroup.FORM_PAGES.APP_LIST || shouldSkipAppListPage.current) {
1118
- setCurrentPage(v2_RolesRadioGroup.FORM_PAGES.CONFIRMATION);
1119
- setSubmitting(false);
1120
- } else if (currentPage === v2_RolesRadioGroup.FORM_PAGES.MAIN) {
1121
- setCurrentPage(v2_RolesRadioGroup.FORM_PAGES.APP_LIST);
1122
- setSubmitting(false);
1123
- }
1124
- case 8:
1125
- case "end":
1126
- return _context3.stop();
1127
- }
1128
- }, _callee3);
1129
- }));
1130
- return function handleOnSubmit(_x3, _x4) {
1131
- return _ref8.apply(this, arguments);
1132
- };
1133
- }();
1134
- var handleBackButton = function handleBackButton() {
1135
- if (currentPage === v2_RolesRadioGroup.FORM_PAGES.APP_LIST || shouldSkipAppListPage.current || currentPage === v2_RolesRadioGroup.FORM_PAGES.INVITE_LINK) {
1136
- setCurrentPage(v2_RolesRadioGroup.FORM_PAGES.MAIN);
1137
- } else if (currentPage === v2_RolesRadioGroup.FORM_PAGES.CONFIRMATION) {
1138
- setCurrentPage(v2_RolesRadioGroup.FORM_PAGES.APP_LIST);
1139
- }
1140
- };
1141
- var getTitle = function getTitle() {
1142
- var memberLabel = initializers.taxonomies.member.singular;
1143
- if (selectedMember) {
1144
- return t("neetoTeamMembers.common.edit_", {
1145
- what: memberLabel
1146
- });
1147
- }
1148
- return currentPage === v2_RolesRadioGroup.FORM_PAGES.INVITE_LINK ? t("neetoTeamMembers.common.inviteViaLink") : t("neetoTeamMembers.common.addNew_", {
1149
- what: memberLabel
1150
- });
1151
- };
1152
- var renderRolesRadioGroup = function renderRolesRadioGroup(role) {
1153
- return /*#__PURE__*/jsxRuntime.jsx("div", {
1154
- className: "w-full pt-2",
1155
- children: /*#__PURE__*/jsxRuntime.jsx(v2_RolesRadioGroup.RolesRadioGroup, {
1156
- config: config,
1157
- globalRoles: globalRoles,
1158
- role: role,
1159
- isEdit: !!selectedMember,
1160
- roles: filteredRoles
1161
- })
1162
- });
1163
- };
1164
- var renderFormPage = function renderFormPage(page, emails, role, setFieldValue) {
1165
- var _memberShowData$membe, _memberShowData$membe2, _config$additionalFie2;
1166
- switch (page) {
1167
- case v2_RolesRadioGroup.FORM_PAGES.MAIN:
1168
- return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
1169
- children: [selectedMember && /*#__PURE__*/jsxRuntime.jsx(ProfileImage.ProfileImage, {}), selectedMember && /*#__PURE__*/jsxRuntime.jsx(NameInputs, {
1170
- innerRef: inputReference
1171
- }), /*#__PURE__*/jsxRuntime.jsx(MultipleEmailInput, {
1172
- emails: emails,
1173
- selectedMember: selectedMember,
1174
- setCurrentPage: setCurrentPage,
1175
- innerRef: inputReference
1176
- }), selectedMember && /*#__PURE__*/jsxRuntime.jsx(ProfileSettings, {
1177
- isTimezoneFieldDisabled: isTimezoneFieldDisabled,
1178
- setFieldValue: setFieldValue,
1179
- member: _objectSpread(_objectSpread({}, selectedMember), {}, {
1180
- countryIdentifier: (_memberShowData$membe = memberShowData === null || memberShowData === void 0 || (_memberShowData$membe2 = memberShowData.member) === null || _memberShowData$membe2 === void 0 ? void 0 : _memberShowData$membe2.countryIdentifier) !== null && _memberShowData$membe !== void 0 ? _memberShowData$membe : selectedMember.countryIdentifier
1181
- })
1182
- }), renderRolesRadioGroup(role), (_config$additionalFie2 = config.additionalFields) === null || _config$additionalFie2 === void 0 ? void 0 : _config$additionalFie2.component]
1183
- });
1184
- case v2_RolesRadioGroup.FORM_PAGES.APP_LIST:
1185
- return /*#__PURE__*/jsxRuntime.jsx(AppList, {
1186
- globalRoles: globalRoles,
1187
- savedStateRef: appListSavedStateReference
1188
- });
1189
- case v2_RolesRadioGroup.FORM_PAGES.CONFIRMATION:
1190
- return /*#__PURE__*/jsxRuntime.jsx(Confirmation, {});
1191
- case v2_RolesRadioGroup.FORM_PAGES.INVITE_LINK:
1192
- return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
1193
- children: [/*#__PURE__*/jsxRuntime.jsx(InviteLink$1, {
1194
- roles: filteredRoles
1195
- }), renderRolesRadioGroup(role)]
1196
- });
1197
- default:
1198
- return null;
1199
- }
1200
- };
1201
- var isSheet = manageMemberComponentConfig.type !== "modal";
1202
- return /*#__PURE__*/jsxRuntime.jsxs(Component, {
1203
- "data-testid": "ntm-manage-members-pane-wrapper",
1204
- isOpen: manageMemberComponentConfig.isOpen,
1205
- className: classnames__default.default("ntm-timezone-shadcn-overrides", manageMemberComponentConfig.className),
1206
- onClose: function onClose() {
1207
- return handleClose(false);
1208
- },
1209
- children: [/*#__PURE__*/jsxRuntime.jsxs(Component.Header, _objectSpread(_objectSpread({}, isSheet ? manageMemberComponentConfig.headerProps : {}), {}, {
1210
- className: neetoAtoms.cn(isSheet && currentPage !== v2_RolesRadioGroup.FORM_PAGES.MAIN && "flex flex-row items-center gap-2", isSheet && ((_manageMemberComponen = manageMemberComponentConfig.headerProps) === null || _manageMemberComponen === void 0 ? void 0 : _manageMemberComponen.className)),
1211
- children: [isSheet && currentPage !== v2_RolesRadioGroup.FORM_PAGES.MAIN && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
1212
- "aria-label": t("neetoTeamMembers.buttons.back"),
1213
- icon: lucideReact.ArrowLeft,
1214
- size: "icon-sm",
1215
- variant: "ghost",
1216
- onClick: handleBackButton
1217
- }), /*#__PURE__*/jsxRuntime.jsxs("div", {
1218
- children: [/*#__PURE__*/jsxRuntime.jsx(Component.Title, {
1219
- "data-testid": "ntm-manage-members-pane-header",
1220
- children: getTitle()
1221
- }), selectedMember && Component.Description && /*#__PURE__*/jsxRuntime.jsx(Component.Description, {
1222
- children: t("neetoTeamMembers.helpers.editPaneSubtitle")
1223
- })]
1224
- })]
1225
- })), /*#__PURE__*/jsxRuntime.jsx(Select.FormikForm, {
1226
- ref: formReference,
1227
- className: classnames__default.default({
1228
- "flex flex-1 flex-col overflow-hidden": isSheet
1229
- }),
1230
- formikProps: {
1231
- enableReinitialize: true,
1232
- initialValues: initialFormValues,
1233
- onSubmit: handleOnSubmit,
1234
- validationSchema: v2_RolesRadioGroup.buildValidationSchema(_objectSpread({
1235
- selectedMember: selectedMember
1236
- }, team))
1237
- },
1238
- children: function children(_ref9) {
1239
- var _manageMemberComponen2, _manageMemberComponen3;
1240
- var values = _ref9.values,
1241
- isValid = _ref9.isValid,
1242
- dirty = _ref9.dirty,
1243
- setFieldValue = _ref9.setFieldValue;
1244
- var emails = values.emails,
1245
- role = values.role;
1246
- formikValues.current = values;
1247
- return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
1248
- children: [/*#__PURE__*/jsxRuntime.jsx(index.ScrollToErrorField, {
1249
- formRef: formReference
1250
- }), /*#__PURE__*/jsxRuntime.jsxs("div", _objectSpread(_objectSpread({}, isSheet ? manageMemberComponentConfig.bodyProps : {}), {}, {
1251
- className: neetoAtoms.cn(isSheet ? "w-full flex-1 space-y-6 overflow-y-auto px-6 pb-4" : "w-full space-y-6 pb-4", isSheet && ((_manageMemberComponen2 = manageMemberComponentConfig.bodyProps) === null || _manageMemberComponen2 === void 0 ? void 0 : _manageMemberComponen2.className)),
1252
- children: [isSheet && isCreationStatusPollingEnabled && /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Alert, {
1253
- children: [/*#__PURE__*/jsxRuntime.jsx(lucideReact.Info, {
1254
- className: "size-4"
1255
- }), /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Alert.Title, {
1256
- className: "flex items-center gap-2",
1257
- children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Spinner, {}), t("neetoTeamMembers.helpers.memberCreationStatus", {
1258
- count: emails.length
1259
- })]
1260
- })]
1261
- }), renderFormPage(currentPage, emails, role, setFieldValue)]
1262
- })), currentPage !== v2_RolesRadioGroup.FORM_PAGES.INVITE_LINK && /*#__PURE__*/jsxRuntime.jsx(Component.Footer, _objectSpread(_objectSpread({}, isSheet ? manageMemberComponentConfig.footerProps : {}), {}, {
1263
- className: neetoAtoms.cn("flex gap-2", isSheet && ((_manageMemberComponen3 = manageMemberComponentConfig.footerProps) === null || _manageMemberComponen3 === void 0 ? void 0 : _manageMemberComponen3.className)),
1264
- children: /*#__PURE__*/jsxRuntime.jsx(ActionBlock.FormikActionBlock, {
1265
- cancelButtonProps: {
1266
- "data-testid": "ntm-manage-member-cancel-button",
1267
- onClick: function onClick() {
1268
- return handleClose(false);
1269
- }
1270
- },
1271
- isSubmitting: isProcessing || isCreationStatusPollingEnabled,
1272
- submitButtonProps: {
1273
- "data-testid": isLastPage ? "ntm-manage-member-submit-button" : "ntm-manage-member-continue-button",
1274
- label: isLastPage ? t("neetoTeamMembers.buttons.saveChanges") : t("neetoTeamMembers.buttons.continue"),
1275
- disabled: !isValid || isProcessing || !dirty || isCreationStatusPollingEnabled
1276
- }
1277
- })
1278
- }))]
1279
- });
1280
- }
1281
- })]
1282
- });
1283
- };
1284
-
1285
- exports.DEFAULT_RADIX = DEFAULT_RADIX;
1286
- exports.DEFAULT_SELECTED_ROWS = DEFAULT_SELECTED_ROWS;
1287
- exports.ManageMember = ManageMember;
1288
- exports.generateNoDataContent = generateNoDataContent;
1289
- exports.getColumnData = getColumnData;
1290
- exports.getFilteredRoles = getFilteredRoles;
1291
- exports.handlePageChange = handlePageChange;
1292
- exports.renderUpdateAlert = renderUpdateAlert;
1293
- //# sourceMappingURL=index-CBt9gCBK.js.map