@bigbinary/neeto-team-members-frontend 5.0.32 → 5.0.33

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 (104) hide show
  1. package/app/javascript/src/translations/ar.json +2 -1
  2. package/app/javascript/src/translations/bg.json +2 -1
  3. package/app/javascript/src/translations/ca.json +2 -1
  4. package/app/javascript/src/translations/cs.json +2 -1
  5. package/app/javascript/src/translations/da.json +2 -1
  6. package/app/javascript/src/translations/de.json +2 -1
  7. package/app/javascript/src/translations/en.json +1 -0
  8. package/app/javascript/src/translations/es-MX.json +2 -1
  9. package/app/javascript/src/translations/es.json +2 -1
  10. package/app/javascript/src/translations/et.json +2 -1
  11. package/app/javascript/src/translations/fi.json +2 -1
  12. package/app/javascript/src/translations/fil.json +2 -1
  13. package/app/javascript/src/translations/fr.json +2 -1
  14. package/app/javascript/src/translations/he.json +2 -1
  15. package/app/javascript/src/translations/hi.json +2 -1
  16. package/app/javascript/src/translations/hr.json +2 -1
  17. package/app/javascript/src/translations/hu.json +2 -1
  18. package/app/javascript/src/translations/id.json +2 -1
  19. package/app/javascript/src/translations/it.json +2 -1
  20. package/app/javascript/src/translations/ja.json +2 -1
  21. package/app/javascript/src/translations/ko.json +2 -1
  22. package/app/javascript/src/translations/nl.json +2 -1
  23. package/app/javascript/src/translations/pl.json +2 -1
  24. package/app/javascript/src/translations/pt-BR.json +2 -1
  25. package/app/javascript/src/translations/pt.json +2 -1
  26. package/app/javascript/src/translations/ro.json +2 -1
  27. package/app/javascript/src/translations/ru.json +2 -1
  28. package/app/javascript/src/translations/sk.json +2 -1
  29. package/app/javascript/src/translations/sl.json +2 -1
  30. package/app/javascript/src/translations/sv.json +2 -1
  31. package/app/javascript/src/translations/th.json +2 -1
  32. package/app/javascript/src/translations/tr.json +2 -1
  33. package/app/javascript/src/translations/uk.json +2 -1
  34. package/app/javascript/src/translations/vi.json +2 -1
  35. package/app/javascript/src/translations/zh-CN.json +2 -1
  36. package/app/javascript/src/translations/zh-TW.json +2 -1
  37. package/dist/.ready +1 -1
  38. package/dist/{Permissions-3L2jJkiY.js → Permissions-Ds61VDtG.js} +4 -4
  39. package/dist/Permissions-Ds61VDtG.js.map +1 -0
  40. package/dist/{Permissions-CpmpfRk1.js → Permissions-rFYQmsMn.js} +4 -4
  41. package/dist/Permissions-rFYQmsMn.js.map +1 -0
  42. package/dist/{RolesRadioGroup-fBmS68cW.js → RolesRadioGroup-bXyHmk_Q.js} +35 -38
  43. package/dist/RolesRadioGroup-bXyHmk_Q.js.map +1 -0
  44. package/dist/{RolesRadioGroup-tSNC-Wtu.js → RolesRadioGroup-n1NclSyf.js} +35 -38
  45. package/dist/RolesRadioGroup-n1NclSyf.js.map +1 -0
  46. package/dist/cjs/v2/Groups.js +1 -1
  47. package/dist/cjs/v2/Groups.js.map +1 -1
  48. package/dist/cjs/v2/ManageMember.js +5 -3
  49. package/dist/cjs/v2/ManageMember.js.map +1 -1
  50. package/dist/cjs/v2/MembersDropdown.js +1 -1
  51. package/dist/cjs/v2/MembersInvite.js +1 -1
  52. package/dist/cjs/v2/MembersInvite.js.map +1 -1
  53. package/dist/cjs/v2/Permissions.js +1 -1
  54. package/dist/cjs/v2/Profile.js +189 -202
  55. package/dist/cjs/v2/Profile.js.map +1 -1
  56. package/dist/cjs/v2/Roles.js +2 -2
  57. package/dist/cjs/v2/RolesRadioGroup.js +1 -1
  58. package/dist/cjs/v2/TeamMembers.js +5 -3
  59. package/dist/cjs/v2/TeamMembers.js.map +1 -1
  60. package/dist/cjs/v2/TeamsAndMembersDropdown.js +12 -18
  61. package/dist/cjs/v2/TeamsAndMembersDropdown.js.map +1 -1
  62. package/dist/cjs/v2/TeamsDropdown.js +1 -1
  63. package/dist/{index-DqqXniGT.js → index-BaW7CGuF.js} +3 -3
  64. package/dist/index-BaW7CGuF.js.map +1 -0
  65. package/dist/{index-SkKQWXyo.js → index-C8-7qqvv.js} +183 -104
  66. package/dist/index-C8-7qqvv.js.map +1 -0
  67. package/dist/{index-DeYRFiJy.js → index-C8Aaixo-.js} +3 -3
  68. package/dist/index-C8Aaixo-.js.map +1 -0
  69. package/dist/{index-DCtowiCJ.js → index-CsL8uUVb.js} +183 -104
  70. package/dist/index-CsL8uUVb.js.map +1 -0
  71. package/dist/timezone-selector-C8J9ifSA.js +175 -0
  72. package/dist/timezone-selector-C8J9ifSA.js.map +1 -0
  73. package/dist/timezone-selector-DjLjMes0.js +165 -0
  74. package/dist/timezone-selector-DjLjMes0.js.map +1 -0
  75. package/dist/v2/Groups.js +1 -1
  76. package/dist/v2/Groups.js.map +1 -1
  77. package/dist/v2/ManageMember.js +5 -3
  78. package/dist/v2/ManageMember.js.map +1 -1
  79. package/dist/v2/MembersDropdown.js +1 -1
  80. package/dist/v2/MembersInvite.js +1 -1
  81. package/dist/v2/MembersInvite.js.map +1 -1
  82. package/dist/v2/Permissions.js +1 -1
  83. package/dist/v2/Profile.js +184 -199
  84. package/dist/v2/Profile.js.map +1 -1
  85. package/dist/v2/Roles.js +2 -2
  86. package/dist/v2/RolesRadioGroup.js +1 -1
  87. package/dist/v2/TeamMembers.js +5 -3
  88. package/dist/v2/TeamMembers.js.map +1 -1
  89. package/dist/v2/TeamsAndMembersDropdown.js +12 -18
  90. package/dist/v2/TeamsAndMembersDropdown.js.map +1 -1
  91. package/dist/v2/TeamsDropdown.js +1 -1
  92. package/package.json +1 -1
  93. package/dist/Permissions-3L2jJkiY.js.map +0 -1
  94. package/dist/Permissions-CpmpfRk1.js.map +0 -1
  95. package/dist/RolesRadioGroup-fBmS68cW.js.map +0 -1
  96. package/dist/RolesRadioGroup-tSNC-Wtu.js.map +0 -1
  97. package/dist/index-DCtowiCJ.js.map +0 -1
  98. package/dist/index-DeYRFiJy.js.map +0 -1
  99. package/dist/index-DqqXniGT.js.map +0 -1
  100. package/dist/index-SkKQWXyo.js.map +0 -1
  101. package/dist/useCountries-CQdvJz0R.js +0 -249
  102. package/dist/useCountries-CQdvJz0R.js.map +0 -1
  103. package/dist/useCountries-DePOPtue.js +0 -235
  104. package/dist/useCountries-DePOPtue.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-SkKQWXyo.js","sources":["../app/javascript/src/components/v2/common/formik/Switch.jsx","../app/javascript/src/components/v2/TeamMembers/constants.js","../app/javascript/src/components/v2/TeamMembers/utils.jsx","../app/javascript/src/components/v2/TeamMembers/ManageMember/AppList.jsx","../app/javascript/src/components/v2/TeamMembers/ManageMember/Confirmation.jsx","../app/javascript/src/components/v2/apis/invite_links.js","../app/javascript/src/components/v2/hooks/reactQuery/useInviteLinksApi.js","../app/javascript/src/components/v2/TeamMembers/ManageMember/InviteLink.jsx","../app/javascript/src/components/v2/TeamMembers/ManageMember/MultipleEmailInput.jsx","../app/javascript/src/components/v2/TeamMembers/ManageMember/NameInputs.jsx","../app/javascript/src/components/v2/TeamMembers/ManageMember/ProfileSettings.jsx","../app/javascript/src/components/v2/TeamMembers/ManageMember/index.jsx"],"sourcesContent":["import { Label, Switch, cn } from \"@bigbinary/neeto-atoms\";\nimport { useField } from \"formik\";\n\nconst FormikSwitch = ({\n name,\n label,\n className,\n checked: checkedProp,\n disabled,\n onChange: onChangeProp,\n ...rest\n}) => {\n const [field, , helpers] = useField(name);\n const isChecked = checkedProp !== undefined ? checkedProp : field.value;\n\n return (\n <div className={cn(\"flex items-center gap-2\", className)}>\n <Switch\n {...{ disabled }}\n checked={isChecked}\n id={name}\n onCheckedChange={val => {\n helpers.setValue(val);\n onChangeProp?.({ target: { checked: val } });\n }}\n {...rest}\n />\n {label && <Label htmlFor={name}>{label}</Label>}\n </div>\n );\n};\n\nexport default FormikSwitch;\n","import { DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE } from \"neetocommons/constants\";\nimport { getQueryParams } from \"neetocommons/utils\";\nimport { clamp } from \"ramda\";\n\nconst { page, pageSize } = getQueryParams();\n\nexport const DEFAULT_RADIX = 10;\n\nexport const DEFAULT_IS_OPEN_VALUES = {\n menuBar: false,\n manageMember: false,\n alert: false,\n};\n\nexport const DEFAULT_FILTER_VALUES = {\n page: clamp(1, Infinity, parseInt(page)) || DEFAULT_PAGE_INDEX,\n pageSize: clamp(10, 100, parseInt(pageSize)) || DEFAULT_PAGE_SIZE,\n sortBy: \"\",\n orderBy: \"\",\n neetoFilters: [],\n};\n\nexport const DEFAULT_SELECTED_ROWS = {\n active: [],\n emails: [],\n keys: [],\n displayNames: [],\n};\n\nexport const TEAM_MEMBERS_HIDDEN_COLUMNS = \"TEAM_MEMBERS_TABLE_HIDDEN_COLUMNS\";\n","import { Avatar, Typography } from \"@bigbinary/neeto-atoms\";\nimport { DropdownMenuItem } from \"@bigbinary/neeto-atoms/primitives\";\nimport i18next from \"i18next\";\nimport { isNotEmpty, toLabelAndValue } from \"neetocist\";\nimport { SINGULAR } from \"neetocommons/constants\";\nimport { taxonomies } from \"neetocommons/initializers\";\nimport { buildUrl, getQueryParams, hyphenize } from \"neetocommons/utils\";\nimport MoreDropdown from \"neetomolecules/v2/MoreDropdown\";\nimport { assoc, curry, filter, identical, mergeLeft, not } from \"ramda\";\nimport { Trans } from \"react-i18next\";\n\nimport { DEFAULT_RADIX } from \"./constants\";\n\nconst renderNameColumn = ({\n config,\n handleUpdateRole,\n handleUpdateStatus,\n tableData,\n}) => {\n const { displayName: name, profileImageUrl: imageUrl } = tableData;\n\n return (\n <div className=\"flex w-full justify-between gap-3\">\n <div className=\"flex items-center gap-2\">\n <Avatar className=\"size-8\" user={{ name, imageUrl }} />\n <Typography\n className=\"whitespace-normal text-sm\"\n data-testid={`ntm-member-name-${hyphenize(name)}`}\n >\n {name}\n </Typography>\n </div>\n {renderDropdownButton({\n config,\n handleUpdateRole,\n handleUpdateStatus,\n tableData,\n })}\n </div>\n );\n};\n\nconst renderDropdownButton = ({\n config,\n handleUpdateRole,\n handleUpdateStatus,\n tableData,\n}) => (\n <MoreDropdown\n dropdownProps={{ appendTo: () => document.body, strategy: \"fixed\" }}\n isDisabled={not(config.permissions.update)}\n dropdownButtonProps={{\n className: \"me-1 my-1\",\n \"data-testid\": \"ntm-members-table-row-dropdown-button\",\n tooltipProps: {\n content: i18next.t(\n \"neetoTeamMembers.tooltips.noPermissionToEditMembers\"\n ),\n disabled: config.permissions.update,\n position: \"top\",\n },\n }}\n menuTopChildren={\n <>\n <DropdownMenuItem\n className=\"cursor-pointer\"\n data-testid=\"ntm-edit-member-button\"\n onClick={() => handleUpdateRole(tableData)}\n >\n {i18next.t(\"neetoTeamMembers.common.edit\")}\n </DropdownMenuItem>\n {config?.table?.dropdownProps?.(tableData)}\n <DropdownMenuItem\n className=\"cursor-pointer\"\n data-testid=\"ntm-deactivate-member-button\"\n onClick={() => handleUpdateStatus(tableData)}\n >\n {i18next.t(\"neetoTeamMembers.common.remove\")}\n </DropdownMenuItem>\n </>\n }\n />\n);\n\nconst getDefaultAlertTitle = ({ member }) =>\n member?.active\n ? i18next.t(\"neetoTeamMembers.common.remove_\", {\n what: taxonomies.member.singular,\n })\n : i18next.t(\"neetoTeamMembers.common.activate_\", {\n what: taxonomies.member.singular,\n });\n\nconst getDefaultAlertMessage = ({ member }) => (\n <Trans\n i18nKey=\"neetoTeamMembers.alerts.messages.removeMember\"\n values={{ ...SINGULAR, person: member?.displayName }}\n />\n);\n\nconst getDefaultColumns = ({\n config,\n handleUpdateRole,\n handleUpdateStatus,\n otherColumns,\n isSize,\n}) => [\n {\n accessorKey: \"name\",\n id: \"name\",\n size: 300,\n enablePinning: isNotEmpty(otherColumns) && !isSize(\"mobile\"),\n cell: ({ row }) =>\n renderNameColumn({\n config,\n handleUpdateRole,\n handleUpdateStatus,\n tableData: row.original,\n }),\n enableSorting: true,\n header: i18next.t(\"neetoTeamMembers.common.name\"),\n enableHiding: false,\n },\n {\n accessorKey: \"email\",\n id: \"email\",\n enableSorting: true,\n size: 350,\n header: i18next.t(\"neetoTeamMembers.common.email\", SINGULAR),\n },\n {\n accessorKey: \"role\",\n id: \"organization_role\",\n enableSorting: true,\n size: 200,\n header: i18next.t(\"neetoTeamMembers.common.role\", SINGULAR),\n },\n];\n\nconst removeExcludedRole = curry(\n (excludedRoles, role) => !excludedRoles?.includes(role?.name)\n);\n\nexport const getColumnData = ({\n config,\n handleUpdateRole,\n handleUpdateStatus,\n isSize,\n}) => {\n const otherColumns = config?.otherColumns ?? [];\n const defaultColumns = getDefaultColumns({\n config,\n handleUpdateRole,\n handleUpdateStatus,\n otherColumns,\n isSize,\n });\n\n const columns = defaultColumns.map(column => {\n const otherColumn = otherColumns.find(col =>\n identical(col.accessorKey || col.id, column.accessorKey || column.id)\n );\n\n return otherColumn || column;\n });\n\n otherColumns.forEach(otherColumn => {\n const key = otherColumn.accessorKey || otherColumn.id;\n const exists = columns.find(col =>\n identical(col.accessorKey || col.id, key)\n );\n if (!exists) columns.push(otherColumn);\n });\n\n return columns;\n};\n\nexport const renderUpdateAlert = (field, props) => {\n const { config, member } = props;\n\n if (config?.alert?.[field]) {\n return config.alert?.[field]({\n active: member?.active,\n id: member?.id,\n name: member?.displayName,\n });\n }\n\n return field === \"title\"\n ? getDefaultAlertTitle(props)\n : getDefaultAlertMessage(props);\n};\n\nexport const handlePageChange = (setFilters, history) => (page, pageSize) => {\n const searchParams = getQueryParams({ toCamelCase: false });\n history.replace(\n buildUrl(\n window.location.pathname,\n mergeLeft({ page, page_size: pageSize }, searchParams)\n )\n );\n setFilters(mergeLeft({ page, pageSize }));\n};\n\nexport const renderPaginationProps = size => ({\n pageSize: parseInt(size, DEFAULT_RADIX),\n});\n\nexport const defaultNeetoFiltersColumns = () => [\n {\n key: \"email\",\n label: i18next.t(\"neetoTeamMembers.common.email\", SINGULAR),\n model: \"User\",\n node: \"email\",\n showRuleSelector: true,\n type: \"text\",\n },\n {\n key: \"name\",\n label: i18next.t(\"neetoTeamMembers.common.name\"),\n model: \"User\",\n node: \"first_name,last_name\",\n type: \"text\",\n values: \"\",\n },\n {\n key: \"role\",\n label: i18next.t(\"neetoTeamMembers.common.role\", SINGULAR),\n model: \"OrganizationRole\",\n node: \"organization_role.name\",\n type: \"multi_option\",\n values: [],\n },\n];\n\nexport const buildFilterColumns = ({\n options: { emails = [], organizationRoles = [] },\n emailConfig: { setSearchTerm, isLoading },\n}) => {\n const columnValues = {\n email: emails.map(toLabelAndValue),\n role: organizationRoles.map(toLabelAndValue),\n };\n\n return defaultNeetoFiltersColumns().map(column => {\n const values = columnValues[column.key];\n if (column.key === \"role\") return assoc(\"values\", values, column);\n\n const emailConfig = {\n values,\n isLoading,\n onInputChange: setSearchTerm,\n };\n\n return mergeLeft(emailConfig, column);\n });\n};\n\nexport const getFilteredRoles = (roles = [], config = {}) =>\n filter(removeExcludedRole(config?.excludedRoles), roles);\n\nexport const generateNoDataContent = ({ buttonProps }) => {\n const { disabled, onClick } = buttonProps;\n const noDataTitleTranslationKey = \"notFound_\";\n\n const noDataTitle = i18next.t(\n `neetoTeamMembers.common.${noDataTitleTranslationKey}`,\n { what: taxonomies.member.plural }\n );\n\n const noDataButtonProps = {\n \"data-testid\": \"ntm-add-member-button\",\n disabled,\n label: i18next.t(\"neetoTeamMembers.common.addNew_\", {\n what: taxonomies.member.singular,\n }),\n onClick,\n };\n\n return { noDataTitle, noDataButtonProps };\n};\n","import { useEffect, useState } from \"react\";\n\nimport {\n Button,\n Checkbox,\n Label,\n Tooltip,\n Typography,\n} from \"@bigbinary/neeto-atoms\";\nimport { useFormikContext } from \"formik\";\nimport { toLabelAndValue } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { pluck, not } from \"ramda\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { FormikSelect, FormikSwitch } from \"v2/common/formik\";\n\nimport { NEETO_AUTH_MANAGE_PRODUCT_URL } from \"./constants\";\n\nconst AppList = ({ globalRoles, savedStateRef }) => {\n const { t } = useTranslation();\n const [isAppListEnabled, setIsAppListEnabled] = useState(\n savedStateRef.current.isAppListEnabled\n );\n\n const {\n values: { emails = [], appRoles = [] },\n setFieldValue,\n } = useFormikContext();\n\n const selectedEmail = pluck(\"value\", emails);\n const isManageProductsLinkEnabled =\n globalProps.user?.isOwner && Object.keys(globalRoles).length >= 3;\n\n useEffect(() => {\n if (savedStateRef.current.isAppListEnabled !== isAppListEnabled) {\n appRoles?.forEach((appRole, index) => {\n if (appRole?.appName === globalProps.appName?.substring(5)) {\n setFieldValue(`appRoles[${index}].isEnabled`, true);\n\n return;\n }\n\n setFieldValue(`appRoles[${index}].isEnabled`, isAppListEnabled);\n });\n }\n savedStateRef.current.isAppListEnabled = isAppListEnabled;\n }, [isAppListEnabled]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const buildRoleOptions = roles =>\n roles.map(role => toLabelAndValue(role.name));\n\n return (\n <div className=\"flex flex-col gap-6\">\n <div className=\"w-full space-y-3\">\n <div className=\"flex items-start gap-2\">\n <Checkbox\n checked={isAppListEnabled}\n data-testid=\"ntm-manage-members-app-list-checkbox\"\n id=\"app-list-toggle\"\n onCheckedChange={() => setIsAppListEnabled(not)}\n />\n <Label className=\"leading-relaxed\" htmlFor=\"app-list-toggle\">\n <Typography className=\"text-sm leading-relaxed\">\n <Trans\n i18nKey=\"neetoTeamMembers.helpers.addMembersToNeetoProducts\"\n values={{ emails: selectedEmail }}\n />\n </Typography>\n </Label>\n </div>\n {isManageProductsLinkEnabled && (\n <Typography className=\"text-sm\">\n <Trans\n i18nKey=\"neetoTeamMembers.helpers.manageProducts\"\n components={{\n button: (\n <Button asChild variant=\"link\">\n <a href={NEETO_AUTH_MANAGE_PRODUCT_URL}>manage</a>\n </Button>\n ),\n }}\n />\n </Typography>\n )}\n </div>\n <div className=\"w-full\">\n {appRoles.map(({ appName, isEnabled }, index) => {\n const isCurrentApp = appName === globalProps.appName?.substring(5);\n const isAppRoleSelectionChecked = isCurrentApp || isEnabled;\n\n return (\n <div\n className=\"flex w-full items-center justify-between py-2\"\n key={appName}\n >\n <Tooltip\n content={\n isCurrentApp\n ? t(\"neetoTeamMembers.tooltips.hostAppIsRequired\")\n : null\n }\n >\n <span>\n <FormikSwitch\n checked={isAppRoleSelectionChecked}\n disabled={isCurrentApp}\n name={`appsRoles[${index}].isEnabled`}\n label={t(\"neetoTeamMembers.labels.neeto_\", {\n product: appName,\n })}\n onChange={({ target }) => {\n setFieldValue(\n `appRoles[${index}].isEnabled`,\n target.checked\n );\n }}\n />\n </span>\n </Tooltip>\n <Tooltip\n content={\n isCurrentApp\n ? t(\"neetoTeamMembers.tooltips.goBackToChangeRole\")\n : null\n }\n >\n <span className=\"w-1/2 max-w-[250px]\">\n <FormikSelect\n isDisabled={isCurrentApp || !isEnabled}\n name={`appRoles[${index}].activeRole`}\n options={buildRoleOptions(globalRoles[appName])}\n onChange={({ value }) => {\n setFieldValue(`appRoles[${index}].activeRole`, value);\n }}\n />\n </span>\n </Tooltip>\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n\nexport default AppList;\n","import { Typography } from \"@bigbinary/neeto-atoms\";\nimport { useFormikContext } from \"formik\";\nimport { filterBy } from \"neetocist\";\nimport { SINGULAR } from \"neetocommons/constants\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { pluck } from \"ramda\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { getSingleInvitationTranslationProps } from \"./utils\";\n\nconst Confirmation = () => {\n const { t } = useTranslation();\n const {\n values: { emails, role, appRoles },\n } = useFormikContext();\n\n const selectedEmail = pluck(\"value\", emails);\n const activeAppRoles = filterBy({ isEnabled: true }, appRoles);\n\n return activeAppRoles.length > 1 ? (\n <div className=\"flex flex-col gap-6\">\n <div className=\"w-full\">\n <Typography className=\"text-sm leading-relaxed\">\n <Trans\n i18nKey=\"neetoTeamMembers.helpers.multipleProductInvitation\"\n values={{\n count: selectedEmail.length,\n emails: selectedEmail,\n orgName: globalProps.organization?.name,\n }}\n />\n </Typography>\n </div>\n <table className=\"w-full border-collapse\">\n <thead>\n <tr>\n <th className=\"border border-border p-2 text-start text-xs font-bold uppercase text-muted-foreground\">\n {t(\"neetoTeamMembers.common.productName\")}\n </th>\n <th className=\"border border-border p-2 text-start text-xs font-bold uppercase text-muted-foreground\">\n {t(\"neetoTeamMembers.common.role\", SINGULAR)}\n </th>\n </tr>\n </thead>\n <tbody>\n {activeAppRoles.map(({ appName, activeRole }) => (\n <tr key={appName}>\n <td className=\"border border-border p-2\">\n <Typography className=\"text-sm leading-relaxed\">\n {t(\"neetoTeamMembers.labels.neeto_\", { product: appName })}\n </Typography>\n </td>\n <td className=\"border border-border p-2\">\n <Typography className=\"text-sm leading-relaxed\">\n {activeRole}\n </Typography>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n ) : (\n <Typography className=\"text-sm leading-relaxed\">\n <Trans\n i18nKey=\"neetoTeamMembers.helpers.singleProductInvitation\"\n values={getSingleInvitationTranslationProps({\n activeAppRoles,\n role,\n selectedEmail,\n })}\n />\n </Typography>\n );\n};\n\nexport default Confirmation;\n","// eslint-disable-next-line @bigbinary/neeto/no-axios-import-outside-apis\nimport axios from \"axios\";\n\nimport { BASE_URL } from \"v2/common/constants\";\n\nconst fetch = () => axios.get(`${BASE_URL}/api/v1/invite_links`);\n\nconst create = payload =>\n axios.post(`${BASE_URL}/api/v1/invite_links`, {\n inviteLink: payload,\n });\n\nconst regenerate = (inviteLinkId, payload) =>\n axios.put(`${BASE_URL}/api/v1/invite_links/${inviteLinkId}`, {\n inviteLink: payload,\n });\n\nconst inviteLinksApi = { fetch, create, regenerate };\n\nexport default inviteLinksApi;\n","import { useQuery } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport inviteLinksApi from \"v2/apis/invite_links\";\nimport { QUERY_KEYS } from \"v2/common/constants\";\n\nconst useFetchInviteLinks = () =>\n useQuery({\n queryKey: [QUERY_KEYS.INVITATION_LINK],\n queryFn: () => inviteLinksApi.fetch(),\n });\n\nconst useCreateInviteLinks = (options = {}) =>\n useMutationWithInvalidation(payload => inviteLinksApi.create(payload), {\n keysToInvalidate: [[QUERY_KEYS.INVITATION_LINK]],\n ...options,\n });\n\nconst useRegenerateInviteLink = () =>\n useMutationWithInvalidation(\n ({ inviteLinkId, payload }) =>\n inviteLinksApi.regenerate(inviteLinkId, payload),\n { keysToInvalidate: [[QUERY_KEYS.INVITATION_LINK]] }\n );\n\nexport { useFetchInviteLinks, useCreateInviteLinks, useRegenerateInviteLink };\n","import {\n Button,\n DropdownMenu,\n Spinner,\n Typography,\n} from \"@bigbinary/neeto-atoms\";\nimport { useFormikContext } from \"formik\";\nimport { EllipsisVertical } from \"lucide-react\";\nimport { findBy } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { withT } from \"neetocommons/react-utils\";\nimport { isEmpty } from \"ramda\";\nimport { Trans } from \"react-i18next\";\n\nimport CopyToClipboardButton from \"v2/common/CopyToClipboardButton\";\nimport {\n useFetchInviteLinks,\n useCreateInviteLinks,\n useRegenerateInviteLink,\n} from \"v2/hooks/reactQuery/useInviteLinksApi\";\n\nimport { getInviteURL, remainingExpiryDays } from \"./utils\";\n\nconst InviteLink = ({ t, roles }) => {\n const { mutate: createInviteLink, isPending: isCreateLinkPending } =\n useCreateInviteLinks();\n\n const { mutate: regenerateLink } = useRegenerateInviteLink();\n\n const { data: { inviteLinks = [] } = {}, isLoading: isFetchLinkLoading } =\n useFetchInviteLinks();\n\n const { values } = useFormikContext();\n\n const isInviteLinkEmpty = !isFetchLinkLoading && isEmpty(inviteLinks);\n\n const handleRegenerate = () => {\n const { id: roleId } = findBy({ name: values.role }, roles);\n if (isEmpty(inviteLinks)) {\n createInviteLink({ organizationRoleId: roleId });\n\n return;\n }\n\n regenerateLink({\n inviteLinkId: inviteLinks[0].id,\n payload: { organizationRoleId: roleId },\n });\n };\n\n if (isFetchLinkLoading || isCreateLinkPending) {\n return (\n <div className=\"flex w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <div className=\"w-full space-y-2\">\n <div className=\"flex items-center gap-2 pt-1\">\n <div className=\"relative flex min-w-0 grow items-center truncate neeto-ui-rounded-md border border-border bg-muted/50 leading-none\">\n <div className=\"relative min-w-0 grow truncate p-2 leading-none\">\n {!isInviteLinkEmpty && getInviteURL(inviteLinks?.[0]?.token)}\n </div>\n {isInviteLinkEmpty ? (\n <Button className=\"rounded-s-none\" onClick={handleRegenerate}>\n {t(\"neetoTeamMembers.buttons.generateLink\")}\n </Button>\n ) : (\n <CopyToClipboardButton\n className=\"rounded-s-none\"\n value={getInviteURL(inviteLinks?.[0]?.token)}\n >\n {t(\"neetoTeamMembers.buttons.copyLink\")}\n </CopyToClipboardButton>\n )}\n </div>\n {!isInviteLinkEmpty && (\n <DropdownMenu\n buttonStyle=\"text\"\n className=\"shrink-0\"\n icon={EllipsisVertical}\n >\n <DropdownMenu.Menu>\n <DropdownMenu.MenuItem>\n <DropdownMenu.MenuItem.Button onClick={handleRegenerate}>\n {t(\"neetoTeamMembers.buttons.regenerateLink\")}\n </DropdownMenu.MenuItem.Button>\n </DropdownMenu.MenuItem>\n </DropdownMenu.Menu>\n </DropdownMenu>\n )}\n </div>\n <div>\n {!isInviteLinkEmpty && (\n <Typography className=\"text-xs leading-relaxed text-muted-foreground\">\n <Trans\n components={{ strong: <strong /> }}\n i18nKey=\"neetoTeamMembers.alerts.messages.inviteLink\"\n values={{\n expiryDays: remainingExpiryDays(inviteLinks?.[0]?.expiresAt),\n role: inviteLinks?.[0]?.organizationRole?.name,\n inviteLimit: inviteLinks?.[0]?.inviteLimit,\n appName: globalProps.appName,\n emailDomain: inviteLinks?.[0]?.domain,\n }}\n />\n </Typography>\n )}\n </div>\n </div>\n );\n};\nexport default withT(InviteLink);\n","import { Button, Label, Typography } from \"@bigbinary/neeto-atoms\";\nimport {\n Input as FormikInput,\n MultiEmailInput as FormikMultiEmailInput,\n} from \"@bigbinary/neeto-atoms/formik\";\nimport { useFormikContext } from \"formik\";\nimport { PLURAL, SINGULAR } from \"neetocommons/constants\";\nimport { head } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n COUNTER_PROPS,\n EMAIL_REGEX,\n FILTER_INVALID_EMAILS,\n FORM_PAGES,\n} from \"./constants\";\n\nimport { isNeetoAuthApp } from \"../../utils\";\n\nconst MultipleEmailInput = ({\n emails = [],\n innerRef,\n selectedMember = null,\n setCurrentPage,\n}) => {\n const isInviteLinkFeatureEnabled = !isNeetoAuthApp();\n const { t } = useTranslation();\n const { setFieldValue } = useFormikContext();\n\n const handleInputChange = event => {\n const email = event.target.value;\n const emailList = [\n { label: email, value: email, valid: EMAIL_REGEX.test(email) },\n ];\n setFieldValue(\"emails\", emailList);\n };\n\n return (\n <div className=\"w-full\">\n {selectedMember ? (\n <FormikInput\n data-testid=\"ntm-manage-member-email-input\"\n name=\"emails\"\n type=\"email\"\n value={head(emails)?.value}\n label={\n <span className=\"flex w-full justify-between\">\n <Typography className=\"text-sm\">\n {t(\"neetoTeamMembers.common.email\", SINGULAR)}\n </Typography>\n </span>\n }\n onChange={handleInputChange}\n />\n ) : (\n <div>\n <div className=\"flex items-center justify-between pb-2\">\n <Label>\n {t(\"neetoTeamMembers.common.email\", PLURAL)}\n <span className=\"text-destructive\"> *</span>\n </Label>\n {isInviteLinkFeatureEnabled && (\n <Button\n variant=\"link\"\n onClick={() => setCurrentPage(FORM_PAGES.INVITE_LINK)}\n >\n {t(\"neetoTeamMembers.buttons.inviteLink\")}\n </Button>\n )}\n </div>\n <FormikMultiEmailInput\n required\n counter={COUNTER_PROPS}\n data-testid=\"ntm-manage-member-email-input\"\n filterInvalidEmails={FILTER_INVALID_EMAILS}\n helpText={t(\"neetoTeamMembers.helpers.enterMultipleEmails\")}\n label=\"\"\n name=\"emails\"\n placeholder={t(\"neetoTeamMembers.placeholders.email\")}\n ref={innerRef}\n />\n </div>\n )}\n </div>\n );\n};\n\nexport default MultipleEmailInput;\n","import { Input as FormikInput } from \"@bigbinary/neeto-atoms/formik\";\nimport { withT } from \"neetocommons/react-utils\";\n\nconst NameInputs = withT(({ t, innerRef }) => (\n <div className=\"flex w-full gap-4\">\n <FormikInput\n data-testid=\"ntm-edit-member-first-name-text-field\"\n label={t(\"neetoTeamMembers.labels.firstName\")}\n name=\"firstName\"\n ref={innerRef}\n />\n <FormikInput\n data-testid=\"ntm-edit-member-last-name-text-field\"\n label={t(\"neetoTeamMembers.labels.lastName\")}\n name=\"lastName\"\n />\n </div>\n));\n\nexport default NameInputs;\n","import { useEffect, useRef } from \"react\";\n\nimport { Label, cn } from \"@bigbinary/neeto-atoms\";\nimport { NeetoTimezoneSelector } from \"@bigbinary/neeto-time-zones\";\nimport { findBy } from \"neetocist\";\nimport { LANGUAGE_OPTIONS } from \"neetocommons/constants\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { DATE_FORMAT_OPTIONS, TIME_FORMAT_OPTIONS } from \"v2/common/constants\";\nimport { FormikSelect } from \"v2/common/formik\";\nimport useCountries from \"v2/components/Profile/hooks/useCountries\";\n\nconst ProfileSettings = ({\n member,\n setFieldValue,\n isTimezoneFieldDisabled,\n}) => {\n const { t } = useTranslation();\n\n const setFieldValueRef = useRef(setFieldValue);\n\n useEffect(() => {\n setFieldValueRef.current = setFieldValue;\n }, [setFieldValue]);\n\n const {\n countryDropdownOptions,\n isFetchingCountriesList,\n handleCountryChange,\n } = useCountries();\n\n const timezoneContainerRef = useRef(null);\n\n useEffect(() => {\n const node = timezoneContainerRef.current;\n if (!node) return undefined;\n\n new NeetoTimezoneSelector(node, {\n isTimeFormat24H: member.timeFormat === \"24h\",\n className: \"w-full z-10\",\n position: \"bottom\",\n initialValue: member.timeZone,\n onChange: ({ main }) => setFieldValueRef.current(\"timeZone\", main),\n disabled: isTimezoneFieldDisabled,\n });\n\n return () => {\n node.innerHTML = \"\";\n };\n }, [member.timeZone, member.timeFormat, isTimezoneFieldDisabled]);\n\n useEffect(() => {\n const country = findBy(\n { value: member.countryIdentifier },\n countryDropdownOptions\n );\n if (country) handleCountryChange(country);\n }, [member.countryIdentifier, countryDropdownOptions, handleCountryChange]);\n\n return (\n <div className=\"w-full space-y-4\" data-cy=\"ntm-profile-settings\">\n <FormikSelect\n data-cy=\"ntm-edit-member-country-select\"\n isLoading={isFetchingCountriesList}\n label={t(\"neetoTeamMembers.profile.inputs.label.country\")}\n name=\"countryId\"\n options={countryDropdownOptions}\n onChange={value => {\n const option = countryDropdownOptions.find(o => o.value === value);\n const dependentFields = handleCountryChange(option);\n setFieldValue(\"dateFormat\", dependentFields?.dateFormat);\n }}\n />\n <FormikSelect\n data-cy=\"ntm-edit-member-language-select\"\n label={t(\"neetoTeamMembers.profile.inputs.label.language\")}\n name=\"language\"\n options={LANGUAGE_OPTIONS}\n />\n <div className=\"space-y-2\">\n <Label>{t(\"neetoTeamMembers.profile.inputs.label.timeZone\")}</Label>\n <div\n data-cy=\"ntm-edit-member-timezone-select\"\n ref={timezoneContainerRef}\n className={cn(\"w-full grow\", {\n \"pointer-events-none bg-muted\": isTimezoneFieldDisabled,\n })}\n />\n </div>\n <FormikSelect\n data-cy=\"ntm-edit-member-time-format-select\"\n label={t(\"neetoTeamMembers.profile.inputs.label.preferredTimeFormat\")}\n name=\"timeFormat\"\n options={TIME_FORMAT_OPTIONS}\n />\n <FormikSelect\n data-cy=\"ntm-edit-member-date-format-select\"\n label={t(\"neetoTeamMembers.profile.inputs.label.preferredDateFormat\")}\n name=\"dateFormat\"\n options={DATE_FORMAT_OPTIONS}\n />\n </div>\n );\n};\n\nexport default ProfileSettings;\n","import { useRef, useState, useEffect } from \"react\";\n\nimport { Alert, Button, Spinner, cn } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { ArrowLeft, Info } from \"lucide-react\";\nimport { globalProps, taxonomies } from \"neetocommons/initializers\";\nimport { showThumbsUpToastr } from \"neetocommons/utils\";\nimport { useProfileImageUpload } from \"neetoimageuploader\";\nimport { reverse, isEmpty, groupBy, prop } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { toast } from \"sonner\";\n\nimport { FormikForm, FormikActionBlock } from \"v2/common/formik\";\nimport ScrollToErrorField from \"v2/common/ScrollToErrorField\";\nimport ProfileImage from \"v2/components/Profile/ProfileImage\";\nimport { useFetchGlobalRoles, useFetchRoles } from \"v2/hooks/roles/useRolesApi\";\nimport {\n useFetchMember,\n useFetchMembers,\n useCreateMember,\n useUpdateMember,\n useMembersCreationStatus,\n refetchMembers,\n} from \"v2/hooks/teams/useTeamsApi\";\n\nimport AppList from \"./AppList\";\nimport Confirmation from \"./Confirmation\";\nimport {\n DEFAULT_COMPONENT_CONFIG,\n MEMBERS_FORM_COMPONENT_MAPPER,\n FORM_PAGES,\n} from \"./constants\";\nimport InviteLink from \"./InviteLink\";\nimport MultipleEmailInput from \"./MultipleEmailInput\";\nimport NameInputs from \"./NameInputs\";\nimport ProfileSettings from \"./ProfileSettings\";\nimport RolesRadioGroup from \"./RolesRadioGroup\";\nimport {\n buildValidationSchema,\n renderInitialValues,\n renderPayload,\n} from \"./utils\";\n\nimport { getFilteredRoles } from \"../utils\";\n\nconst ManageMember = ({\n config,\n onComplete,\n roles = [],\n selectedMember = null,\n componentConfig = {},\n}) => {\n const { t } = useTranslation();\n\n const [isCreationStatusPollingEnabled, setIsCreationStatusPollingEnabled] =\n useState(false);\n\n const isViewPermissionGranted = config.permissions.view;\n const isNotDevelopment = globalProps.railsEnv !== \"development\";\n\n const { data: team } = useFetchMembers({ enabled: isViewPermissionGranted });\n\n const { data: memberShowData, isLoading: isMemberDetailLoading } =\n useFetchMember(selectedMember?.id, { enabled: !!selectedMember });\n\n const isTimezoneFieldDisabled =\n selectedMember &&\n memberShowData &&\n !selectedMember.isOwner &&\n !memberShowData.timezoneChangeEnabled;\n\n const [currentPage, setCurrentPage] = useState(FORM_PAGES.MAIN);\n const formReference = useRef(null);\n const inputReference = useRef(null);\n const appListSavedStateReference = useRef({ isAppListEnabled: true });\n const shouldSkipAppListPage = useRef(false);\n const formikValues = useRef(null);\n\n const manageMemberComponentConfig = {\n ...DEFAULT_COMPONENT_CONFIG,\n initialFocusRef: inputReference,\n ...componentConfig,\n };\n\n const Component =\n MEMBERS_FORM_COMPONENT_MAPPER[manageMemberComponentConfig.type || \"pane\"];\n\n const haveToFetchRoles = isEmpty(roles) && isViewPermissionGranted;\n\n const isEditForm = !!selectedMember;\n const isLastPage = currentPage === FORM_PAGES.CONFIRMATION || isEditForm;\n\n const { data: rolesList = roles, isLoading: isRolesLoading } = useFetchRoles({\n select: response => reverse(response.organizationRoles ?? []),\n enabled: haveToFetchRoles,\n });\n\n const { data: globalRoles = {}, isLoading: isGlobalRolesLoading } =\n useFetchGlobalRoles({\n select: response => groupBy(prop(\"appName\"), response ?? []),\n enabled: isNotDevelopment && !selectedMember && isViewPermissionGranted,\n });\n\n const filteredRoles = getFilteredRoles(rolesList, config);\n\n const {\n data: { jobId } = {},\n mutate: createMember,\n isPending: isCreatingMember,\n } = useCreateMember({\n onSuccess: () => setIsCreationStatusPollingEnabled(true),\n });\n\n const refetchInterval = query => {\n const { isCompleted } = query.state.data || {};\n\n if (isCompleted) {\n setIsCreationStatusPollingEnabled(false);\n\n return false;\n }\n\n return 2000;\n };\n\n const { data: creationStatus } = useMembersCreationStatus(jobId, {\n refetchInterval,\n enabled: isCreationStatusPollingEnabled && !!jobId,\n });\n\n useEffect(() => {\n const { isCompleted, isSuccessful, users, error } = creationStatus || {};\n\n if (!isCompleted) return;\n handleClose();\n config?.createMember?.onSuccess?.callback({ users });\n\n if (isSuccessful) {\n showThumbsUpToastr();\n } else {\n toast.error(error);\n }\n\n refetchMembers();\n }, [creationStatus]);\n\n const { mutate: updateMember, isPending: isUpdatingMember } = useUpdateMember(\n {\n onSuccess: () => {\n handleClose(true);\n config?.updateMember?.onSuccess?.callback();\n },\n }\n );\n\n const hasRoleChanged = ({ submitted, values }) =>\n submitted && values?.role !== selectedMember?.role;\n\n const handleClose = (submitted = false) => {\n onComplete({\n submitted: hasRoleChanged({ submitted, values: formikValues.current }),\n });\n setCurrentPage(FORM_PAGES.MAIN);\n appListSavedStateReference.current = { isAppListEnabled: true };\n setIsCreationStatusPollingEnabled(false);\n };\n\n const { uploadImage, isUploading } = useProfileImageUpload({\n uploadConfig: {\n folder: \"Auth\",\n customMetadata: { appName: \"neetoAuth\" },\n },\n });\n\n const handleUploadImage = async image => {\n let result;\n await uploadImage(image, uploadedImageData => {\n result = uploadedImageData;\n });\n\n return result;\n };\n\n const isProcessing =\n isCreatingMember ||\n isUpdatingMember ||\n isUploading ||\n isRolesLoading ||\n isGlobalRolesLoading ||\n isMemberDetailLoading;\n\n const handleAddMember = async values => {\n if (selectedMember) {\n const payload = renderPayload(values, selectedMember);\n\n if (values.avatar?.file) {\n if (!payload.profile) payload.profile = {};\n\n if (values.avatar.file === \"_destroy\") {\n payload.profile.avatar = {\n fileId: \"_destroy\",\n filePath: \"\",\n url: \"\",\n };\n } else {\n try {\n const { fileId, filePath, url } = await handleUploadImage(\n values.avatar.file\n );\n payload.profile.avatar = { fileId, filePath, url };\n } catch (error) {\n toast.error(error.message);\n\n return;\n }\n }\n }\n\n updateMember({ id: selectedMember.id, payload });\n } else {\n createMember(renderPayload(values));\n }\n };\n\n const handleOnSubmit = async (values, { setSubmitting }) => {\n shouldSkipAppListPage.current = isEmpty(values.appRoles);\n\n if (isLastPage) {\n await handleAddMember(values);\n } else if (\n currentPage === FORM_PAGES.APP_LIST ||\n shouldSkipAppListPage.current\n ) {\n setCurrentPage(FORM_PAGES.CONFIRMATION);\n setSubmitting(false);\n } else if (currentPage === FORM_PAGES.MAIN) {\n setCurrentPage(FORM_PAGES.APP_LIST);\n setSubmitting(false);\n }\n };\n\n const handleBackButton = () => {\n if (\n currentPage === FORM_PAGES.APP_LIST ||\n shouldSkipAppListPage.current ||\n currentPage === FORM_PAGES.INVITE_LINK\n ) {\n setCurrentPage(FORM_PAGES.MAIN);\n } else if (currentPage === FORM_PAGES.CONFIRMATION) {\n setCurrentPage(FORM_PAGES.APP_LIST);\n }\n };\n\n const getTitle = () => {\n const memberLabel = taxonomies.member.singular;\n\n if (selectedMember) {\n return t(\"neetoTeamMembers.common.edit_\", { what: memberLabel });\n }\n\n return currentPage === FORM_PAGES.INVITE_LINK\n ? t(\"neetoTeamMembers.common.inviteViaLink\")\n : t(\"neetoTeamMembers.common.addNew_\", { what: memberLabel });\n };\n\n const renderRolesRadioGroup = role => (\n <div className=\"w-full pt-2\">\n <RolesRadioGroup\n {...{ config, globalRoles, role }}\n isEdit={!!selectedMember}\n roles={filteredRoles}\n />\n </div>\n );\n\n const renderFormPage = (page, emails, role, setFieldValue) => {\n switch (page) {\n case FORM_PAGES.MAIN:\n return (\n <>\n {selectedMember && <ProfileImage />}\n {selectedMember && <NameInputs innerRef={inputReference} />}\n <MultipleEmailInput\n {...{ emails, selectedMember, setCurrentPage }}\n innerRef={inputReference}\n />\n {selectedMember && (\n <ProfileSettings\n {...{ isTimezoneFieldDisabled, setFieldValue }}\n member={selectedMember}\n />\n )}\n {renderRolesRadioGroup(role)}\n {config.additionalFields?.component}\n </>\n );\n case FORM_PAGES.APP_LIST:\n return (\n <AppList\n {...{ globalRoles }}\n savedStateRef={appListSavedStateReference}\n />\n );\n case FORM_PAGES.CONFIRMATION:\n return <Confirmation />;\n case FORM_PAGES.INVITE_LINK:\n return (\n <>\n <InviteLink roles={filteredRoles} />\n {renderRolesRadioGroup(role)}\n </>\n );\n default:\n return null;\n }\n };\n\n const isSheet = manageMemberComponentConfig.type !== \"modal\";\n\n return (\n <Component\n className={manageMemberComponentConfig.className}\n data-testid=\"ntm-manage-members-pane-wrapper\"\n isOpen={manageMemberComponentConfig.isOpen}\n onClose={() => handleClose(false)}\n >\n <Component.Header\n {...(isSheet ? manageMemberComponentConfig.headerProps : {})}\n className={cn(\n isSheet &&\n currentPage !== FORM_PAGES.MAIN &&\n \"flex flex-row items-start gap-2\",\n isSheet && manageMemberComponentConfig.headerProps?.className\n )}\n >\n {isSheet && currentPage !== FORM_PAGES.MAIN && (\n <Button\n aria-label=\"Back\"\n size=\"icon-sm\"\n variant=\"ghost\"\n onClick={handleBackButton}\n >\n <ArrowLeft className=\"size-4\" />\n </Button>\n )}\n <div>\n <Component.Title data-testid=\"ntm-manage-members-pane-header\">\n {getTitle()}\n </Component.Title>\n {selectedMember && Component.Description && (\n <Component.Description>\n {t(\"neetoTeamMembers.helpers.editPaneSubtitle\")}\n </Component.Description>\n )}\n </div>\n </Component.Header>\n <FormikForm\n ref={formReference}\n className={classnames({\n \"flex flex-1 flex-col overflow-hidden\": isSheet,\n })}\n formikProps={{\n enableReinitialize: true,\n initialValues: renderInitialValues({\n additionalFieldsInitialValues:\n config.additionalFields?.initialValues,\n globalRoles,\n roles: filteredRoles,\n selectedMember,\n }),\n onSubmit: handleOnSubmit,\n validationSchema: buildValidationSchema({\n selectedMember,\n ...team,\n }),\n }}\n >\n {({ values, isValid, dirty, setFieldValue }) => {\n const { emails, role } = values;\n formikValues.current = values;\n\n return (\n <>\n <ScrollToErrorField formRef={formReference} />\n <div\n {...(isSheet ? manageMemberComponentConfig.bodyProps : {})}\n className={cn(\n isSheet\n ? \"w-full flex-1 space-y-4 overflow-y-auto px-4 pb-4\"\n : \"w-full space-y-4 pb-4\",\n isSheet && manageMemberComponentConfig.bodyProps?.className\n )}\n >\n {}\n {/* eslint-disable-next-line @bigbinary/neeto/no-conditional-overlays */}\n {isSheet && isCreationStatusPollingEnabled && (\n <Alert>\n <Info className=\"size-4\" />\n <Alert.Title className=\"flex items-center gap-2\">\n <Spinner />\n {t(\"neetoTeamMembers.helpers.memberCreationStatus\", {\n count: emails.length,\n })}\n </Alert.Title>\n </Alert>\n )}\n {renderFormPage(currentPage, emails, role, setFieldValue)}\n </div>\n {currentPage !== FORM_PAGES.INVITE_LINK && (\n <Component.Footer\n {...(isSheet ? manageMemberComponentConfig.footerProps : {})}\n className={cn(\n \"flex gap-2\",\n isSheet &&\n manageMemberComponentConfig.footerProps?.className\n )}\n >\n <FormikActionBlock\n cancelButtonProps={{\n \"data-testid\": \"ntm-manage-member-cancel-button\",\n onClick: () => handleClose(false),\n }}\n isSubmitting={\n isProcessing || isCreationStatusPollingEnabled\n }\n submitButtonProps={{\n \"data-testid\": isLastPage\n ? \"ntm-manage-member-submit-button\"\n : \"ntm-manage-member-continue-button\",\n label: isLastPage\n ? t(\"neetoTeamMembers.buttons.saveChanges\")\n : t(\"neetoTeamMembers.buttons.continue\"),\n disabled:\n !isValid ||\n isProcessing ||\n !dirty ||\n isCreationStatusPollingEnabled,\n }}\n />\n </Component.Footer>\n )}\n </>\n );\n }}\n </FormikForm>\n </Component>\n );\n};\n\nexport default ManageMember;\n"],"names":["FormikSwitch","_ref","name","label","className","checkedProp","checked","disabled","onChangeProp","onChange","rest","_objectWithoutProperties","_excluded","_useField","useField","_useField2","_slicedToArray","field","helpers","isChecked","undefined","value","_jsxs","cn","children","_jsx","Switch","_objectSpread","id","onCheckedChange","val","setValue","target","Label","htmlFor","_getQueryParams","getQueryParams","page","pageSize","DEFAULT_RADIX","DEFAULT_IS_OPEN_VALUES","menuBar","manageMember","alert","DEFAULT_FILTER_VALUES","clamp","Infinity","parseInt","DEFAULT_PAGE_INDEX","DEFAULT_PAGE_SIZE","sortBy","orderBy","neetoFilters","DEFAULT_SELECTED_ROWS","active","emails","keys","displayNames","renderNameColumn","config","handleUpdateRole","handleUpdateStatus","tableData","displayName","imageUrl","profileImageUrl","Avatar","user","Typography","concat","hyphenize","renderDropdownButton","_ref2","_config$table","_config$table$dropdow","MoreDropdown","dropdownProps","appendTo","document","body","strategy","isDisabled","not","permissions","update","dropdownButtonProps","tooltipProps","content","i18next","t","position","menuTopChildren","_Fragment","DropdownMenuItem","onClick","table","call","getDefaultAlertTitle","_ref3","member","what","taxonomies","singular","getDefaultAlertMessage","_ref4","Trans","i18nKey","values","SINGULAR","person","getDefaultColumns","_ref5","otherColumns","isSize","accessorKey","size","enablePinning","isNotEmpty","cell","_ref6","row","original","enableSorting","header","enableHiding","removeExcludedRole","curry","excludedRoles","role","includes","getColumnData","_ref7","_config$otherColumns","defaultColumns","columns","map","column","otherColumn","find","col","identical","forEach","key","exists","push","renderUpdateAlert","props","_config$alert","_config$alert2","handlePageChange","setFilters","history","searchParams","toCamelCase","replace","buildUrl","window","location","pathname","mergeLeft","page_size","defaultNeetoFiltersColumns","model","node","showRuleSelector","type","buildFilterColumns","_ref8","_ref8$options","options","_ref8$options$emails","_ref8$options$organiz","organizationRoles","_ref8$emailConfig","emailConfig","setSearchTerm","isLoading","columnValues","email","toLabelAndValue","assoc","onInputChange","getFilteredRoles","roles","arguments","length","filter","generateNoDataContent","_ref9","buttonProps","noDataTitleTranslationKey","noDataTitle","plural","noDataButtonProps","AppList","_globalProps$user","globalRoles","savedStateRef","_useTranslation","useTranslation","_useState","useState","current","isAppListEnabled","_useState2","setIsAppListEnabled","_useFormikContext","useFormikContext","_useFormikContext$val","_useFormikContext$val2","_useFormikContext$val3","appRoles","setFieldValue","selectedEmail","pluck","isManageProductsLinkEnabled","globalProps","isOwner","Object","useEffect","appRole","index","_globalProps$appName","appName","substring","buildRoleOptions","Checkbox","components","button","Button","asChild","variant","href","NEETO_AUTH_MANAGE_PRODUCT_URL","_globalProps$appName2","isEnabled","isCurrentApp","isAppRoleSelectionChecked","Tooltip","product","FormikSelect","Confirmation","_globalProps$organiza","activeAppRoles","filterBy","count","orgName","organization","activeRole","getSingleInvitationTranslationProps","fetch","axios","get","BASE_URL","create","payload","post","inviteLink","regenerate","inviteLinkId","put","inviteLinksApi","useFetchInviteLinks","useQuery","queryKey","QUERY_KEYS","INVITATION_LINK","queryFn","useCreateInviteLinks","useMutationWithInvalidation","keysToInvalidate","useRegenerateInviteLink","InviteLink","_inviteLinks$","_inviteLinks$2","_inviteLinks$3","_inviteLinks$4","_inviteLinks$5","_inviteLinks$6","_useCreateInviteLinks","createInviteLink","mutate","isCreateLinkPending","isPending","_useRegenerateInviteL","regenerateLink","_useFetchInviteLinks","_useFetchInviteLinks$","data","_useFetchInviteLinks$2","_useFetchInviteLinks$3","inviteLinks","isFetchLinkLoading","isInviteLinkEmpty","isEmpty","handleRegenerate","_findBy","findBy","roleId","organizationRoleId","Spinner","getInviteURL","token","CopyToClipboardButton","DropdownMenu","buttonStyle","icon","EllipsisVertical","Menu","MenuItem","strong","expiryDays","remainingExpiryDays","expiresAt","organizationRole","inviteLimit","emailDomain","domain","withT","MultipleEmailInput","_head","_ref$emails","innerRef","_ref$selectedMember","selectedMember","setCurrentPage","isInviteLinkFeatureEnabled","isNeetoAuthApp","handleInputChange","event","emailList","valid","EMAIL_REGEX","test","FormikInput","head","PLURAL","FORM_PAGES","INVITE_LINK","FormikMultiEmailInput","required","counter","COUNTER_PROPS","filterInvalidEmails","FILTER_INVALID_EMAILS","helpText","placeholder","ref","NameInputs","ProfileSettings","isTimezoneFieldDisabled","setFieldValueRef","useRef","_useCountries","useCountries","countryDropdownOptions","isFetchingCountriesList","handleCountryChange","timezoneContainerRef","NeetoTimezoneSelector","isTimeFormat24H","timeFormat","initialValue","timeZone","main","innerHTML","country","countryIdentifier","option","o","dependentFields","dateFormat","LANGUAGE_OPTIONS","TIME_FORMAT_OPTIONS","DATE_FORMAT_OPTIONS","ManageMember","_manageMemberComponen","_config$additionalFie2","onComplete","_ref$roles","_ref$componentConfig","componentConfig","isCreationStatusPollingEnabled","setIsCreationStatusPollingEnabled","isViewPermissionGranted","view","isNotDevelopment","railsEnv","_useFetchMembers","useFetchMembers","enabled","team","_useFetchMember","useFetchMember","memberShowData","isMemberDetailLoading","timezoneChangeEnabled","_useState3","MAIN","_useState4","currentPage","formReference","inputReference","appListSavedStateReference","shouldSkipAppListPage","formikValues","manageMemberComponentConfig","DEFAULT_COMPONENT_CONFIG","initialFocusRef","Component","MEMBERS_FORM_COMPONENT_MAPPER","haveToFetchRoles","isEditForm","isLastPage","CONFIRMATION","_useFetchRoles","useFetchRoles","select","response","_response$organizatio","reverse","_useFetchRoles$data","rolesList","isRolesLoading","_useFetchGlobalRoles","useFetchGlobalRoles","groupBy","prop","_useFetchGlobalRoles$","isGlobalRolesLoading","filteredRoles","_useCreateMember","useCreateMember","onSuccess","_useCreateMember$data","_useCreateMember$data2","jobId","createMember","isCreatingMember","refetchInterval","query","state","isCompleted","_useMembersCreationSt","useMembersCreationStatus","creationStatus","_config$createMember","isSuccessful","users","error","handleClose","callback","showThumbsUpToastr","toast","refetchMembers","_useUpdateMember","useUpdateMember","_config$updateMember","updateMember","isUpdatingMember","hasRoleChanged","submitted","_useProfileImageUploa","useProfileImageUpload","uploadConfig","folder","customMetadata","uploadImage","isUploading","handleUploadImage","_asyncToGenerator","_regeneratorRuntime","mark","_callee","image","result","wrap","_callee$","_context","prev","next","uploadedImageData","abrupt","stop","_x","apply","isProcessing","handleAddMember","_callee2","_values$avatar","_yield$handleUploadIm","fileId","filePath","url","_callee2$","_context2","renderPayload","avatar","file","profile","sent","t0","message","_x2","handleOnSubmit","_callee3","setSubmitting","_callee3$","_context3","APP_LIST","_x3","_x4","handleBackButton","getTitle","memberLabel","renderRolesRadioGroup","RolesRadioGroup","isEdit","renderFormPage","_config$additionalFie","ProfileImage","additionalFields","component","isSheet","isOpen","onClose","Header","headerProps","ArrowLeft","Title","Description","FormikForm","classnames","formikProps","enableReinitialize","initialValues","renderInitialValues","additionalFieldsInitialValues","onSubmit","validationSchema","buildValidationSchema","_manageMemberComponen2","_manageMemberComponen3","isValid","dirty","ScrollToErrorField","formRef","bodyProps","Alert","Info","Footer","footerProps","FormikActionBlock","cancelButtonProps","isSubmitting","submitButtonProps"],"mappings":"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"}
@@ -1,249 +0,0 @@
1
- 'use strict';
2
-
3
- var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
4
- var React = require('react');
5
- var neetoAtoms = require('@bigbinary/neeto-atoms');
6
- var formik = require('formik');
7
- var lucideReact = require('lucide-react');
8
- var initializers = require('@bigbinary/neeto-commons-frontend/initializers');
9
- var reactI18next = require('react-i18next');
10
- var sonner = require('sonner');
11
- var jsxRuntime = require('react/jsx-runtime');
12
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
13
- var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
14
- var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
15
- var _regeneratorRuntime = require('@babel/runtime/regenerator');
16
- var neetoCist = require('@bigbinary/neeto-cist');
17
- var reactQuery = require('@tanstack/react-query');
18
- var constants$1 = require('@bigbinary/neeto-commons-frontend/constants');
19
- var axios = require('axios');
20
- var constants = require('./constants-CMNbKvoF.js');
21
-
22
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
23
-
24
- var _slicedToArray__default = /*#__PURE__*/_interopDefault(_slicedToArray);
25
- var _defineProperty__default = /*#__PURE__*/_interopDefault(_defineProperty);
26
- var _asyncToGenerator__default = /*#__PURE__*/_interopDefault(_asyncToGenerator);
27
- var _objectWithoutProperties__default = /*#__PURE__*/_interopDefault(_objectWithoutProperties);
28
- var _regeneratorRuntime__default = /*#__PURE__*/_interopDefault(_regeneratorRuntime);
29
- var axios__default = /*#__PURE__*/_interopDefault(axios);
30
-
31
- var ProfileImage = function ProfileImage() {
32
- var _globalProps$user;
33
- var _useTranslation = reactI18next.useTranslation(),
34
- t = _useTranslation.t;
35
- var _useField = formik.useField("avatar"),
36
- _useField2 = _slicedToArray__default.default(_useField, 3),
37
- field = _useField2[0],
38
- helpers = _useField2[2];
39
- var fileInputRef = React.useRef(null);
40
- var _ref = field.value || {},
41
- imageUrl = _ref.imageUrl,
42
- file = _ref.file;
43
- var displayUrl = file && file !== "_destroy" ? URL.createObjectURL(file) : imageUrl;
44
- var handleFileSelect = function handleFileSelect(event) {
45
- var selectedFile = event.target.files[0];
46
- if (!selectedFile) return;
47
- var maxSize = 5 * 1024 * 1024;
48
- if (selectedFile.size > maxSize) {
49
- sonner.toast.error(t("neetoTeamMembers.common.fileSizeTooLarge", "File size must be less than 5MB"));
50
- return;
51
- }
52
- helpers.setValue({
53
- imageUrl: imageUrl,
54
- file: selectedFile
55
- });
56
- };
57
- var handleRemove = function handleRemove() {
58
- helpers.setValue({
59
- imageUrl: "",
60
- file: "_destroy"
61
- });
62
- };
63
- return /*#__PURE__*/jsxRuntime.jsxs("div", {
64
- className: "flex items-center gap-4",
65
- children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
66
- className: "relative",
67
- children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Avatar, {
68
- size: "xl",
69
- user: {
70
- name: (_globalProps$user = initializers.globalProps.user) === null || _globalProps$user === void 0 ? void 0 : _globalProps$user.name,
71
- imageUrl: displayUrl
72
- }
73
- }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.DropdownMenu, {
74
- customTarget: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
75
- className: "absolute -bottom-1 -right-1 size-6 neeto-ui-rounded-full",
76
- size: "icon-xs",
77
- variant: "outline",
78
- children: /*#__PURE__*/jsxRuntime.jsx(lucideReact.Pencil, {
79
- className: "size-3"
80
- })
81
- }),
82
- children: /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.DropdownMenu.Menu, {
83
- children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.DropdownMenu.MenuItem, {
84
- children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.DropdownMenu.MenuItem.Button, {
85
- "data-testid": "profile-image-upload-button",
86
- onClick: function onClick() {
87
- var _fileInputRef$current;
88
- return (_fileInputRef$current = fileInputRef.current) === null || _fileInputRef$current === void 0 ? void 0 : _fileInputRef$current.click();
89
- },
90
- children: t("neetoTeamMembers.common.upload", "Upload")
91
- })
92
- }), displayUrl && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.DropdownMenu.MenuItem, {
93
- children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.DropdownMenu.MenuItem.Button, {
94
- "data-testid": "profile-image-remove-button",
95
- onClick: handleRemove,
96
- children: t("neetoTeamMembers.common.remove")
97
- })
98
- })]
99
- })
100
- })]
101
- }), /*#__PURE__*/jsxRuntime.jsx("input", {
102
- accept: "image/*",
103
- className: "hidden",
104
- "data-testid": "profile-image-upload-file-field",
105
- ref: fileInputRef,
106
- type: "file",
107
- onChange: handleFileSelect
108
- })]
109
- });
110
- };
111
-
112
- var _excluded = ["value", "className", "size", "variant", "children"];
113
- 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; }
114
- 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; }
115
- var CopyToClipboardButton = function CopyToClipboardButton(_ref) {
116
- var value = _ref.value,
117
- className = _ref.className,
118
- _ref$size = _ref.size,
119
- size = _ref$size === void 0 ? "sm" : _ref$size,
120
- _ref$variant = _ref.variant,
121
- variant = _ref$variant === void 0 ? "outline" : _ref$variant,
122
- children = _ref.children,
123
- rest = _objectWithoutProperties__default.default(_ref, _excluded);
124
- var _useState = React.useState(false),
125
- _useState2 = _slicedToArray__default.default(_useState, 2),
126
- copied = _useState2[0],
127
- setCopied = _useState2[1];
128
- var handleCopy = /*#__PURE__*/function () {
129
- var _ref2 = _asyncToGenerator__default.default(/*#__PURE__*/_regeneratorRuntime__default.default.mark(function _callee() {
130
- var textArea;
131
- return _regeneratorRuntime__default.default.wrap(function _callee$(_context) {
132
- while (1) switch (_context.prev = _context.next) {
133
- case 0:
134
- _context.prev = 0;
135
- _context.next = 3;
136
- return navigator.clipboard.writeText(value);
137
- case 3:
138
- setCopied(true);
139
- setTimeout(function () {
140
- return setCopied(false);
141
- }, 2000);
142
- _context.next = 17;
143
- break;
144
- case 7:
145
- _context.prev = 7;
146
- _context.t0 = _context["catch"](0);
147
- // Fallback for older browsers
148
- textArea = document.createElement("textarea");
149
- textArea.value = value;
150
- document.body.appendChild(textArea);
151
- textArea.select();
152
- document.execCommand("copy");
153
- document.body.removeChild(textArea);
154
- setCopied(true);
155
- setTimeout(function () {
156
- return setCopied(false);
157
- }, 2000);
158
- case 17:
159
- case "end":
160
- return _context.stop();
161
- }
162
- }, _callee, null, [[0, 7]]);
163
- }));
164
- return function handleCopy() {
165
- return _ref2.apply(this, arguments);
166
- };
167
- }();
168
- return /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Button, _objectSpread$1(_objectSpread$1({
169
- size: size,
170
- variant: variant,
171
- className: neetoAtoms.cn("gap-1", className),
172
- onClick: handleCopy
173
- }, rest), {}, {
174
- children: [copied ? /*#__PURE__*/jsxRuntime.jsx(lucideReact.Check, {
175
- className: "size-3.5"
176
- }) : /*#__PURE__*/jsxRuntime.jsx(lucideReact.Copy, {
177
- className: "size-3.5"
178
- }), children]
179
- }));
180
- };
181
-
182
- // eslint-disable-next-line @bigbinary/neeto/no-axios-import-outside-apis
183
- var fetchCountries = function fetchCountries() {
184
- return axios__default.default.get("".concat(constants.BASE_URL, "/profile/countries"));
185
- };
186
- var fetchUserDetails = function fetchUserDetails() {
187
- return axios__default.default.get("".concat(constants.BASE_URL, "/profile/user"));
188
- };
189
- var updateUser = function updateUser(_ref) {
190
- var id = _ref.id,
191
- payload = _ref.payload;
192
- return axios__default.default.put("".concat(constants.BASE_URL, "/profile/user/").concat(id), payload);
193
- };
194
- var profileApi = {
195
- fetchCountries: fetchCountries,
196
- fetchUserDetails: fetchUserDetails,
197
- updateUser: updateUser
198
- };
199
-
200
- 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; }
201
- 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; }
202
- var useFetchCountries = function useFetchCountries(options) {
203
- return reactQuery.useQuery(_objectSpread({
204
- queryKey: [constants.QUERY_KEYS.COUNTRIES_LIST],
205
- queryFn: profileApi.fetchCountries,
206
- staleTime: constants$1.DEFAULT_STALE_TIME
207
- }, options));
208
- };
209
-
210
- var useCountries = function useCountries() {
211
- var _useState = React.useState(null),
212
- _useState2 = _slicedToArray__default.default(_useState, 2),
213
- selectedCountryOption = _useState2[0],
214
- setSelectedCountryOption = _useState2[1];
215
- var _useFetchCountries = useFetchCountries(),
216
- _useFetchCountries$da = _useFetchCountries.data,
217
- _useFetchCountries$da2 = _useFetchCountries$da === void 0 ? {} : _useFetchCountries$da,
218
- _useFetchCountries$da3 = _useFetchCountries$da2.countries,
219
- countries = _useFetchCountries$da3 === void 0 ? [] : _useFetchCountries$da3,
220
- isLoading = _useFetchCountries.isLoading;
221
- var formatCountryOption = function formatCountryOption(country) {
222
- return {
223
- label: country === null || country === void 0 ? void 0 : country.name,
224
- value: country === null || country === void 0 ? void 0 : country.id
225
- };
226
- };
227
- var countryDropdownOptions = React.useMemo(function () {
228
- return countries.map(formatCountryOption);
229
- }, [countries]);
230
- var handleCountryChange = React.useCallback(function (countryOption) {
231
- setSelectedCountryOption(countryOption);
232
- var dependentFields = {};
233
- var selectedCountry = neetoCist.findById(countryOption.value, countries);
234
- dependentFields.dateFormat = selectedCountry.dateFormat;
235
- return dependentFields;
236
- }, [countries]);
237
- return {
238
- countryDropdownOptions: countryDropdownOptions,
239
- selectedCountryOption: selectedCountryOption,
240
- isFetchingCountriesList: isLoading,
241
- handleCountryChange: handleCountryChange
242
- };
243
- };
244
-
245
- exports.CopyToClipboardButton = CopyToClipboardButton;
246
- exports.ProfileImage = ProfileImage;
247
- exports.profileApi = profileApi;
248
- exports.useCountries = useCountries;
249
- //# sourceMappingURL=useCountries-CQdvJz0R.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useCountries-CQdvJz0R.js","sources":["../app/javascript/src/components/v2/Profile/ProfileImage.jsx","../app/javascript/src/components/v2/common/CopyToClipboardButton.jsx","../app/javascript/src/components/v2/apis/profile.js","../app/javascript/src/components/v2/hooks/profile/useCountriesApi.js","../app/javascript/src/components/v2/Profile/hooks/useCountries.js"],"sourcesContent":["/* eslint-disable @bigbinary/neeto/no-missing-localization */\n// v2 ProfileImage — placeholder, full implementation in Phase 3.5\n// Used by ManageMember for member avatar editing\nimport { useRef } from \"react\";\n\nimport { Avatar, Button, DropdownMenu } from \"@bigbinary/neeto-atoms\";\nimport { useField } from \"formik\";\nimport { Pencil } from \"lucide-react\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { useTranslation } from \"react-i18next\";\nimport { toast } from \"sonner\";\n\nconst ProfileImage = () => {\n const { t } = useTranslation();\n const [field, , helpers] = useField(\"avatar\");\n const fileInputRef = useRef(null);\n\n const { imageUrl, file } = field.value || {};\n const displayUrl =\n file && file !== \"_destroy\" ? URL.createObjectURL(file) : imageUrl;\n\n const handleFileSelect = event => {\n const selectedFile = event.target.files[0];\n if (!selectedFile) return;\n\n const maxSize = 5 * 1024 * 1024;\n if (selectedFile.size > maxSize) {\n toast.error(\n t(\n \"neetoTeamMembers.common.fileSizeTooLarge\",\n \"File size must be less than 5MB\"\n )\n );\n\n return;\n }\n\n helpers.setValue({ imageUrl, file: selectedFile });\n };\n\n const handleRemove = () => {\n helpers.setValue({ imageUrl: \"\", file: \"_destroy\" });\n };\n\n return (\n <div className=\"flex items-center gap-4\">\n <div className=\"relative\">\n <Avatar\n size=\"xl\"\n user={{\n name: globalProps.user?.name,\n imageUrl: displayUrl,\n }}\n />\n <DropdownMenu\n customTarget={\n <Button\n className=\"absolute -bottom-1 -right-1 size-6 neeto-ui-rounded-full\"\n size=\"icon-xs\"\n variant=\"outline\"\n >\n <Pencil className=\"size-3\" />\n </Button>\n }\n >\n <DropdownMenu.Menu>\n <DropdownMenu.MenuItem>\n <DropdownMenu.MenuItem.Button\n data-testid=\"profile-image-upload-button\"\n onClick={() => fileInputRef.current?.click()}\n >\n {t(\"neetoTeamMembers.common.upload\", \"Upload\")}\n </DropdownMenu.MenuItem.Button>\n </DropdownMenu.MenuItem>\n {displayUrl && (\n <DropdownMenu.MenuItem>\n <DropdownMenu.MenuItem.Button\n data-testid=\"profile-image-remove-button\"\n onClick={handleRemove}\n >\n {t(\"neetoTeamMembers.common.remove\")}\n </DropdownMenu.MenuItem.Button>\n </DropdownMenu.MenuItem>\n )}\n </DropdownMenu.Menu>\n </DropdownMenu>\n </div>\n <input\n accept=\"image/*\"\n className=\"hidden\"\n data-testid=\"profile-image-upload-file-field\"\n ref={fileInputRef}\n type=\"file\"\n onChange={handleFileSelect}\n />\n </div>\n );\n};\n\nexport default ProfileImage;\n","import { useState } from \"react\";\n\nimport { Button, cn } from \"@bigbinary/neeto-atoms\";\nimport { Check, Copy } from \"lucide-react\";\n\nconst CopyToClipboardButton = ({\n value,\n className,\n size = \"sm\",\n variant = \"outline\",\n children,\n ...rest\n}) => {\n const [copied, setCopied] = useState(false);\n\n const handleCopy = async () => {\n try {\n await navigator.clipboard.writeText(value);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n } catch {\n // Fallback for older browsers\n const textArea = document.createElement(\"textarea\");\n textArea.value = value;\n document.body.appendChild(textArea);\n textArea.select();\n document.execCommand(\"copy\");\n document.body.removeChild(textArea);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n }\n };\n\n return (\n <Button\n {...{ size, variant }}\n className={cn(\"gap-1\", className)}\n onClick={handleCopy}\n {...rest}\n >\n {copied ? <Check className=\"size-3.5\" /> : <Copy className=\"size-3.5\" />}\n {children}\n </Button>\n );\n};\n\nexport default CopyToClipboardButton;\n","// eslint-disable-next-line @bigbinary/neeto/no-axios-import-outside-apis\nimport axios from \"axios\";\n\nimport { BASE_URL } from \"v2/common/constants\";\n\nconst fetchCountries = () => axios.get(`${BASE_URL}/profile/countries`);\n\nconst fetchUserDetails = () => axios.get(`${BASE_URL}/profile/user`);\n\nconst updateUser = ({ id, payload }) =>\n axios.put(`${BASE_URL}/profile/user/${id}`, payload);\n\nconst profileApi = { fetchCountries, fetchUserDetails, updateUser };\n\nexport default profileApi;\n","import { useQuery } from \"@tanstack/react-query\";\nimport { DEFAULT_STALE_TIME } from \"neetocommons/constants\";\n\nimport profileApi from \"v2/apis/profile\";\nimport { QUERY_KEYS } from \"v2/common/constants\";\n\nconst useFetchCountries = options =>\n useQuery({\n queryKey: [QUERY_KEYS.COUNTRIES_LIST],\n queryFn: profileApi.fetchCountries,\n staleTime: DEFAULT_STALE_TIME,\n ...options,\n });\n\nexport { useFetchCountries };\n","import { useCallback, useMemo, useState } from \"react\";\n\nimport { findById } from \"neetocist\";\n\nimport { useFetchCountries } from \"v2/hooks/profile/useCountriesApi\";\n\nconst useCountries = () => {\n const [selectedCountryOption, setSelectedCountryOption] = useState(null);\n\n const { data: { countries = [] } = {}, isLoading } = useFetchCountries();\n\n const formatCountryOption = country => ({\n label: country?.name,\n value: country?.id,\n });\n\n const countryDropdownOptions = useMemo(\n () => countries.map(formatCountryOption),\n [countries]\n );\n\n const handleCountryChange = useCallback(\n countryOption => {\n setSelectedCountryOption(countryOption);\n\n const dependentFields = {};\n const selectedCountry = findById(countryOption.value, countries);\n\n dependentFields.dateFormat = selectedCountry.dateFormat;\n\n return dependentFields;\n },\n [countries]\n );\n\n return {\n countryDropdownOptions,\n selectedCountryOption,\n isFetchingCountriesList: isLoading,\n handleCountryChange,\n };\n};\n\nexport default useCountries;\n"],"names":["ProfileImage","_globalProps$user","_useTranslation","useTranslation","t","_useField","useField","_useField2","_slicedToArray","field","helpers","fileInputRef","useRef","_ref","value","imageUrl","file","displayUrl","URL","createObjectURL","handleFileSelect","event","selectedFile","target","files","maxSize","size","toast","error","setValue","handleRemove","_jsxs","className","children","_jsx","Avatar","user","name","globalProps","DropdownMenu","customTarget","Button","variant","Pencil","Menu","MenuItem","onClick","_fileInputRef$current","current","click","accept","ref","type","onChange","CopyToClipboardButton","_ref$size","_ref$variant","rest","_objectWithoutProperties","_excluded","_useState","useState","_useState2","copied","setCopied","handleCopy","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","textArea","wrap","_callee$","_context","prev","next","navigator","clipboard","writeText","setTimeout","t0","document","createElement","body","appendChild","select","execCommand","removeChild","stop","apply","arguments","_objectSpread","cn","Check","Copy","fetchCountries","axios","get","concat","BASE_URL","fetchUserDetails","updateUser","id","payload","put","profileApi","useFetchCountries","options","useQuery","queryKey","QUERY_KEYS","COUNTRIES_LIST","queryFn","staleTime","DEFAULT_STALE_TIME","useCountries","selectedCountryOption","setSelectedCountryOption","_useFetchCountries","_useFetchCountries$da","data","_useFetchCountries$da2","_useFetchCountries$da3","countries","isLoading","formatCountryOption","country","label","countryDropdownOptions","useMemo","map","handleCountryChange","useCallback","countryOption","dependentFields","selectedCountry","findById","dateFormat","isFetchingCountriesList"],"mappings":"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"}