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