@bigbinary/neeto-team-members-frontend 4.5.25 → 4.6.0-beta4

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 (79) hide show
  1. package/app/javascript/src/translations/en.json +18 -4
  2. package/dist/Groups.js +2 -2
  3. package/dist/ManageMember.js +9 -7
  4. package/dist/ManageMember.js.map +1 -1
  5. package/dist/MembersInvite.js +250 -0
  6. package/dist/MembersInvite.js.map +1 -0
  7. package/dist/{Permissions-BzrTU6IK.js → Permissions-Dz8dLK2T.js} +4 -4
  8. package/dist/{Permissions-BzrTU6IK.js.map → Permissions-Dz8dLK2T.js.map} +1 -1
  9. package/dist/Profile.js +1 -1
  10. package/dist/Roles.js +4 -4
  11. package/dist/Roles.js.map +1 -1
  12. package/dist/{RolesRadioGroup-CWk-AXHw.js → RolesRadioGroup-Bx1tBk7i.js} +19 -5
  13. package/dist/RolesRadioGroup-Bx1tBk7i.js.map +1 -0
  14. package/dist/{RolesRadioGroup-Dj_Yp_69.js → RolesRadioGroup-uBXbN2fZ.js} +18 -6
  15. package/dist/RolesRadioGroup-uBXbN2fZ.js.map +1 -0
  16. package/dist/RolesRadioGroup.js +3 -2
  17. package/dist/RolesRadioGroup.js.map +1 -1
  18. package/dist/TeamMembers.js +7 -5
  19. package/dist/TeamMembers.js.map +1 -1
  20. package/dist/cjs/Groups.js +12 -12
  21. package/dist/cjs/Groups.js.map +1 -1
  22. package/dist/cjs/ManageMember.js +9 -7
  23. package/dist/cjs/ManageMember.js.map +1 -1
  24. package/dist/cjs/MembersDropdown.js +8 -8
  25. package/dist/cjs/MembersDropdown.js.map +1 -1
  26. package/dist/cjs/MembersInvite.js +272 -0
  27. package/dist/cjs/MembersInvite.js.map +1 -0
  28. package/dist/cjs/Permissions.js +1 -1
  29. package/dist/cjs/Profile.js +9 -9
  30. package/dist/cjs/Profile.js.map +1 -1
  31. package/dist/cjs/Roles.js +27 -27
  32. package/dist/cjs/Roles.js.map +1 -1
  33. package/dist/cjs/RolesRadioGroup.js +3 -2
  34. package/dist/cjs/RolesRadioGroup.js.map +1 -1
  35. package/dist/cjs/TeamMembers.js +26 -24
  36. package/dist/cjs/TeamMembers.js.map +1 -1
  37. package/dist/cjs/TeamsAndMembersDropdown.js +14 -14
  38. package/dist/cjs/TeamsAndMembersDropdown.js.map +1 -1
  39. package/dist/cjs/TeamsDropdown.js +4 -4
  40. package/dist/cjs/TeamsDropdown.js.map +1 -1
  41. package/dist/cjs/constants.js +1 -1
  42. package/dist/cjs/hooks.js +3 -3
  43. package/dist/cjs/index.js +14 -10
  44. package/dist/cjs/index.js.map +1 -1
  45. package/dist/cjs/utils.js +2 -2
  46. package/dist/{constants-BdTiHt55.js → constants-Bv0kiGjC.js} +3 -2
  47. package/dist/constants-Bv0kiGjC.js.map +1 -0
  48. package/dist/{constants-CVJk8LWV.js → constants-CoKdUpNz.js} +3 -2
  49. package/dist/constants-CoKdUpNz.js.map +1 -0
  50. package/dist/constants.js +1 -1
  51. package/dist/hooks.js +3 -3
  52. package/dist/{index-CvR0tAN3.js → index-13ZcJhTR.js} +213 -40
  53. package/dist/index-13ZcJhTR.js.map +1 -0
  54. package/dist/{index-CMMrjr6R.js → index-7t984CiR.js} +222 -49
  55. package/dist/index-7t984CiR.js.map +1 -0
  56. package/dist/{index-CWyeI4Kz.js → index-B0Vfgumn.js} +6 -6
  57. package/dist/{index-CWyeI4Kz.js.map → index-B0Vfgumn.js.map} +1 -1
  58. package/dist/{index-Dvjcz-b3.js → index-ChnZuzES.js} +2 -2
  59. package/dist/{index-Dvjcz-b3.js.map → index-ChnZuzES.js.map} +1 -1
  60. package/dist/{index-DJU85TIs.js → index-PGu8HL2J.js} +3 -3
  61. package/dist/{index-DJU85TIs.js.map → index-PGu8HL2J.js.map} +1 -1
  62. package/dist/index.js +11 -8
  63. package/dist/index.js.map +1 -1
  64. package/dist/{useMembersSidenav-DZL248nl.js → useMembersSidenav-BNprHDYJ.js} +2 -2
  65. package/dist/{useMembersSidenav-DZL248nl.js.map → useMembersSidenav-BNprHDYJ.js.map} +1 -1
  66. package/dist/{useMembersSidenav-DoqlX-eu.js → useMembersSidenav-BtH5hu6v.js} +2 -2
  67. package/dist/{useMembersSidenav-DoqlX-eu.js.map → useMembersSidenav-BtH5hu6v.js.map} +1 -1
  68. package/dist/{useTeamsApi-CsIY4EOv.js → useTeamsApi-B3QBs2O9.js} +2 -2
  69. package/dist/{useTeamsApi-CsIY4EOv.js.map → useTeamsApi-B3QBs2O9.js.map} +1 -1
  70. package/dist/{useTeamsApi-DA7o82Wl.js → useTeamsApi-C90SlWkS.js} +2 -2
  71. package/dist/{useTeamsApi-DA7o82Wl.js.map → useTeamsApi-C90SlWkS.js.map} +1 -1
  72. package/dist/utils.js +2 -2
  73. package/package.json +4 -4
  74. package/dist/RolesRadioGroup-CWk-AXHw.js.map +0 -1
  75. package/dist/RolesRadioGroup-Dj_Yp_69.js.map +0 -1
  76. package/dist/constants-BdTiHt55.js.map +0 -1
  77. package/dist/constants-CVJk8LWV.js.map +0 -1
  78. package/dist/index-CMMrjr6R.js.map +0 -1
  79. package/dist/index-CvR0tAN3.js.map +0 -1
@@ -2,7 +2,7 @@
2
2
 
3
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
4
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
5
- var require$$0 = require('react');
5
+ var React = require('react');
6
6
  var classnames = require('classnames');
7
7
  var initializers = require('@bigbinary/neeto-commons-frontend/initializers');
8
8
  var utils = require('@bigbinary/neeto-commons-frontend/utils');
@@ -17,8 +17,8 @@ var ActionBlock = require('@bigbinary/neetoui/formik/ActionBlock');
17
17
  var Form = require('@bigbinary/neetoui/formik/Form');
18
18
  var ramda = require('ramda');
19
19
  var reactI18next = require('react-i18next');
20
- var index = require('./index-CWyeI4Kz.js');
21
- var useTeamsApi = require('./useTeamsApi-DA7o82Wl.js');
20
+ var index = require('./index-B0Vfgumn.js');
21
+ var useTeamsApi = require('./useTeamsApi-C90SlWkS.js');
22
22
  var injectCss = require('./inject-css-vQvjPR2x.js');
23
23
  var formik = require('formik');
24
24
  var neetoCist = require('@bigbinary/neeto-cist');
@@ -26,15 +26,22 @@ var Checkbox = require('@bigbinary/neetoui/Checkbox');
26
26
  var Tooltip = require('@bigbinary/neetoui/Tooltip');
27
27
  var Select = require('@bigbinary/neetoui/formik/Select');
28
28
  var Switch = require('@bigbinary/neetoui/formik/Switch');
29
- var RolesRadioGroup = require('./RolesRadioGroup-CWk-AXHw.js');
29
+ var RolesRadioGroup = require('./RolesRadioGroup-Bx1tBk7i.js');
30
30
  var jsxRuntime = require('react/jsx-runtime');
31
31
  var constants = require('@bigbinary/neeto-commons-frontend/constants');
32
+ var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
33
+ var MenuHorizontal = require('@bigbinary/neeto-icons/MenuHorizontal');
34
+ var CopyToClipboardButton = require('@bigbinary/neeto-molecules/CopyToClipboardButton');
35
+ var Dropdown = require('@bigbinary/neetoui/Dropdown');
36
+ var reactQuery = require('@tanstack/react-query');
37
+ var axios = require('axios');
38
+ var constants$1 = require('./constants-CoKdUpNz.js');
39
+ var Label = require('@bigbinary/neetoui/Label');
32
40
  var MultiEmailInput = require('@bigbinary/neetoui/formik/MultiEmailInput');
33
41
  var Input = require('@bigbinary/neetoui/formik/Input');
34
42
  var i18next = require('i18next');
35
43
  var MoreDropdown = require('@bigbinary/neeto-molecules/MoreDropdown');
36
44
  var Avatar = require('@bigbinary/neetoui/Avatar');
37
- var Dropdown = require('@bigbinary/neetoui/Dropdown');
38
45
 
39
46
  var _getQueryParams = utils.getQueryParams(),
40
47
  page = _getQueryParams.page,
@@ -60,9 +67,9 @@ var DEFAULT_SELECTED_ROWS = {
60
67
  };
61
68
  var TEAM_MEMBERS_HIDDEN_COLUMNS = "TEAM_MEMBERS_TABLE_HIDDEN_COLUMNS";
62
69
 
63
- 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; }
64
- 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), !0).forEach(function (r) { _defineProperty(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; }
65
- var MenuItem = Dropdown.MenuItem;
70
+ 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; }
71
+ 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), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
72
+ var MenuItem$1 = Dropdown.MenuItem;
66
73
  var renderNameColumn = function renderNameColumn(_ref) {
67
74
  var config = _ref.config,
68
75
  handleUpdateRole = _ref.handleUpdateRole,
@@ -118,7 +125,7 @@ var renderDropdownButton = function renderDropdownButton(_ref2) {
118
125
  }
119
126
  },
120
127
  menuTopChildren: /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
121
- children: [/*#__PURE__*/jsxRuntime.jsx(MenuItem.Button, {
128
+ children: [/*#__PURE__*/jsxRuntime.jsx(MenuItem$1.Button, {
122
129
  className: "ntm-dropdown__button",
123
130
  "data-cy": "ntm-edit-member-button",
124
131
  size: "small",
@@ -126,7 +133,7 @@ var renderDropdownButton = function renderDropdownButton(_ref2) {
126
133
  return handleUpdateRole(tableData);
127
134
  },
128
135
  children: i18next.t("neetoTeamMembers.common.edit")
129
- }), 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(MenuItem.Button, {
136
+ }), 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(MenuItem$1.Button, {
130
137
  className: "ntm-dropdown__button",
131
138
  "data-cy": "ntm-deactivate-member-button",
132
139
  size: "small",
@@ -150,7 +157,7 @@ var getDefaultAlertMessage = function getDefaultAlertMessage(_ref4) {
150
157
  var member = _ref4.member;
151
158
  return /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
152
159
  i18nKey: "neetoTeamMembers.alerts.messages.removeMember",
153
- values: _objectSpread$1(_objectSpread$1({}, constants.SINGULAR), {}, {
160
+ values: _objectSpread$2(_objectSpread$2({}, constants.SINGULAR), {}, {
154
161
  person: member === null || member === void 0 ? void 0 : member.displayName
155
162
  })
156
163
  });
@@ -342,7 +349,7 @@ var AppList = function AppList(_ref) {
342
349
  savedStateRef = _ref.savedStateRef;
343
350
  var _useTranslation = reactI18next.useTranslation(),
344
351
  t = _useTranslation.t;
345
- var _useState = require$$0.useState(savedStateRef.current.isAppListEnabled),
352
+ var _useState = React.useState(savedStateRef.current.isAppListEnabled),
346
353
  _useState2 = _slicedToArray(_useState, 2),
347
354
  isAppListEnabled = _useState2[0],
348
355
  setIsAppListEnabled = _useState2[1];
@@ -355,7 +362,7 @@ var AppList = function AppList(_ref) {
355
362
  setFieldValue = _useFormikContext.setFieldValue;
356
363
  var selectedEmail = ramda.pluck("value", emails);
357
364
  var isManageProductsLinkEnabled = ((_globalProps$user = initializers.globalProps.user) === null || _globalProps$user === void 0 ? void 0 : _globalProps$user.isOwner) && Object.keys(globalRoles).length >= 3;
358
- require$$0.useEffect(function () {
365
+ React.useEffect(function () {
359
366
  if (savedStateRef.current.isAppListEnabled !== isAppListEnabled) {
360
367
  appRoles === null || appRoles === void 0 || appRoles.forEach(function (appRole, index) {
361
368
  var _globalProps$appName;
@@ -542,6 +549,150 @@ var Confirmation = function Confirmation() {
542
549
  });
543
550
  };
544
551
 
552
+ var fetch = function fetch() {
553
+ return axios.get("".concat(constants$1.BASE_URL, "/api/v1/invite_links"));
554
+ };
555
+ var create = function create(payload) {
556
+ return axios.post("".concat(constants$1.BASE_URL, "/api/v1/invite_links"), {
557
+ inviteLink: payload
558
+ });
559
+ };
560
+ var regenerate = function regenerate(inviteLinkId, payload) {
561
+ return axios.put("".concat(constants$1.BASE_URL, "/api/v1/invite_links/").concat(inviteLinkId), {
562
+ inviteLink: payload
563
+ });
564
+ };
565
+ var inviteLinksApi = {
566
+ fetch: fetch,
567
+ create: create,
568
+ regenerate: regenerate
569
+ };
570
+
571
+ 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; }
572
+ 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), !0).forEach(function (r) { _defineProperty(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; }
573
+ var useFetchInviteLinks = function useFetchInviteLinks() {
574
+ return reactQuery.useQuery({
575
+ queryKey: [constants$1.QUERY_KEYS.INVITATION_LINK],
576
+ queryFn: function queryFn() {
577
+ return inviteLinksApi.fetch();
578
+ }
579
+ });
580
+ };
581
+ var useCreateInviteLinks = function useCreateInviteLinks() {
582
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
583
+ return reactUtils.useMutationWithInvalidation(function (payload) {
584
+ return inviteLinksApi.create(payload);
585
+ }, _objectSpread$1({
586
+ keysToInvalidate: [[constants$1.QUERY_KEYS.INVITATION_LINK]]
587
+ }, options));
588
+ };
589
+ var useRegenerateInviteLink = function useRegenerateInviteLink() {
590
+ return reactUtils.useMutationWithInvalidation(function (_ref) {
591
+ var inviteLinkId = _ref.inviteLinkId,
592
+ payload = _ref.payload;
593
+ return inviteLinksApi.regenerate(inviteLinkId, payload);
594
+ }, {
595
+ keysToInvalidate: [[constants$1.QUERY_KEYS.INVITATION_LINK]]
596
+ });
597
+ };
598
+
599
+ var Menu = Dropdown.Menu,
600
+ MenuItem = Dropdown.MenuItem;
601
+ var MenuItemButton = MenuItem.Button;
602
+ var InviteLink = function InviteLink(_ref) {
603
+ var _inviteLinks$, _inviteLinks$2, _inviteLinks$3, _inviteLinks$4, _inviteLinks$5, _inviteLinks$6;
604
+ var t = _ref.t,
605
+ roles = _ref.roles;
606
+ var _useCreateInviteLinks = useCreateInviteLinks(),
607
+ createInviteLink = _useCreateInviteLinks.mutate,
608
+ isCreateLinkPending = _useCreateInviteLinks.isPending;
609
+ var _useRegenerateInviteL = useRegenerateInviteLink(),
610
+ regenerateLink = _useRegenerateInviteL.mutate;
611
+ var _useFetchInviteLinks = useFetchInviteLinks(),
612
+ _useFetchInviteLinks$ = _useFetchInviteLinks.data,
613
+ _useFetchInviteLinks$2 = _useFetchInviteLinks$ === void 0 ? {} : _useFetchInviteLinks$,
614
+ _useFetchInviteLinks$3 = _useFetchInviteLinks$2.inviteLinks,
615
+ inviteLinks = _useFetchInviteLinks$3 === void 0 ? [] : _useFetchInviteLinks$3,
616
+ isFetchLinkLoading = _useFetchInviteLinks.isLoading;
617
+ var _useFormikContext = formik.useFormikContext(),
618
+ values = _useFormikContext.values;
619
+ var isInviteLinkEmpty = !isFetchLinkLoading && ramda.isEmpty(inviteLinks);
620
+ var handleRegenerate = function handleRegenerate() {
621
+ var _findBy = neetoCist.findBy({
622
+ name: values.role
623
+ }, roles),
624
+ roleId = _findBy.id;
625
+ if (ramda.isEmpty(inviteLinks)) createInviteLink({
626
+ organizationRoleId: roleId
627
+ });
628
+ regenerateLink({
629
+ inviteLinkId: inviteLinks[0].id,
630
+ payload: {
631
+ organizationRoleId: roleId
632
+ }
633
+ });
634
+ };
635
+ if (isFetchLinkLoading || isCreateLinkPending) {
636
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
637
+ className: "neeto-ui-w-full flex justify-center items-center",
638
+ children: /*#__PURE__*/jsxRuntime.jsx(Spinner, {
639
+ size: "large"
640
+ })
641
+ });
642
+ }
643
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
644
+ className: "neeto-ui-w-full space-y-2",
645
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
646
+ className: "flex items-center space-x-1",
647
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
648
+ className: "neeto-ui-rounded-md neeto-ui-border-gray-300 neeto-ui-bg-gray-50 relative flex min-w-0 flex-grow items-center truncate border leading-none",
649
+ children: [/*#__PURE__*/jsxRuntime.jsx("div", {
650
+ className: "relative min-w-0 flex-grow truncate p-2 leading-none",
651
+ children: !isInviteLinkEmpty && RolesRadioGroup.getInviteURL(inviteLinks === null || inviteLinks === void 0 || (_inviteLinks$ = inviteLinks[0]) === null || _inviteLinks$ === void 0 ? void 0 : _inviteLinks$.token)
652
+ }), isInviteLinkEmpty ? /*#__PURE__*/jsxRuntime.jsx(Button, {
653
+ className: "rounded-l-none",
654
+ label: t("neetoTeamMembers.buttons.generateLink"),
655
+ onClick: handleRegenerate
656
+ }) : /*#__PURE__*/jsxRuntime.jsx(CopyToClipboardButton, {
657
+ className: "rounded-l-none",
658
+ label: t("neetoTeamMembers.buttons.copyLink"),
659
+ value: RolesRadioGroup.getInviteURL(inviteLinks === null || inviteLinks === void 0 || (_inviteLinks$2 = inviteLinks[0]) === null || _inviteLinks$2 === void 0 ? void 0 : _inviteLinks$2.token)
660
+ })]
661
+ }), !isInviteLinkEmpty && /*#__PURE__*/jsxRuntime.jsx(Dropdown, {
662
+ buttonStyle: "text",
663
+ icon: MenuHorizontal,
664
+ children: /*#__PURE__*/jsxRuntime.jsx(Menu, {
665
+ children: /*#__PURE__*/jsxRuntime.jsx(MenuItem, {
666
+ children: /*#__PURE__*/jsxRuntime.jsx(MenuItemButton, {
667
+ onClick: handleRegenerate,
668
+ children: t("neetoTeamMembers.buttons.regenerateLink")
669
+ })
670
+ })
671
+ })
672
+ })]
673
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
674
+ children: !isInviteLinkEmpty && /*#__PURE__*/jsxRuntime.jsx(Typography, {
675
+ className: "leading-relaxed neeto-ui-text-gray-500",
676
+ style: "body3",
677
+ children: /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
678
+ components: {
679
+ strong: /*#__PURE__*/jsxRuntime.jsx("strong", {})
680
+ },
681
+ i18nKey: "neetoTeamMembers.alerts.messages.inviteLink",
682
+ values: {
683
+ expiryDays: RolesRadioGroup.remainingExpiryDays(inviteLinks === null || inviteLinks === void 0 || (_inviteLinks$3 = inviteLinks[0]) === null || _inviteLinks$3 === void 0 ? void 0 : _inviteLinks$3.expiresAt),
684
+ 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,
685
+ inviteLimit: inviteLinks === null || inviteLinks === void 0 || (_inviteLinks$5 = inviteLinks[0]) === null || _inviteLinks$5 === void 0 ? void 0 : _inviteLinks$5.inviteLimit,
686
+ appName: initializers.globalProps.appName,
687
+ emailDomain: inviteLinks === null || inviteLinks === void 0 || (_inviteLinks$6 = inviteLinks[0]) === null || _inviteLinks$6 === void 0 ? void 0 : _inviteLinks$6.domain
688
+ }
689
+ })
690
+ })
691
+ })]
692
+ });
693
+ };
694
+ var InviteLink$1 = reactUtils.withT(InviteLink);
695
+
545
696
  var MultipleEmailInput = function MultipleEmailInput(_ref) {
546
697
  var _head;
547
698
  var _ref$emails = _ref.emails,
@@ -549,6 +700,8 @@ var MultipleEmailInput = function MultipleEmailInput(_ref) {
549
700
  innerRef = _ref.innerRef,
550
701
  _ref$selectedMember = _ref.selectedMember,
551
702
  selectedMember = _ref$selectedMember === void 0 ? null : _ref$selectedMember;
703
+ _ref.setCurrentPage;
704
+ var isInviteLinkFeatureEnabled = false;
552
705
  var _useTranslation = reactI18next.useTranslation(),
553
706
  t = _useTranslation.t;
554
707
  var _useFormikContext = formik.useFormikContext(),
@@ -579,16 +732,24 @@ var MultipleEmailInput = function MultipleEmailInput(_ref) {
579
732
  })
580
733
  }),
581
734
  onChange: handleInputChange
582
- }) : /*#__PURE__*/jsxRuntime.jsx(MultiEmailInput, {
583
- required: true,
584
- counter: RolesRadioGroup.COUNTER_PROPS,
585
- "data-cy": "ntm-manage-member-email-input",
586
- filterInvalidEmails: RolesRadioGroup.FILTER_INVALID_EMAILS,
587
- helpText: t("neetoTeamMembers.helpers.enterMultipleEmails"),
588
- label: t("neetoTeamMembers.common.email", constants.PLURAL),
589
- name: "emails",
590
- placeholder: t("neetoTeamMembers.placeholders.email"),
591
- ref: innerRef
735
+ }) : /*#__PURE__*/jsxRuntime.jsxs("div", {
736
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
737
+ className: "flex items-center justify-between pb-2",
738
+ children: [/*#__PURE__*/jsxRuntime.jsx(Label, {
739
+ required: true,
740
+ children: t("neetoTeamMembers.common.email", constants.PLURAL)
741
+ }), isInviteLinkFeatureEnabled]
742
+ }), /*#__PURE__*/jsxRuntime.jsx(MultiEmailInput, {
743
+ required: true,
744
+ counter: RolesRadioGroup.COUNTER_PROPS,
745
+ "data-cy": "ntm-manage-member-email-input",
746
+ filterInvalidEmails: RolesRadioGroup.FILTER_INVALID_EMAILS,
747
+ helpText: t("neetoTeamMembers.helpers.enterMultipleEmails"),
748
+ label: "",
749
+ name: "emails",
750
+ placeholder: t("neetoTeamMembers.placeholders.email"),
751
+ ref: innerRef
752
+ })]
592
753
  })
593
754
  });
594
755
  };
@@ -626,7 +787,7 @@ var ManageMember = function ManageMember(_ref) {
626
787
  componentConfig = _ref$componentConfig === void 0 ? {} : _ref$componentConfig;
627
788
  var _useTranslation = reactI18next.useTranslation(),
628
789
  t = _useTranslation.t;
629
- var _useState = require$$0.useState(false),
790
+ var _useState = React.useState(false),
630
791
  _useState2 = _slicedToArray(_useState, 2),
631
792
  isCreationStatusPollingEnabled = _useState2[0],
632
793
  setIsCreationStatusPollingEnabled = _useState2[1];
@@ -636,17 +797,17 @@ var ManageMember = function ManageMember(_ref) {
636
797
  enabled: isViewPermissionGranted
637
798
  }),
638
799
  team = _useFetchMembers.data;
639
- var _useState3 = require$$0.useState(RolesRadioGroup.FORM_PAGES.MAIN),
800
+ var _useState3 = React.useState(RolesRadioGroup.FORM_PAGES.MAIN),
640
801
  _useState4 = _slicedToArray(_useState3, 2),
641
802
  currentPage = _useState4[0],
642
803
  setCurrentPage = _useState4[1];
643
- var formReference = require$$0.useRef(null);
644
- var inputReference = require$$0.useRef(null);
645
- var appListSavedStateReference = require$$0.useRef({
804
+ var formReference = React.useRef(null);
805
+ var inputReference = React.useRef(null);
806
+ var appListSavedStateReference = React.useRef({
646
807
  isAppListEnabled: true
647
808
  });
648
- var shouldSkipAppListPage = require$$0.useRef(false);
649
- var formikValues = require$$0.useRef(null);
809
+ var shouldSkipAppListPage = React.useRef(false);
810
+ var formikValues = React.useRef(null);
650
811
  var manageMemberComponentConfig = _objectSpread(_objectSpread({}, RolesRadioGroup.DEFAULT_COMPONENT_CONFIG), {}, {
651
812
  initialFocusRef: inputReference
652
813
  }, componentConfig);
@@ -698,7 +859,7 @@ var ManageMember = function ManageMember(_ref) {
698
859
  enabled: isCreationStatusPollingEnabled
699
860
  }),
700
861
  creationStatus = _useMembersCreationSt.data;
701
- require$$0.useEffect(function () {
862
+ React.useEffect(function () {
702
863
  var _config$createMember;
703
864
  var _ref3 = creationStatus || {},
704
865
  isCompleted = _ref3.isCompleted,
@@ -747,9 +908,7 @@ var ManageMember = function ManageMember(_ref) {
747
908
  };
748
909
  var isProcessing = isCreatingMember || isUpdatingMember || isRolesLoading || isGlobalRolesLoading;
749
910
  var handleAddMember = function handleAddMember(values) {
750
- selectedMember ?
751
- // @ts-ignore
752
- updateMember({
911
+ selectedMember ? updateMember({
753
912
  id: selectedMember.id,
754
913
  payload: RolesRadioGroup.renderPayload(values, selectedMember)
755
914
  }) : createMember(RolesRadioGroup.renderPayload(values));
@@ -768,17 +927,30 @@ var ManageMember = function ManageMember(_ref) {
768
927
  }
769
928
  };
770
929
  var handleBackButton = function handleBackButton() {
771
- if (currentPage === RolesRadioGroup.FORM_PAGES.APP_LIST || shouldSkipAppListPage.current) {
930
+ if (currentPage === RolesRadioGroup.FORM_PAGES.APP_LIST || shouldSkipAppListPage.current || currentPage === RolesRadioGroup.FORM_PAGES.INVITE_LINK) {
772
931
  setCurrentPage(RolesRadioGroup.FORM_PAGES.MAIN);
773
932
  } else if (currentPage === RolesRadioGroup.FORM_PAGES.CONFIRMATION) {
774
933
  setCurrentPage(RolesRadioGroup.FORM_PAGES.APP_LIST);
775
934
  }
776
935
  };
777
936
  var getTitle = function getTitle() {
778
- return selectedMember ? t("neetoTeamMembers.common.edit_", {
779
- what: initializers.taxonomies.member.singular
780
- }) : t("neetoTeamMembers.common.addNew_", {
781
- what: initializers.taxonomies.member.singular
937
+ var memberLabel = initializers.taxonomies.member.singular;
938
+ if (selectedMember) {
939
+ return t("neetoTeamMembers.common.edit_", {
940
+ what: memberLabel
941
+ });
942
+ }
943
+ return currentPage === RolesRadioGroup.FORM_PAGES.INVITE_LINK ? t("neetoTeamMembers.common.inviteViaLink") : t("neetoTeamMembers.common.addNew_", {
944
+ what: memberLabel
945
+ });
946
+ };
947
+ var renderRolesRadioGroup = function renderRolesRadioGroup(role) {
948
+ return /*#__PURE__*/jsxRuntime.jsx(RolesRadioGroup.RolesRadioGroup, {
949
+ config: config,
950
+ globalRoles: globalRoles,
951
+ role: role,
952
+ isEdit: !!selectedMember,
953
+ roles: filteredRoles
782
954
  });
783
955
  };
784
956
  var renderFormPage = function renderFormPage(page, emails, role) {
@@ -791,14 +963,9 @@ var ManageMember = function ManageMember(_ref) {
791
963
  }), /*#__PURE__*/jsxRuntime.jsx(MultipleEmailInput, {
792
964
  emails: emails,
793
965
  selectedMember: selectedMember,
966
+ setCurrentPage: setCurrentPage,
794
967
  innerRef: inputReference
795
- }), /*#__PURE__*/jsxRuntime.jsx(RolesRadioGroup.RolesRadioGroup, {
796
- config: config,
797
- globalRoles: globalRoles,
798
- role: role,
799
- isEdit: !!selectedMember,
800
- roles: filteredRoles
801
- }), (_config$additionalFie = config.additionalFields) === null || _config$additionalFie === void 0 ? void 0 : _config$additionalFie.component]
968
+ }), renderRolesRadioGroup(role), (_config$additionalFie = config.additionalFields) === null || _config$additionalFie === void 0 ? void 0 : _config$additionalFie.component]
802
969
  });
803
970
  case RolesRadioGroup.FORM_PAGES.APP_LIST:
804
971
  return /*#__PURE__*/jsxRuntime.jsx(AppList, {
@@ -807,6 +974,12 @@ var ManageMember = function ManageMember(_ref) {
807
974
  });
808
975
  case RolesRadioGroup.FORM_PAGES.CONFIRMATION:
809
976
  return /*#__PURE__*/jsxRuntime.jsx(Confirmation, {});
977
+ case RolesRadioGroup.FORM_PAGES.INVITE_LINK:
978
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
979
+ children: [/*#__PURE__*/jsxRuntime.jsx(InviteLink$1, {
980
+ roles: filteredRoles
981
+ }), renderRolesRadioGroup(role)]
982
+ });
810
983
  default:
811
984
  return null;
812
985
  }
@@ -878,16 +1051,16 @@ var ManageMember = function ManageMember(_ref) {
878
1051
  count: emails.length
879
1052
  })]
880
1053
  }), renderFormPage(currentPage, emails, role)]
881
- })), /*#__PURE__*/jsxRuntime.jsx(Component.Footer, _objectSpread(_objectSpread({}, manageMemberComponentConfig.footerProps), {}, {
1054
+ })), currentPage !== RolesRadioGroup.FORM_PAGES.INVITE_LINK && /*#__PURE__*/jsxRuntime.jsx(Component.Footer, _objectSpread(_objectSpread({}, manageMemberComponentConfig.footerProps), {}, {
882
1055
  className: classnames(["ntm-members-form__footer", (_manageMemberComponen3 = manageMemberComponentConfig.footerProps) === null || _manageMemberComponen3 === void 0 ? void 0 : _manageMemberComponen3.className]),
883
1056
  children: /*#__PURE__*/jsxRuntime.jsx(ActionBlock, {
884
- isSubmitting: isProcessing || isCreationStatusPollingEnabled,
885
1057
  cancelButtonProps: {
886
1058
  "data-cy": "ntm-manage-member-cancel-button",
887
1059
  onClick: function onClick() {
888
1060
  return handleClose(false);
889
1061
  }
890
1062
  },
1063
+ isSubmitting: isProcessing || isCreationStatusPollingEnabled,
891
1064
  submitButtonProps: {
892
1065
  "data-cy": isLastPage ? "ntm-manage-member-submit-button" : "ntm-manage-member-continue-button",
893
1066
  label: isLastPage ? t("neetoTeamMembers.buttons.saveChanges") : t("neetoTeamMembers.buttons.continue"),
@@ -915,4 +1088,4 @@ exports.getFilteredRoles = getFilteredRoles;
915
1088
  exports.handlePageChange = handlePageChange;
916
1089
  exports.renderPaginationProps = renderPaginationProps;
917
1090
  exports.renderUpdateAlert = renderUpdateAlert;
918
- //# sourceMappingURL=index-CMMrjr6R.js.map
1091
+ //# sourceMappingURL=index-7t984CiR.js.map