@bigbinary/neeto-team-members-frontend 5.0.61 → 5.0.63
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.ready +1 -1
- package/dist/ManageMember.js +5 -11
- package/dist/ManageMember.js.map +1 -1
- package/dist/{Permissions-LWRAefeb.js → Permissions-BVkx_S_F.js} +2 -2
- package/dist/Permissions-BVkx_S_F.js.map +1 -0
- package/dist/{Permissions-Bz0SmJzH.js → Permissions-DIdoAJlu.js} +2 -2
- package/dist/Permissions-DIdoAJlu.js.map +1 -0
- package/dist/Profile.js +4 -13
- package/dist/Profile.js.map +1 -1
- package/dist/{ProfileImage-BLnx0E90.js → ProfileImage-BjDA-txF.js} +2 -2
- package/dist/ProfileImage-BjDA-txF.js.map +1 -0
- package/dist/{ProfileImage-V240yfTY.js → ProfileImage-Ca02-i_d.js} +2 -2
- package/dist/ProfileImage-Ca02-i_d.js.map +1 -0
- package/dist/Roles.js +16 -6
- package/dist/Roles.js.map +1 -1
- package/dist/cjs/ManageMember.js +5 -11
- package/dist/cjs/ManageMember.js.map +1 -1
- package/dist/cjs/Profile.js +4 -14
- package/dist/cjs/Profile.js.map +1 -1
- package/dist/cjs/Roles.js +15 -5
- package/dist/cjs/Roles.js.map +1 -1
- package/dist/cjs/v2/Groups.js +1 -1
- package/dist/cjs/v2/Groups.js.map +1 -1
- package/dist/cjs/v2/ManageMember.js +2 -2
- package/dist/cjs/v2/MembersDropdown.js +1 -1
- package/dist/cjs/v2/MembersInvite.js +1 -1
- package/dist/cjs/v2/MembersInvite.js.map +1 -1
- package/dist/cjs/v2/Permissions.js +1 -1
- package/dist/cjs/v2/Profile.js +5 -13
- package/dist/cjs/v2/Profile.js.map +1 -1
- package/dist/cjs/v2/Roles.js +16 -6
- package/dist/cjs/v2/Roles.js.map +1 -1
- package/dist/cjs/v2/TeamMembers.js +2 -2
- package/dist/cjs/v2/TeamsDropdown.js +1 -1
- package/dist/cjs/v2/index.js +4 -4
- package/dist/{index-CBt9gCBK.js → index-81N6f9JN.js} +11 -17
- package/dist/index-81N6f9JN.js.map +1 -0
- package/dist/{index-BRgcqXVL.js → index-BVrpRWeD.js} +3 -3
- package/dist/index-BVrpRWeD.js.map +1 -0
- package/dist/{index-BFScwOib.js → index-Bk0TH8c8.js} +11 -17
- package/dist/index-Bk0TH8c8.js.map +1 -0
- package/dist/{index-BMb0DElQ.js → index-CVZHlIdE.js} +3 -3
- package/dist/index-CVZHlIdE.js.map +1 -0
- package/dist/v2/Groups.js +1 -1
- package/dist/v2/Groups.js.map +1 -1
- package/dist/v2/ManageMember.js +2 -2
- package/dist/v2/MembersDropdown.js +1 -1
- package/dist/v2/MembersInvite.js +1 -1
- package/dist/v2/MembersInvite.js.map +1 -1
- package/dist/v2/Permissions.js +1 -1
- package/dist/v2/Profile.js +6 -14
- package/dist/v2/Profile.js.map +1 -1
- package/dist/v2/Roles.js +17 -7
- package/dist/v2/Roles.js.map +1 -1
- package/dist/v2/TeamMembers.js +2 -2
- package/dist/v2/TeamsDropdown.js +1 -1
- package/dist/v2/index.js +4 -4
- package/package.json +11 -11
- package/types.d.ts +1 -0
- package/dist/Permissions-Bz0SmJzH.js.map +0 -1
- package/dist/Permissions-LWRAefeb.js.map +0 -1
- package/dist/ProfileImage-BLnx0E90.js.map +0 -1
- package/dist/ProfileImage-V240yfTY.js.map +0 -1
- package/dist/index-BFScwOib.js.map +0 -1
- package/dist/index-BMb0DElQ.js.map +0 -1
- package/dist/index-BRgcqXVL.js.map +0 -1
- package/dist/index-CBt9gCBK.js.map +0 -1
package/dist/v2/ManageMember.js
CHANGED
|
@@ -14,7 +14,7 @@ import 'react-i18next';
|
|
|
14
14
|
import 'sonner';
|
|
15
15
|
import '../useRolesApi-93OoRU1s.js';
|
|
16
16
|
import '../useTeamsApi-DkgWqw-g.js';
|
|
17
|
-
export { M as default } from '../index-
|
|
17
|
+
export { M as default } from '../index-Bk0TH8c8.js';
|
|
18
18
|
import '../RolesRadioGroup-CsTenjqQ.js';
|
|
19
19
|
import '../ActionBlock-jgw1N-As.js';
|
|
20
20
|
import '../Select-DZ56UG-l.js';
|
|
@@ -22,7 +22,7 @@ import '@babel/runtime/helpers/objectWithoutProperties';
|
|
|
22
22
|
import 'formik';
|
|
23
23
|
import 'react/jsx-runtime';
|
|
24
24
|
import '../index-CKQDhbTA.js';
|
|
25
|
-
import '../ProfileImage-
|
|
25
|
+
import '../ProfileImage-Ca02-i_d.js';
|
|
26
26
|
import '@tanstack/react-query';
|
|
27
27
|
import '@bigbinary/neeto-cist';
|
|
28
28
|
import '@bigbinary/neeto-commons-frontend/react-utils';
|
|
@@ -7,7 +7,7 @@ import { ChevronDown } from 'lucide-react';
|
|
|
7
7
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
8
8
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
9
9
|
import { isNotEmpty, findBy, removeBy } from '@bigbinary/neeto-cist';
|
|
10
|
-
import { A as AssignList } from '../index-
|
|
10
|
+
import { A as AssignList } from '../index-CVZHlIdE.js';
|
|
11
11
|
import '@babel/runtime/helpers/objectWithoutProperties';
|
|
12
12
|
|
|
13
13
|
var AssignDropdownTarget$1 = function AssignDropdownTarget(_ref) {
|
package/dist/v2/MembersInvite.js
CHANGED
|
@@ -151,7 +151,7 @@ var MembersInvite = function MembersInvite() {
|
|
|
151
151
|
return /*#__PURE__*/jsx("div", {
|
|
152
152
|
className: "flex min-h-screen w-screen items-center justify-center bg-gray-50 px-4",
|
|
153
153
|
children: /*#__PURE__*/jsxs("div", {
|
|
154
|
-
className: "w-full max-w-md space-y-6 p-6
|
|
154
|
+
className: "w-full max-w-md space-y-6 p-6 shadow-lg",
|
|
155
155
|
children: [/*#__PURE__*/jsxs("div", {
|
|
156
156
|
className: "space-y-2 text-center",
|
|
157
157
|
children: [/*#__PURE__*/jsx(Typography, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MembersInvite.js","sources":["../../app/javascript/src/v2/components/MembersInvite/constants.js","../../app/javascript/src/v2/components/MembersInvite/ErrorPage.jsx","../../app/javascript/src/v2/components/MembersInvite/utils.js","../../app/javascript/src/v2/components/MembersInvite/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { SINGULAR } from \"neetocommons/v2/constants\";\nimport * as yup from \"yup\";\n\nexport const VALIDATION_SCHEMA = yup.object().shape({\n email: yup\n .string()\n .email(t(\"neetoTeamMembers.validations.validEmail_one\"))\n .required(\n t(\"neetoTeamMembers.validations.required\", {\n what: t(\"neetoTeamMembers.common.email\", SINGULAR),\n })\n ),\n});\n\nexport const ERROR = { EXPIRED: 410, INVALID_DOMAIN: 422 };\n\nexport const ROOT_URL = \"/\";\n","import { Typography } from \"@bigbinary/neeto-atoms\";\nimport { withT } from \"neetocommons/v2/react-utils\";\nimport { Trans } from \"react-i18next\";\n\nimport InviteLinkError from \"assets/images/InviteLinkError\";\n\nconst ErrorPage = withT(\n ({ t, isExpired = false, email = \"\", allowedDomain = \"\" }) => (\n <div className=\"flex h-screen w-screen items-center justify-center bg-gray-50 px-4\">\n <div className=\"flex w-full max-w-2xl flex-col items-center justify-center space-y-4 text-center\">\n <div className=\"mb-4\">\n <InviteLinkError size={64} />\n </div>\n <Typography variant=\"h1\" weight=\"bold\">\n {isExpired\n ? t(\"neetoTeamMembers.alerts.messages.expiredTitle\")\n : t(\"neetoTeamMembers.alerts.messages.domainTitle\")}\n </Typography>\n <Typography color=\"muted\" variant=\"body3\">\n {isExpired ? (\n t(\"neetoTeamMembers.alerts.messages.expiredMessage\")\n ) : (\n <Trans\n components={{ strong: <strong /> }}\n i18nKey=\"neetoTeamMembers.alerts.messages.domainMessage\"\n values={{ allowedDomain, email }}\n />\n )}\n </Typography>\n </div>\n </div>\n )\n);\nexport default ErrorPage;\n","import { dayjs } from \"neetocommons/v2/utils\";\n\nconst getStartOfDay = date => dayjs(date).startOf(\"day\");\n\nexport const isExpired = date => {\n if (!date) return false;\n\n const today = getStartOfDay();\n const expiryDate = getStartOfDay(date);\n\n return expiryDate.isBefore(today);\n};\n","import { useState } from \"react\";\n\nimport { Typography } from \"@bigbinary/neeto-atoms\";\nimport { Input as FormikInput } from \"@bigbinary/neeto-atoms/formik\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\nimport { useDisplayErrorPage } from \"neetocommons/v2/react-utils\";\nimport ErrorPageGlobal from \"neetomolecules/v2/ErrorPage\";\nimport PageLoader from \"neetomolecules/v2/PageLoader\";\nimport { Trans, useTranslation } from \"react-i18next\";\nimport { useParams } from \"react-router-dom\";\n\nimport { QUERY_KEYS } from \"common/constants\";\nimport {\n useShowInviteLink,\n useCreateInvitation,\n} from \"hooks/reactQuery/public/useInvitationsApi\";\n\nimport { ERROR, VALIDATION_SCHEMA, ROOT_URL } from \"./constants\";\nimport ErrorPage from \"./ErrorPage\";\nimport { isExpired } from \"./utils\";\n\nimport { FormikForm, FormikActionBlock } from \"../Common/formik\";\n\nconst MembersInvite = () => {\n const queryClient = useQueryClient();\n const { t } = useTranslation();\n const { inviteId } = useParams();\n const displayErrorPage = useDisplayErrorPage();\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n const { data: inviteLink, isLoading } = useShowInviteLink(inviteId);\n\n const handleSuccess = response => {\n if (response?.redirectUrl) {\n window.location.href = response.redirectUrl;\n } else {\n setIsSubmitting(false);\n }\n };\n\n const handleError = () => {\n queryClient.invalidateQueries({\n queryKey: [QUERY_KEYS.INVITATION_LINK, inviteId],\n });\n setIsSubmitting(false);\n };\n\n const {\n mutate: createInvitation,\n isError,\n error,\n variables,\n } = useCreateInvitation({ onSuccess: handleSuccess, onError: handleError });\n\n const isInviteExpired =\n isExpired(inviteLink?.expiresAt) ||\n (isError && error?.status === ERROR.EXPIRED);\n\n const isInvalidDomain = isError && error?.status === ERROR.INVALID_DOMAIN;\n\n const handleSubmit = ({ email }) => {\n setIsSubmitting(true);\n\n return createInvitation({ email, inviteToken: inviteId });\n };\n\n if (isLoading || isSubmitting) {\n return (\n <div className=\"h-screen w-screen\">\n <PageLoader />\n </div>\n );\n }\n\n if (isInviteExpired || isInvalidDomain) {\n return (\n <ErrorPage\n allowedDomain={inviteLink?.domain}\n email={variables?.email}\n isExpired={isInviteExpired}\n />\n );\n }\n\n if (displayErrorPage) {\n return <ErrorPageGlobal homeUrl={ROOT_URL} />;\n }\n\n return (\n <div className=\"flex min-h-screen w-screen items-center justify-center bg-gray-50 px-4\">\n <div className=\"w-full max-w-md space-y-6 p-6 neeto-ui-shadow-lg\">\n <div className=\"space-y-2 text-center\">\n <Typography variant=\"h3\">\n {t(\"neetoTeamMembers.helpers.invitationTitle\")}\n </Typography>\n <Typography color=\"muted\" variant=\"body2\">\n <Trans\n components={{ strong: <strong /> }}\n i18nKey=\"neetoTeamMembers.helpers.invitationMessage\"\n values={{ organization: globalProps.organization.name }}\n />\n </Typography>\n </div>\n <FormikForm\n formikProps={{\n initialValues: { email: \"\" },\n validationSchema: VALIDATION_SCHEMA,\n onSubmit: handleSubmit,\n }}\n >\n {({ isValid, dirty }) => (\n <div className=\"space-y-4\">\n <FormikInput\n required\n label={t(\"neetoTeamMembers.common.email_one\")}\n name=\"email\"\n type=\"email\"\n />\n <FormikActionBlock\n submitButtonProps={{\n label: t(\"neetoTeamMembers.buttons.acceptInvitation\"),\n disabled: !isValid || !dirty,\n }}\n />\n </div>\n )}\n </FormikForm>\n </div>\n </div>\n );\n};\n\nexport default MembersInvite;\n"],"names":["VALIDATION_SCHEMA","yup","object","shape","email","string","t","required","what","SINGULAR","ERROR","EXPIRED","INVALID_DOMAIN","ROOT_URL","ErrorPage","withT","_ref","_ref$isExpired","isExpired","_ref$email","_ref$allowedDomain","allowedDomain","_jsx","className","children","_jsxs","InviteLinkError","size","Typography","variant","weight","color","Trans","components","strong","i18nKey","values","getStartOfDay","date","dayjs","startOf","today","expiryDate","isBefore","MembersInvite","queryClient","useQueryClient","_useTranslation","useTranslation","_useParams","useParams","inviteId","displayErrorPage","useDisplayErrorPage","_useState","useState","_useState2","_slicedToArray","isSubmitting","setIsSubmitting","_useShowInviteLink","useShowInviteLink","inviteLink","data","isLoading","handleSuccess","response","redirectUrl","window","location","href","handleError","invalidateQueries","queryKey","QUERY_KEYS","INVITATION_LINK","_useCreateInvitation","useCreateInvitation","onSuccess","onError","createInvitation","mutate","isError","error","variables","isInviteExpired","expiresAt","status","isInvalidDomain","handleSubmit","inviteToken","PageLoader","domain","ErrorPageGlobal","homeUrl","organization","globalProps","name","FormikForm","formikProps","initialValues","validationSchema","onSubmit","_ref2","isValid","dirty","FormikInput","label","type","FormikActionBlock","submitButtonProps","disabled"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MembersInvite.js","sources":["../../app/javascript/src/v2/components/MembersInvite/constants.js","../../app/javascript/src/v2/components/MembersInvite/ErrorPage.jsx","../../app/javascript/src/v2/components/MembersInvite/utils.js","../../app/javascript/src/v2/components/MembersInvite/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { SINGULAR } from \"neetocommons/v2/constants\";\nimport * as yup from \"yup\";\n\nexport const VALIDATION_SCHEMA = yup.object().shape({\n email: yup\n .string()\n .email(t(\"neetoTeamMembers.validations.validEmail_one\"))\n .required(\n t(\"neetoTeamMembers.validations.required\", {\n what: t(\"neetoTeamMembers.common.email\", SINGULAR),\n })\n ),\n});\n\nexport const ERROR = { EXPIRED: 410, INVALID_DOMAIN: 422 };\n\nexport const ROOT_URL = \"/\";\n","import { Typography } from \"@bigbinary/neeto-atoms\";\nimport { withT } from \"neetocommons/v2/react-utils\";\nimport { Trans } from \"react-i18next\";\n\nimport InviteLinkError from \"assets/images/InviteLinkError\";\n\nconst ErrorPage = withT(\n ({ t, isExpired = false, email = \"\", allowedDomain = \"\" }) => (\n <div className=\"flex h-screen w-screen items-center justify-center bg-gray-50 px-4\">\n <div className=\"flex w-full max-w-2xl flex-col items-center justify-center space-y-4 text-center\">\n <div className=\"mb-4\">\n <InviteLinkError size={64} />\n </div>\n <Typography variant=\"h1\" weight=\"bold\">\n {isExpired\n ? t(\"neetoTeamMembers.alerts.messages.expiredTitle\")\n : t(\"neetoTeamMembers.alerts.messages.domainTitle\")}\n </Typography>\n <Typography color=\"muted\" variant=\"body3\">\n {isExpired ? (\n t(\"neetoTeamMembers.alerts.messages.expiredMessage\")\n ) : (\n <Trans\n components={{ strong: <strong /> }}\n i18nKey=\"neetoTeamMembers.alerts.messages.domainMessage\"\n values={{ allowedDomain, email }}\n />\n )}\n </Typography>\n </div>\n </div>\n )\n);\nexport default ErrorPage;\n","import { dayjs } from \"neetocommons/v2/utils\";\n\nconst getStartOfDay = date => dayjs(date).startOf(\"day\");\n\nexport const isExpired = date => {\n if (!date) return false;\n\n const today = getStartOfDay();\n const expiryDate = getStartOfDay(date);\n\n return expiryDate.isBefore(today);\n};\n","import { useState } from \"react\";\n\nimport { Typography } from \"@bigbinary/neeto-atoms\";\nimport { Input as FormikInput } from \"@bigbinary/neeto-atoms/formik\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\nimport { useDisplayErrorPage } from \"neetocommons/v2/react-utils\";\nimport ErrorPageGlobal from \"neetomolecules/v2/ErrorPage\";\nimport PageLoader from \"neetomolecules/v2/PageLoader\";\nimport { Trans, useTranslation } from \"react-i18next\";\nimport { useParams } from \"react-router-dom\";\n\nimport { QUERY_KEYS } from \"common/constants\";\nimport {\n useShowInviteLink,\n useCreateInvitation,\n} from \"hooks/reactQuery/public/useInvitationsApi\";\n\nimport { ERROR, VALIDATION_SCHEMA, ROOT_URL } from \"./constants\";\nimport ErrorPage from \"./ErrorPage\";\nimport { isExpired } from \"./utils\";\n\nimport { FormikForm, FormikActionBlock } from \"../Common/formik\";\n\nconst MembersInvite = () => {\n const queryClient = useQueryClient();\n const { t } = useTranslation();\n const { inviteId } = useParams();\n const displayErrorPage = useDisplayErrorPage();\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n const { data: inviteLink, isLoading } = useShowInviteLink(inviteId);\n\n const handleSuccess = response => {\n if (response?.redirectUrl) {\n window.location.href = response.redirectUrl;\n } else {\n setIsSubmitting(false);\n }\n };\n\n const handleError = () => {\n queryClient.invalidateQueries({\n queryKey: [QUERY_KEYS.INVITATION_LINK, inviteId],\n });\n setIsSubmitting(false);\n };\n\n const {\n mutate: createInvitation,\n isError,\n error,\n variables,\n } = useCreateInvitation({ onSuccess: handleSuccess, onError: handleError });\n\n const isInviteExpired =\n isExpired(inviteLink?.expiresAt) ||\n (isError && error?.status === ERROR.EXPIRED);\n\n const isInvalidDomain = isError && error?.status === ERROR.INVALID_DOMAIN;\n\n const handleSubmit = ({ email }) => {\n setIsSubmitting(true);\n\n return createInvitation({ email, inviteToken: inviteId });\n };\n\n if (isLoading || isSubmitting) {\n return (\n <div className=\"h-screen w-screen\">\n <PageLoader />\n </div>\n );\n }\n\n if (isInviteExpired || isInvalidDomain) {\n return (\n <ErrorPage\n allowedDomain={inviteLink?.domain}\n email={variables?.email}\n isExpired={isInviteExpired}\n />\n );\n }\n\n if (displayErrorPage) {\n return <ErrorPageGlobal homeUrl={ROOT_URL} />;\n }\n\n return (\n <div className=\"flex min-h-screen w-screen items-center justify-center bg-gray-50 px-4\">\n <div className=\"w-full max-w-md space-y-6 p-6 shadow-lg\">\n <div className=\"space-y-2 text-center\">\n <Typography variant=\"h3\">\n {t(\"neetoTeamMembers.helpers.invitationTitle\")}\n </Typography>\n <Typography color=\"muted\" variant=\"body2\">\n <Trans\n components={{ strong: <strong /> }}\n i18nKey=\"neetoTeamMembers.helpers.invitationMessage\"\n values={{ organization: globalProps.organization.name }}\n />\n </Typography>\n </div>\n <FormikForm\n formikProps={{\n initialValues: { email: \"\" },\n validationSchema: VALIDATION_SCHEMA,\n onSubmit: handleSubmit,\n }}\n >\n {({ isValid, dirty }) => (\n <div className=\"space-y-4\">\n <FormikInput\n required\n label={t(\"neetoTeamMembers.common.email_one\")}\n name=\"email\"\n type=\"email\"\n />\n <FormikActionBlock\n submitButtonProps={{\n label: t(\"neetoTeamMembers.buttons.acceptInvitation\"),\n disabled: !isValid || !dirty,\n }}\n />\n </div>\n )}\n </FormikForm>\n </div>\n </div>\n );\n};\n\nexport default MembersInvite;\n"],"names":["VALIDATION_SCHEMA","yup","object","shape","email","string","t","required","what","SINGULAR","ERROR","EXPIRED","INVALID_DOMAIN","ROOT_URL","ErrorPage","withT","_ref","_ref$isExpired","isExpired","_ref$email","_ref$allowedDomain","allowedDomain","_jsx","className","children","_jsxs","InviteLinkError","size","Typography","variant","weight","color","Trans","components","strong","i18nKey","values","getStartOfDay","date","dayjs","startOf","today","expiryDate","isBefore","MembersInvite","queryClient","useQueryClient","_useTranslation","useTranslation","_useParams","useParams","inviteId","displayErrorPage","useDisplayErrorPage","_useState","useState","_useState2","_slicedToArray","isSubmitting","setIsSubmitting","_useShowInviteLink","useShowInviteLink","inviteLink","data","isLoading","handleSuccess","response","redirectUrl","window","location","href","handleError","invalidateQueries","queryKey","QUERY_KEYS","INVITATION_LINK","_useCreateInvitation","useCreateInvitation","onSuccess","onError","createInvitation","mutate","isError","error","variables","isInviteExpired","expiresAt","status","isInvalidDomain","handleSubmit","inviteToken","PageLoader","domain","ErrorPageGlobal","homeUrl","organization","globalProps","name","FormikForm","formikProps","initialValues","validationSchema","onSubmit","_ref2","isValid","dirty","FormikInput","label","type","FormikActionBlock","submitButtonProps","disabled"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAIO,IAAMA,iBAAiB,GAAGC,GAAG,CAACC,MAAM,EAAE,CAACC,KAAK,CAAC;EAClDC,KAAK,EAAEH,GAAG,CACPI,MAAM,EAAE,CACRD,KAAK,CAACE,CAAC,CAAC,6CAA6C,CAAC,CAAC,CACvDC,QAAQ,CACPD,CAAC,CAAC,uCAAuC,EAAE;AACzCE,IAAAA,IAAI,EAAEF,CAAC,CAAC,+BAA+B,EAAEG,QAAQ;AACnD,GAAC,CACH;AACJ,CAAC,CAAC;AAEK,IAAMC,KAAK,GAAG;AAAEC,EAAAA,OAAO,EAAE,GAAG;AAAEC,EAAAA,cAAc,EAAE;AAAI,CAAC;AAEnD,IAAMC,QAAQ,GAAG,GAAG;;ACX3B,IAAMC,SAAS,GAAGC,KAAK,CACrB,UAAAC,IAAA,EAAA;AAAA,EAAA,IAAGV,CAAC,GAAAU,IAAA,CAADV,CAAC;IAAAW,cAAA,GAAAD,IAAA,CAAEE,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,cAAA;IAAAE,UAAA,GAAAH,IAAA,CAAEZ,KAAK;AAALA,IAAAA,KAAK,GAAAe,UAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,UAAA;IAAAC,kBAAA,GAAAJ,IAAA,CAAEK,aAAa;AAAbA,IAAAA,aAAa,GAAAD,kBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,kBAAA;AAAA,EAAA,oBACrDE,GAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,oEAAoE;AAAAC,IAAAA,QAAA,eACjFC,IAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,SAAS,EAAC,kFAAkF;AAAAC,MAAAA,QAAA,gBAC/FF,GAAA,CAAA,KAAA,EAAA;AAAKC,QAAAA,SAAS,EAAC,MAAM;QAAAC,QAAA,eACnBF,GAAA,CAACI,kBAAe,EAAA;AAACC,UAAAA,IAAI,EAAE;SAAK;AAAC,OAC1B,CAAC,eACNL,GAAA,CAACM,UAAU,EAAA;AAACC,QAAAA,OAAO,EAAC,IAAI;AAACC,QAAAA,MAAM,EAAC,MAAM;QAAAN,QAAA,EACnCN,SAAS,GACNZ,CAAC,CAAC,+CAA+C,CAAC,GAClDA,CAAC,CAAC,8CAA8C;AAAC,OAC3C,CAAC,eACbgB,GAAA,CAACM,UAAU,EAAA;AAACG,QAAAA,KAAK,EAAC,OAAO;AAACF,QAAAA,OAAO,EAAC,OAAO;QAAAL,QAAA,EACtCN,SAAS,GACRZ,CAAC,CAAC,iDAAiD,CAAC,gBAEpDgB,GAAA,CAACU,KAAK,EAAA;AACJC,UAAAA,UAAU,EAAE;YAAEC,MAAM,eAAEZ,GAAA,CAAA,QAAA,EAAA,EAAS;WAAI;AACnCa,UAAAA,OAAO,EAAC,gDAAgD;AACxDC,UAAAA,MAAM,EAAE;AAAEf,YAAAA,aAAa,EAAbA,aAAa;AAAEjB,YAAAA,KAAK,EAALA;AAAM;SAChC;AACF,OACS,CAAC;KACV;AAAC,GACH,CAAC;AAAA,CAEV,CAAC;;AC9BD,IAAMiC,aAAa,GAAG,SAAhBA,aAAaA,CAAGC,IAAI,EAAA;EAAA,OAAIC,KAAK,CAACD,IAAI,CAAC,CAACE,OAAO,CAAC,KAAK,CAAC;AAAA,CAAA;AAEjD,IAAMtB,SAAS,GAAG,SAAZA,SAASA,CAAGoB,IAAI,EAAI;AAC/B,EAAA,IAAI,CAACA,IAAI,EAAE,OAAO,KAAK;AAEvB,EAAA,IAAMG,KAAK,GAAGJ,aAAa,EAAE;AAC7B,EAAA,IAAMK,UAAU,GAAGL,aAAa,CAACC,IAAI,CAAC;AAEtC,EAAA,OAAOI,UAAU,CAACC,QAAQ,CAACF,KAAK,CAAC;AACnC,CAAC;;ACaD,IAAMG,aAAa,GAAG,SAAhBA,aAAaA,GAAS;AAC1B,EAAA,IAAMC,WAAW,GAAGC,cAAc,EAAE;AACpC,EAAA,IAAAC,eAAA,GAAcC,cAAc,EAAE;IAAtB1C,CAAC,GAAAyC,eAAA,CAADzC,CAAC;AACT,EAAA,IAAA2C,UAAA,GAAqBC,SAAS,EAAE;IAAxBC,QAAQ,GAAAF,UAAA,CAARE,QAAQ;AAChB,EAAA,IAAMC,gBAAgB,GAAGC,mBAAmB,EAAE;AAC9C,EAAA,IAAAC,SAAA,GAAwCC,QAAQ,CAAC,KAAK,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAhDI,IAAAA,YAAY,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,eAAe,GAAAH,UAAA,CAAA,CAAA,CAAA;AAEpC,EAAA,IAAAI,kBAAA,GAAwCC,iBAAiB,CAACV,QAAQ,CAAC;IAArDW,UAAU,GAAAF,kBAAA,CAAhBG,IAAI;IAAcC,SAAS,GAAAJ,kBAAA,CAATI,SAAS;AAEnC,EAAA,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAGC,QAAQ,EAAI;AAChC,IAAA,IAAIA,QAAQ,KAAA,IAAA,IAARA,QAAQ,eAARA,QAAQ,CAAEC,WAAW,EAAE;AACzBC,MAAAA,MAAM,CAACC,QAAQ,CAACC,IAAI,GAAGJ,QAAQ,CAACC,WAAW;AAC7C,IAAA,CAAC,MAAM;MACLR,eAAe,CAAC,KAAK,CAAC;AACxB,IAAA;EACF,CAAC;AAED,EAAA,IAAMY,WAAW,GAAG,SAAdA,WAAWA,GAAS;IACxB1B,WAAW,CAAC2B,iBAAiB,CAAC;AAC5BC,MAAAA,QAAQ,EAAE,CAACC,UAAU,CAACC,eAAe,EAAExB,QAAQ;AACjD,KAAC,CAAC;IACFQ,eAAe,CAAC,KAAK,CAAC;EACxB,CAAC;EAED,IAAAiB,oBAAA,GAKIC,mBAAmB,CAAC;AAAEC,MAAAA,SAAS,EAAEb,aAAa;AAAEc,MAAAA,OAAO,EAAER;AAAY,KAAC,CAAC;IAJjES,gBAAgB,GAAAJ,oBAAA,CAAxBK,MAAM;IACNC,OAAO,GAAAN,oBAAA,CAAPM,OAAO;IACPC,KAAK,GAAAP,oBAAA,CAALO,KAAK;IACLC,SAAS,GAAAR,oBAAA,CAATQ,SAAS;EAGX,IAAMC,eAAe,GACnBnE,SAAS,CAAC4C,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAA,MAAA,GAAA,MAAA,GAAVA,UAAU,CAAEwB,SAAS,CAAC,IAC/BJ,OAAO,IAAI,CAAAC,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAEI,MAAM,MAAK7E,KAAK,CAACC,OAAQ;AAE9C,EAAA,IAAM6E,eAAe,GAAGN,OAAO,IAAI,CAAAC,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAEI,MAAM,MAAK7E,KAAK,CAACE,cAAc;AAEzE,EAAA,IAAM6E,YAAY,GAAG,SAAfA,YAAYA,CAAAzE,IAAA,EAAkB;AAAA,IAAA,IAAZZ,KAAK,GAAAY,IAAA,CAALZ,KAAK;IAC3BuD,eAAe,CAAC,IAAI,CAAC;AAErB,IAAA,OAAOqB,gBAAgB,CAAC;AAAE5E,MAAAA,KAAK,EAALA,KAAK;AAAEsF,MAAAA,WAAW,EAAEvC;AAAS,KAAC,CAAC;EAC3D,CAAC;EAED,IAAIa,SAAS,IAAIN,YAAY,EAAE;AAC7B,IAAA,oBACEpC,GAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC,mBAAmB;AAAAC,MAAAA,QAAA,eAChCF,GAAA,CAACqE,UAAU,EAAA,EAAE;AAAC,KACX,CAAC;AAEV,EAAA;EAEA,IAAIN,eAAe,IAAIG,eAAe,EAAE;IACtC,oBACElE,GAAA,CAACR,SAAS,EAAA;AACRO,MAAAA,aAAa,EAAEyC,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAA,MAAA,GAAA,MAAA,GAAVA,UAAU,CAAE8B,MAAO;AAClCxF,MAAAA,KAAK,EAAEgF,SAAS,KAAA,IAAA,IAATA,SAAS,KAAA,MAAA,GAAA,MAAA,GAATA,SAAS,CAAEhF,KAAM;AACxBc,MAAAA,SAAS,EAAEmE;AAAgB,KAC5B,CAAC;AAEN,EAAA;AAEA,EAAA,IAAIjC,gBAAgB,EAAE;IACpB,oBAAO9B,GAAA,CAACuE,eAAe,EAAA;AAACC,MAAAA,OAAO,EAAEjF;AAAS,KAAE,CAAC;AAC/C,EAAA;AAEA,EAAA,oBACES,GAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,wEAAwE;AAAAC,IAAAA,QAAA,eACrFC,IAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,SAAS,EAAC,yCAAyC;AAAAC,MAAAA,QAAA,gBACtDC,IAAA,CAAA,KAAA,EAAA;AAAKF,QAAAA,SAAS,EAAC,uBAAuB;QAAAC,QAAA,EAAA,cACpCF,GAAA,CAACM,UAAU,EAAA;AAACC,UAAAA,OAAO,EAAC,IAAI;UAAAL,QAAA,EACrBlB,CAAC,CAAC,0CAA0C;AAAC,SACpC,CAAC,eACbgB,GAAA,CAACM,UAAU,EAAA;AAACG,UAAAA,KAAK,EAAC,OAAO;AAACF,UAAAA,OAAO,EAAC,OAAO;UAAAL,QAAA,eACvCF,GAAA,CAACU,KAAK,EAAA;AACJC,YAAAA,UAAU,EAAE;cAAEC,MAAM,eAAEZ,GAAA,CAAA,QAAA,EAAA,EAAS;aAAI;AACnCa,YAAAA,OAAO,EAAC,4CAA4C;AACpDC,YAAAA,MAAM,EAAE;AAAE2D,cAAAA,YAAY,EAAEC,WAAW,CAACD,YAAY,CAACE;AAAK;WACvD;AAAC,SACQ,CAAC;AAAA,OACV,CAAC,eACN3E,GAAA,CAAC4E,UAAU,EAAA;AACTC,QAAAA,WAAW,EAAE;AACXC,UAAAA,aAAa,EAAE;AAAEhG,YAAAA,KAAK,EAAE;WAAI;AAC5BiG,UAAAA,gBAAgB,EAAErG,iBAAiB;AACnCsG,UAAAA,QAAQ,EAAEb;SACV;QAAAjE,QAAA,EAED,SAAAA,QAAAA,CAAA+E,KAAA,EAAA;AAAA,UAAA,IAAGC,OAAO,GAAAD,KAAA,CAAPC,OAAO;YAAEC,KAAK,GAAAF,KAAA,CAALE,KAAK;AAAA,UAAA,oBAChBhF,IAAA,CAAA,KAAA,EAAA;AAAKF,YAAAA,SAAS,EAAC,WAAW;YAAAC,QAAA,EAAA,cACxBF,GAAA,CAACoF,KAAW,EAAA;cACVnG,QAAQ,EAAA,IAAA;AACRoG,cAAAA,KAAK,EAAErG,CAAC,CAAC,mCAAmC,CAAE;AAC9C2F,cAAAA,IAAI,EAAC,OAAO;AACZW,cAAAA,IAAI,EAAC;AAAO,aACb,CAAC,eACFtF,GAAA,CAACuF,iBAAiB,EAAA;AAChBC,cAAAA,iBAAiB,EAAE;AACjBH,gBAAAA,KAAK,EAAErG,CAAC,CAAC,2CAA2C,CAAC;AACrDyG,gBAAAA,QAAQ,EAAE,CAACP,OAAO,IAAI,CAACC;AACzB;AAAE,aACH,CAAC;AAAA,WACC,CAAC;AAAA,QAAA;AACP,OACS,CAAC;KACV;AAAC,GACH,CAAC;AAEV;;;;"}
|
package/dist/v2/Permissions.js
CHANGED
|
@@ -7,7 +7,7 @@ import '@bigbinary/neeto-cist';
|
|
|
7
7
|
import '@bigbinary/neeto-commons-frontend/v2/constants';
|
|
8
8
|
import 'ramda';
|
|
9
9
|
import 'react-i18next';
|
|
10
|
-
export { P as default } from '../Permissions-
|
|
10
|
+
export { P as default } from '../Permissions-DIdoAJlu.js';
|
|
11
11
|
import 'react/jsx-runtime';
|
|
12
12
|
import '../inject-css-C2dztUxs.js';
|
|
13
13
|
//# sourceMappingURL=Permissions.js.map
|
package/dist/v2/Profile.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
2
2
|
import { useRef, useCallback, useEffect, memo, useState } from 'react';
|
|
3
|
-
import { Spinner, Sheet, Label,
|
|
3
|
+
import { Spinner, Sheet, Label, Typography, Avatar, Button } from '@bigbinary/neeto-atoms';
|
|
4
4
|
import MoreDropdown from '@bigbinary/neeto-molecules/v2/MoreDropdown';
|
|
5
5
|
import { useTranslation } from 'react-i18next';
|
|
6
6
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
@@ -18,7 +18,7 @@ import { isNotNil, isNil, is, trim } from 'ramda';
|
|
|
18
18
|
import { toast } from 'sonner';
|
|
19
19
|
import { D as DATE_FORMAT_OPTIONS, T as TIME_FORMAT_OPTIONS } from '../constants-CXdiW8NZ.js';
|
|
20
20
|
import { u as useFetchProfile, a as useUpdateProfileMutation } from '../useProfileApi-Dkt6sE5p.js';
|
|
21
|
-
import { u as useCountries, P as ProfileImage } from '../ProfileImage-
|
|
21
|
+
import { u as useCountries, P as ProfileImage } from '../ProfileImage-Ca02-i_d.js';
|
|
22
22
|
import { t } from 'i18next';
|
|
23
23
|
import { globalProps } from '@bigbinary/neeto-commons-frontend/v2/initializers';
|
|
24
24
|
import * as yup from 'yup';
|
|
@@ -101,13 +101,8 @@ var ChangeProfile = function ChangeProfile(_ref) {
|
|
|
101
101
|
countryId = _user$countryId === void 0 ? "" : _user$countryId,
|
|
102
102
|
_user$timeFormat = user.timeFormat,
|
|
103
103
|
timeFormat = _user$timeFormat === void 0 ? TIME_FORMAT_OPTIONS[0].value : _user$timeFormat,
|
|
104
|
-
_user$isOwner = user.isOwner,
|
|
105
|
-
isOwner = _user$isOwner === void 0 ? false : _user$isOwner,
|
|
106
|
-
_user$timezoneChangeE = user.timezoneChangeEnabled,
|
|
107
|
-
timezoneChangeEnabled = _user$timezoneChangeE === void 0 ? true : _user$timezoneChangeE,
|
|
108
104
|
_user$language = user.language,
|
|
109
105
|
language = _user$language === void 0 ? "" : _user$language;
|
|
110
|
-
var isTimezoneFieldDisabled = !isOwner && !timezoneChangeEnabled;
|
|
111
106
|
var setFieldValueRef = useRef(null);
|
|
112
107
|
var _useCountries = useCountries(),
|
|
113
108
|
countryDropdownOptions = _useCountries.countryDropdownOptions,
|
|
@@ -128,11 +123,10 @@ var ChangeProfile = function ChangeProfile(_ref) {
|
|
|
128
123
|
onChange: function onChange(_ref2) {
|
|
129
124
|
var main = _ref2.main;
|
|
130
125
|
return setFieldValueRef.current("timeZone", main);
|
|
131
|
-
}
|
|
132
|
-
disabled: isTimezoneFieldDisabled
|
|
126
|
+
}
|
|
133
127
|
});
|
|
134
128
|
}
|
|
135
|
-
}, [timeZone, timeFormat
|
|
129
|
+
}, [timeZone, timeFormat]);
|
|
136
130
|
var initialFormValues = {
|
|
137
131
|
firstName: firstName,
|
|
138
132
|
lastName: lastName,
|
|
@@ -298,11 +292,9 @@ var ChangeProfile = function ChangeProfile(_ref) {
|
|
|
298
292
|
children: " *"
|
|
299
293
|
})]
|
|
300
294
|
}), /*#__PURE__*/jsx("div", {
|
|
295
|
+
className: "w-full grow",
|
|
301
296
|
"data-testid": "ntm-profile-time-zone-select",
|
|
302
|
-
ref: timezoneRef
|
|
303
|
-
className: cn("w-full grow", {
|
|
304
|
-
"pointer-events-none bg-muted": isTimezoneFieldDisabled
|
|
305
|
-
})
|
|
297
|
+
ref: timezoneRef
|
|
306
298
|
}), touched.timeZone && errors.timeZone && /*#__PURE__*/jsx(Typography, {
|
|
307
299
|
color: "destructive",
|
|
308
300
|
variant: "caption",
|
package/dist/v2/Profile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Profile.js","sources":["../../app/javascript/src/v2/components/Profile/constants.js","../../app/javascript/src/v2/components/Profile/ChangeProfile.jsx","../../app/javascript/src/v2/components/Profile/hooks/useProfileUpdatePane.js","../../app/javascript/src/v2/components/Profile/utils.js","../../app/javascript/src/v2/components/Profile/Preview.jsx","../../app/javascript/src/v2/components/Profile/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\nimport { validation as phoneNumberValidation } from \"neetomolecules/v2/PhoneNumber\";\nimport * as yup from \"yup\";\n\nexport const PROFILE_VALIDATION_SCHEMA = yup.object().shape({\n firstName: yup\n .string()\n .trim()\n .required(t(\"neetoTeamMembers.profile.form.isRequired.firstName\"))\n .matches(\n /^[\\p{L}\\p{N} ,'-áéíóúÁÉÍÓÚ]+$/iu,\n t(\"neetoTeamMembers.profile.form.invalidName\")\n )\n .matches(/^[^.]+$/i, t(\"neetoTeamMembers.profile.form.dotsNotAllowed\")),\n lastName: yup\n .string()\n .trim()\n .required(t(\"neetoTeamMembers.profile.form.isRequired.lastName\"))\n .matches(\n /^[\\p{L}\\p{N} ,'-áéíóúÁÉÍÓÚ]+$/iu,\n t(\"neetoTeamMembers.profile.form.invalidName\")\n )\n .matches(/^[^.]+$/i, t(\"neetoTeamMembers.profile.form.dotsNotAllowed\")),\n phonenumber: phoneNumberValidation(\n t(\"neetoTeamMembers.profile.form.invalidPhoneNumber\")\n ).nullable(),\n dateFormat: yup\n .string()\n .required(t(\"neetoTeamMembers.profile.form.isRequired.dateFormat\")),\n});\n\nexport const UPDATE_EMAIL_PATH = \"/auth/email/edit\";\nexport const MANAGE_BILLING_PATH = \"/auth/billing/edit\";\n\nexport const ALLOWED_PROFILE_IMAGE_MIME_TYPES = [\"image/jpeg\", \"image/png\"];\nexport const IMAGE_DELETE_BUTTON_SIZE = 16;\nexport const STATIC_PROFILE_IMAGE_MAX_SIZE_IN_BYTES =\n globalProps.endUserUploadedFileSizeLimitInMb * 1024 * 1024;\n\nexport const VALIDATION_ERRORS = {\n invalid_type: t(\"neetoTeamMembers.profile.file.invalidType.image\"),\n corrupted_file: t(\"neetoTeamMembers.profile.file.corrupted\"),\n file_limit_exceeded: t(\"neetoTeamMembers.profile.file.limitExceeded\", {\n maxSize: globalProps.endUserUploadedFileSizeLimitInMb,\n }),\n};\n\nexport const DEFAULT_POPOVER_VALUES = {\n preferredDateFormat: {},\n preferredTimeFormat: {},\n timeZone: {},\n};\n","import { useCallback, useEffect, useRef } from \"react\";\n\nimport { Label, Sheet, Spinner, Typography, cn } from \"@bigbinary/neeto-atoms\";\nimport { Input as FormikInput } from \"@bigbinary/neeto-atoms/formik\";\nimport { Card, CardContent } from \"@bigbinary/neeto-atoms/primitives/Card\";\nimport { NeetoTimezoneSelector } from \"@bigbinary/neeto-time-zones\";\nimport { findBy, noop } from \"neetocist\";\nimport { LANGUAGE_OPTIONS } from \"neetocommons/v2/constants\";\nimport { useProfileImageUpload } from \"neetoimageuploader/v2\";\nimport { FormikPhoneNumberInput } from \"neetomolecules/v2/PhoneNumber\";\nimport { isNotNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { toast } from \"sonner\";\n\nimport { DATE_FORMAT_OPTIONS, TIME_FORMAT_OPTIONS } from \"common/constants\";\nimport {\n useUpdateProfileMutation,\n useFetchProfile,\n} from \"hooks/profile/useProfileApi\";\n// eslint-disable-next-line import/extensions\nimport \"v2/stylesheets/timezone-selector.css\";\n\nimport { PROFILE_VALIDATION_SCHEMA } from \"./constants\";\nimport useCountries from \"./hooks/useCountries\";\nimport ProfileImage from \"./ProfileImage\";\n\nimport { FormikForm, FormikSelect, FormikActionBlock } from \"../Common/formik\";\n\nconst ChangeProfile = ({ onClose }) => {\n const { t } = useTranslation();\n\n const { uploadImage, isUploading } = useProfileImageUpload({\n uploadConfig: {\n folder: \"Auth\",\n customMetadata: { appName: \"neetoAuth\" },\n },\n });\n\n const handleUploadImage = image =>\n new Promise(resolve => {\n uploadImage(image, uploadedImageData => {\n resolve(uploadedImageData);\n });\n });\n\n const { data: { user = {} } = {}, isFetching: isFetchingUserDetails } =\n useFetchProfile();\n\n const {\n firstName = \"\",\n lastName = \"\",\n phonenumber = \"\",\n dateFormat = DATE_FORMAT_OPTIONS[0].value,\n timeZone = \"\",\n profileImageUrl = \"\",\n countryId = \"\",\n timeFormat = TIME_FORMAT_OPTIONS[0].value,\n isOwner = false,\n timezoneChangeEnabled = true,\n language = \"\",\n } = user;\n\n const isTimezoneFieldDisabled = !isOwner && !timezoneChangeEnabled;\n const setFieldValueRef = useRef(null);\n\n const {\n countryDropdownOptions,\n selectedCountryOption,\n isFetchingCountriesList,\n handleCountryChange = noop,\n } = useCountries();\n\n const { mutate: updateProfile, isPending: isUpdatingProfile } =\n useUpdateProfileMutation();\n\n const timezoneRef = useCallback(\n node => {\n if (isNotNil(node)) {\n new NeetoTimezoneSelector(node, {\n isTimeFormat24H: timeFormat === \"24h\",\n className: \"w-full z-10\",\n position: \"bottom\",\n initialValue: timeZone,\n onChange: ({ main }) => setFieldValueRef.current(\"timeZone\", main),\n disabled: isTimezoneFieldDisabled,\n });\n }\n },\n [timeZone, timeFormat, isTimezoneFieldDisabled]\n );\n\n const initialFormValues = {\n firstName,\n lastName,\n phonenumber: phonenumber ?? \"\",\n timeZone,\n dateFormat,\n timeFormat,\n language,\n avatar: { imageUrl: profileImageUrl, file: null },\n };\n\n const handleSubmit = async values => {\n try {\n let avatar = {};\n\n if (values.avatar.file === \"_destroy\") {\n avatar = { fileId: \"_destroy\", filePath: \"\", url: \"\" };\n } else if (values.avatar.file) {\n const { fileId, filePath, url } = await handleUploadImage(\n values.avatar.file\n );\n avatar = { fileId, filePath, url };\n }\n\n const { countryId: updatedCountryId, ...rest } = values;\n\n const payload = {\n ...rest,\n avatar,\n countryIdentifier:\n updatedCountryId !== countryId ? updatedCountryId : undefined,\n };\n\n updateProfile({ id: user.id, payload });\n } catch (error) {\n toast.error(error.message);\n }\n };\n\n useEffect(() => {\n const country = findBy({ value: countryId }, countryDropdownOptions);\n if (country) {\n handleCountryChange(country);\n }\n }, [countryId, countryDropdownOptions, handleCountryChange]);\n\n if (isUpdatingProfile || isFetchingCountriesList || isFetchingUserDetails) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <FormikForm\n className=\"flex flex-col h-full flex-1 overflow-y-auto\"\n formProps={{ \"data-testid\": \"ntm-profile-form\" }}\n formikProps={{\n initialValues: initialFormValues,\n validationSchema: PROFILE_VALIDATION_SCHEMA,\n onSubmit: handleSubmit,\n }}\n >\n {({ setFieldValue, errors, touched }) => {\n setFieldValueRef.current = setFieldValue;\n\n return (\n <>\n <Sheet.Body className=\"flex min-h-0 w-full flex-1 flex-col gap-2 overflow-y-auto px-6 pb-4\">\n <Card className=\"w-full shrink-0 ring-0\" size=\"sm\">\n <CardContent>\n <ProfileImage />\n </CardContent>\n </Card>\n <Card className=\"w-full shrink-0 ring-0\" size=\"sm\">\n <CardContent className=\"space-y-6\">\n <FormikInput\n autoFocus\n required\n data-testid=\"profile-first-name-text-field\"\n label={t(\"neetoTeamMembers.profile.inputs.label.firstName\")}\n name=\"firstName\"\n type=\"text\"\n placeholder={t(\n \"neetoTeamMembers.profile.inputs.placeholder.firstName\"\n )}\n />\n <FormikInput\n required\n data-testid=\"profile-last-name-text-field\"\n label={t(\"neetoTeamMembers.profile.inputs.label.lastName\")}\n name=\"lastName\"\n type=\"text\"\n placeholder={t(\n \"neetoTeamMembers.profile.inputs.placeholder.lastName\"\n )}\n />\n <FormikPhoneNumberInput\n data-testid=\"profile-phonenumber-text-field\"\n name=\"phonenumber\"\n label={t(\n \"neetoTeamMembers.profile.inputs.label.phonenumber\"\n )}\n />\n <FormikSelect\n required\n data-testid=\"ntm-profile-country-select\"\n label={t(\"neetoTeamMembers.profile.inputs.label.country\")}\n name=\"countryId\"\n options={countryDropdownOptions}\n value={selectedCountryOption}\n onChange={value => {\n const option = findBy({ value }, countryDropdownOptions);\n const dependentFields = handleCountryChange(option);\n setFieldValue(\"dateFormat\", dependentFields?.dateFormat);\n }}\n />\n <FormikSelect\n required\n data-testid=\"ntm-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>\n {t(\"neetoTeamMembers.profile.inputs.label.timeZone\")}\n <span className=\"text-destructive\"> *</span>\n </Label>\n <div\n data-testid=\"ntm-profile-time-zone-select\"\n ref={timezoneRef}\n className={cn(\"w-full grow\", {\n \"pointer-events-none bg-muted\": isTimezoneFieldDisabled,\n })}\n />\n {touched.timeZone && errors.timeZone && (\n <Typography color=\"destructive\" variant=\"caption\">\n {errors.timeZone}\n </Typography>\n )}\n </div>\n <FormikSelect\n required\n data-testid=\"ntm-time-format-select\"\n name=\"timeFormat\"\n options={TIME_FORMAT_OPTIONS}\n label={t(\n \"neetoTeamMembers.profile.inputs.label.preferredTimeFormat\"\n )}\n />\n <FormikSelect\n required\n data-testid=\"ntm-date-format-select\"\n name=\"dateFormat\"\n options={DATE_FORMAT_OPTIONS}\n label={t(\n \"neetoTeamMembers.profile.inputs.label.preferredDateFormat\"\n )}\n />\n </CardContent>\n </Card>\n </Sheet.Body>\n <Sheet.Footer className=\"border-t border-border\">\n <FormikActionBlock\n isSubmitting={isUpdatingProfile || isUploading}\n cancelButtonProps={{\n \"data-testid\": \"ntm-profile-cancel-button\",\n onClick: onClose,\n }}\n submitButtonProps={{\n \"data-testid\": \"ntm-profile-submit-button\",\n }}\n />\n </Sheet.Footer>\n </>\n );\n }}\n </FormikForm>\n );\n};\n\nexport default ChangeProfile;\n","/* eslint-disable @bigbinary/neeto/ensure-zustand-stores-are-type-annotated */\nimport withImmutableActions from \"neetocommons/v2/react-utils/withImmutableActions\";\nimport { create } from \"zustand\";\nimport { shallow } from \"zustand/shallow\";\n\nconst useProfileUpdateStore = create(\n withImmutableActions(set => ({\n isOpen: false,\n\n setIsOpen: arg => {\n if (typeof arg === \"function\") {\n set(state => ({ isOpen: arg(state.isOpen) }));\n } else {\n set({ isOpen: arg });\n }\n },\n }))\n);\n\nconst useProfileUpdatePaneState = () =>\n useProfileUpdateStore(\n ({ isOpen, setIsOpen }) => [isOpen, setIsOpen],\n shallow\n );\n\nexport default useProfileUpdatePaneState;\n","import { is, isNil, trim } from \"ramda\";\n\nexport const sanitizeValue = (value, defaultValue) =>\n isNil(value) || (is(String, value) && trim(value) === \"\")\n ? defaultValue\n : value;\n","import { memo } from \"react\";\n\nimport {\n Avatar,\n Button,\n Sheet,\n Spinner,\n Typography,\n} from \"@bigbinary/neeto-atoms\";\nimport {\n Card,\n CardAction,\n CardContent,\n} from \"@bigbinary/neeto-atoms/primitives/Card\";\nimport { ianaTimezoneToHumanReadable } from \"@bigbinary/neeto-time-zones\";\nimport { Crown } from \"lucide-react\";\nimport { _findBy } from \"neetocist\";\nimport { LANGUAGE_OPTIONS } from \"neetocommons/v2/constants\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\nimport CopyToClipboardButton from \"neetomolecules/v2/CopyToClipboardButton\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { DATE_FORMAT_OPTIONS, TIME_FORMAT_OPTIONS } from \"common/constants\";\nimport { useFetchProfile } from \"hooks/profile/useProfileApi\";\n\nimport { MANAGE_BILLING_PATH } from \"./constants\";\nimport { sanitizeValue } from \"./utils\";\n\nconst Field = ({ label, children, testId }) => (\n <div className=\"flex flex-col gap-1 py-3 first:pt-0 last:pb-0\">\n <Typography color=\"muted\" variant=\"caption\" weight=\"medium\">\n {label}\n </Typography>\n <Typography data-testid={testId} variant=\"body2\">\n {children}\n </Typography>\n </div>\n);\n\nconst Preview = () => {\n const { t } = useTranslation();\n\n const { data: { user = {} } = {}, isFetching: isFetchingUserDetails } =\n useFetchProfile();\n\n const sanitizedUser = {\n countryName: sanitizeValue(user.countryName, \"-\"),\n dateFormat: sanitizeValue(user.dateFormat, \"\"),\n email: sanitizeValue(user.email, \"-\"),\n firstName: sanitizeValue(user.firstName, \"-\"),\n lastName: sanitizeValue(user.lastName, \"-\"),\n language: sanitizeValue(user.language, \"-\"),\n phonenumber: sanitizeValue(user.phonenumber, \"-\"),\n profileImageUrl: sanitizeValue(user.profileImageUrl, \"\"),\n timeFormat: sanitizeValue(user.timeFormat, \"\"),\n timeZone: sanitizeValue(user.timeZone, \"Etc/UTC\"),\n };\n\n const {\n countryName,\n dateFormat,\n email,\n firstName,\n lastName,\n language,\n phonenumber,\n profileImageUrl,\n timeFormat,\n timeZone,\n } = sanitizedUser;\n\n const name = `${firstName} ${lastName}`.trim();\n const subscription = sanitizeValue(\n globalProps.user?.subscriptionPlan,\n t(\"neetoTeamMembers.common.free\")\n );\n\n const isHour12 = (timeFormat || TIME_FORMAT_OPTIONS[0].value) === \"12h\";\n\n const time = new Intl.DateTimeFormat(\"en-US\", {\n timeZone,\n hour: \"2-digit\",\n minute: \"2-digit\",\n hour12: isHour12,\n }).format(new Date());\n\n const timeZoneAbbreviation = new Intl.DateTimeFormat(\"en-US\", {\n timeZone,\n timeZoneName: \"short\",\n })\n .formatToParts(new Date())\n .find(part => part.type === \"timeZoneName\")?.value;\n\n if (isFetchingUserDetails) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <Sheet.Body className=\"flex min-h-0 w-full flex-1 flex-col gap-2 overflow-y-auto px-6 pb-4\">\n <Card className=\"w-full shrink-0 ring-0\" size=\"sm\">\n <CardContent>\n <div className=\"flex items-center gap-3\">\n <Avatar\n className=\"size-12\"\n user={{ name, imageUrl: profileImageUrl }}\n />\n <div className=\"flex flex-col\">\n <Typography data-testid=\"profile-full-name-field\" variant=\"h6\">\n {name}\n </Typography>\n <div className=\"flex items-center gap-1\">\n <Typography\n color=\"muted\"\n data-testid=\"profile-email-field\"\n variant=\"body3\"\n >\n {email}\n </Typography>\n <CopyToClipboardButton\n size=\"icon-xs\"\n value={email}\n variant=\"ghost\"\n />\n </div>\n </div>\n </div>\n </CardContent>\n </Card>\n <Card className=\"w-full shrink-0 ring-0\" size=\"sm\">\n <CardContent className=\"divide-y divide-border\">\n <Field\n label={t(\"neetoTeamMembers.labels.firstName\")}\n testId=\"profile-first-name-field\"\n >\n {firstName}\n </Field>\n <Field\n label={t(\"neetoTeamMembers.labels.lastName\")}\n testId=\"profile-last-name-field\"\n >\n {lastName}\n </Field>\n <Field\n label={t(\"neetoTeamMembers.profile.inputs.label.phonenumber\")}\n testId=\"profile-phonenumber-field\"\n >\n {phonenumber}\n </Field>\n <Field\n label={t(\"neetoTeamMembers.labels.country\")}\n testId=\"profile-country-field\"\n >\n {countryName}\n </Field>\n <Field\n label={t(\"neetoTeamMembers.labels.language\")}\n testId=\"profile-preferred-language-field\"\n >\n {_findBy({ value: language }, LANGUAGE_OPTIONS)?.label || \"-\"}\n </Field>\n <Field\n label={t(\"neetoTeamMembers.labels.timeZone\")}\n testId=\"profile-time-zone-field\"\n >\n {ianaTimezoneToHumanReadable(timeZone)}\n {timeZoneAbbreviation ? ` (${timeZoneAbbreviation})` : \"\"} {time}\n </Field>\n <Field\n label={t(\"neetoTeamMembers.labels.preferredTimeFormat\")}\n testId=\"profile-preferred-time-format-field\"\n >\n {_findBy({ value: timeFormat }, TIME_FORMAT_OPTIONS)?.label || \"-\"}\n </Field>\n <Field\n label={t(\"neetoTeamMembers.labels.preferredDateFormat\")}\n testId=\"profile-preferred-date-format-field\"\n >\n {_findBy({ value: dateFormat }, DATE_FORMAT_OPTIONS)?.label || \"-\"}\n </Field>\n </CardContent>\n </Card>\n <Card className=\"w-full shrink-0 ring-0\" size=\"sm\">\n <CardContent className=\"grid grid-cols-[1fr_auto] items-center gap-2\">\n <div className=\"flex flex-col gap-1\">\n <Typography color=\"muted\" variant=\"caption\" weight=\"medium\">\n {t(\"neetoTeamMembers.labels.currentPlan\")}\n </Typography>\n <Typography data-testid=\"profile-subscription-type\" variant=\"body2\">\n {t(\"neetoTeamMembers.common.subscriptionType\", { subscription })}\n </Typography>\n </div>\n <CardAction>\n <Button asChild data-testid=\"profile-upgrade-button\" size=\"sm\">\n <a href={MANAGE_BILLING_PATH}>\n <Crown className=\"size-4\" />\n {t(\"neetoTeamMembers.buttons.upgrade\")}\n </a>\n </Button>\n </CardAction>\n </CardContent>\n </Card>\n </Sheet.Body>\n );\n};\n\nexport default memo(Preview);\n","import { useState } from \"react\";\n\nimport { Sheet } from \"@bigbinary/neeto-atoms\";\nimport MoreDropdown from \"neetomolecules/v2/MoreDropdown\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ChangeProfile from \"./ChangeProfile\";\nimport { MANAGE_BILLING_PATH, UPDATE_EMAIL_PATH } from \"./constants\";\nimport useProfileUpdatePaneState from \"./hooks/useProfileUpdatePane\";\nimport Preview from \"./Preview\";\n\nconst Profile = () => {\n const { t } = useTranslation();\n\n const [isOpen, setIsOpen] = useProfileUpdatePaneState();\n const [isEditMode, setIsEditMode] = useState(false);\n\n const onClose = () => {\n setIsOpen(false);\n setIsEditMode(false);\n };\n\n const enableEditMode = () => setIsEditMode(true);\n\n const menuItems = [\n {\n key: \"edit-basic-info\",\n \"data-testid\": \"edit-basic-info-menu-button\",\n label: t(\"neetoTeamMembers.buttons.editBasicInfo\"),\n onClick: enableEditMode,\n },\n {\n key: \"update-email\",\n \"data-testid\": \"update-email-menu-button\",\n label: t(\"neetoTeamMembers.buttons.updateEmail\"),\n onClick: () => window.open(UPDATE_EMAIL_PATH, \"_self\"),\n },\n {\n key: \"manage-billing-subscriptions\",\n \"data-testid\": \"manage-billing-subscriptions-menu-button\",\n label: t(\"neetoTeamMembers.buttons.manageBillingAndSubscriptions\"),\n onClick: () => window.open(MANAGE_BILLING_PATH, \"_self\"),\n },\n ];\n\n return (\n <div className=\"w-full\">\n <Sheet\n {...{ isOpen, onClose }}\n className=\"ntm-timezone-shadcn-overrides max-w-96 gap-0 bg-sidebar\"\n >\n <Sheet.Header>\n <Sheet.Title>\n {t(\"neetoTeamMembers.profile.common.myProfile\")}\n </Sheet.Title>\n {!isEditMode && (\n <MoreDropdown\n {...{ menuItems }}\n isVertical\n dropdownProps={{ position: \"bottom-end\" }}\n dropdownButtonProps={{\n \"data-testid\": \"profile-more-dropdown-button\",\n size: \"icon-sm\",\n className: \"absolute top-3 end-12\",\n }}\n />\n )}\n </Sheet.Header>\n {isEditMode ? <ChangeProfile {...{ onClose }} /> : <Preview />}\n </Sheet>\n </div>\n );\n};\n\nexport default {\n Pane: Profile,\n usePaneState: useProfileUpdatePaneState,\n};\n"],"names":["PROFILE_VALIDATION_SCHEMA","yup","object","shape","firstName","string","trim","required","t","matches","lastName","phonenumber","phoneNumberValidation","nullable","dateFormat","UPDATE_EMAIL_PATH","MANAGE_BILLING_PATH","globalProps","endUserUploadedFileSizeLimitInMb","invalid_type","corrupted_file","file_limit_exceeded","maxSize","ChangeProfile","_ref","onClose","_useTranslation","useTranslation","_useProfileImageUploa","useProfileImageUpload","uploadConfig","folder","customMetadata","appName","uploadImage","isUploading","handleUploadImage","image","Promise","resolve","uploadedImageData","_useFetchProfile","useFetchProfile","_useFetchProfile$data","data","_useFetchProfile$data2","_useFetchProfile$data3","user","isFetchingUserDetails","isFetching","_user$firstName","_user$lastName","_user$phonenumber","_user$dateFormat","DATE_FORMAT_OPTIONS","value","_user$timeZone","timeZone","_user$profileImageUrl","profileImageUrl","_user$countryId","countryId","_user$timeFormat","timeFormat","TIME_FORMAT_OPTIONS","_user$isOwner","isOwner","_user$timezoneChangeE","timezoneChangeEnabled","_user$language","language","isTimezoneFieldDisabled","setFieldValueRef","useRef","_useCountries","useCountries","countryDropdownOptions","selectedCountryOption","isFetchingCountriesList","_useCountries$handleC","handleCountryChange","noop","_useUpdateProfileMuta","useUpdateProfileMutation","updateProfile","mutate","isUpdatingProfile","isPending","timezoneRef","useCallback","node","isNotNil","NeetoTimezoneSelector","isTimeFormat24H","className","position","initialValue","onChange","_ref2","main","current","disabled","initialFormValues","avatar","imageUrl","file","handleSubmit","_ref3","_asyncToGenerator","_regeneratorRuntime","mark","_callee","values","_yield$handleUploadIm","fileId","filePath","url","updatedCountryId","rest","payload","wrap","_callee$","_context","prev","next","sent","_objectWithoutProperties","_excluded","_objectSpread","countryIdentifier","undefined","id","t0","toast","error","message","stop","_x","apply","arguments","useEffect","country","findBy","_jsx","children","Spinner","FormikForm","formProps","formikProps","initialValues","validationSchema","onSubmit","_ref4","setFieldValue","errors","touched","_jsxs","_Fragment","Sheet","Body","Card","size","CardContent","ProfileImage","FormikInput","autoFocus","label","name","type","placeholder","FormikPhoneNumberInput","FormikSelect","options","option","dependentFields","LANGUAGE_OPTIONS","Label","ref","cn","Typography","color","variant","Footer","FormikActionBlock","isSubmitting","cancelButtonProps","onClick","submitButtonProps","useProfileUpdateStore","create","withImmutableActions","set","isOpen","setIsOpen","arg","state","useProfileUpdatePaneState","shallow","sanitizeValue","defaultValue","isNil","is","String","Field","testId","weight","Preview","_globalProps$user","_Intl$DateTimeFormat$","_findBy2","_findBy3","_findBy4","sanitizedUser","countryName","email","concat","subscription","subscriptionPlan","isHour12","time","Intl","DateTimeFormat","hour","minute","hour12","format","Date","timeZoneAbbreviation","timeZoneName","formatToParts","find","part","Avatar","CopyToClipboardButton","_findBy","ianaTimezoneToHumanReadable","CardAction","Button","asChild","href","Crown","memo","Profile","_useProfileUpdatePane","_useProfileUpdatePane2","_slicedToArray","_useState","useState","_useState2","isEditMode","setIsEditMode","enableEditMode","menuItems","key","window","open","Header","Title","MoreDropdown","isVertical","dropdownProps","dropdownButtonProps","Pane","usePaneState"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Profile.js","sources":["../../app/javascript/src/v2/components/Profile/constants.js","../../app/javascript/src/v2/components/Profile/ChangeProfile.jsx","../../app/javascript/src/v2/components/Profile/hooks/useProfileUpdatePane.js","../../app/javascript/src/v2/components/Profile/utils.js","../../app/javascript/src/v2/components/Profile/Preview.jsx","../../app/javascript/src/v2/components/Profile/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\nimport { validation as phoneNumberValidation } from \"neetomolecules/v2/PhoneNumber\";\nimport * as yup from \"yup\";\n\nexport const PROFILE_VALIDATION_SCHEMA = yup.object().shape({\n firstName: yup\n .string()\n .trim()\n .required(t(\"neetoTeamMembers.profile.form.isRequired.firstName\"))\n .matches(\n /^[\\p{L}\\p{N} ,'-áéíóúÁÉÍÓÚ]+$/iu,\n t(\"neetoTeamMembers.profile.form.invalidName\")\n )\n .matches(/^[^.]+$/i, t(\"neetoTeamMembers.profile.form.dotsNotAllowed\")),\n lastName: yup\n .string()\n .trim()\n .required(t(\"neetoTeamMembers.profile.form.isRequired.lastName\"))\n .matches(\n /^[\\p{L}\\p{N} ,'-áéíóúÁÉÍÓÚ]+$/iu,\n t(\"neetoTeamMembers.profile.form.invalidName\")\n )\n .matches(/^[^.]+$/i, t(\"neetoTeamMembers.profile.form.dotsNotAllowed\")),\n phonenumber: phoneNumberValidation(\n t(\"neetoTeamMembers.profile.form.invalidPhoneNumber\")\n ).nullable(),\n dateFormat: yup\n .string()\n .required(t(\"neetoTeamMembers.profile.form.isRequired.dateFormat\")),\n});\n\nexport const UPDATE_EMAIL_PATH = \"/auth/email/edit\";\nexport const MANAGE_BILLING_PATH = \"/auth/billing/edit\";\n\nexport const ALLOWED_PROFILE_IMAGE_MIME_TYPES = [\"image/jpeg\", \"image/png\"];\nexport const IMAGE_DELETE_BUTTON_SIZE = 16;\nexport const STATIC_PROFILE_IMAGE_MAX_SIZE_IN_BYTES =\n globalProps.endUserUploadedFileSizeLimitInMb * 1024 * 1024;\n\nexport const VALIDATION_ERRORS = {\n invalid_type: t(\"neetoTeamMembers.profile.file.invalidType.image\"),\n corrupted_file: t(\"neetoTeamMembers.profile.file.corrupted\"),\n file_limit_exceeded: t(\"neetoTeamMembers.profile.file.limitExceeded\", {\n maxSize: globalProps.endUserUploadedFileSizeLimitInMb,\n }),\n};\n\nexport const DEFAULT_POPOVER_VALUES = {\n preferredDateFormat: {},\n preferredTimeFormat: {},\n timeZone: {},\n};\n","import { useCallback, useEffect, useRef } from \"react\";\n\nimport { Label, Sheet, Spinner, Typography } from \"@bigbinary/neeto-atoms\";\nimport { Input as FormikInput } from \"@bigbinary/neeto-atoms/formik\";\nimport { Card, CardContent } from \"@bigbinary/neeto-atoms/primitives/Card\";\nimport { NeetoTimezoneSelector } from \"@bigbinary/neeto-time-zones\";\nimport { findBy, noop } from \"neetocist\";\nimport { LANGUAGE_OPTIONS } from \"neetocommons/v2/constants\";\nimport { useProfileImageUpload } from \"neetoimageuploader/v2\";\nimport { FormikPhoneNumberInput } from \"neetomolecules/v2/PhoneNumber\";\nimport { isNotNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { toast } from \"sonner\";\n\nimport { DATE_FORMAT_OPTIONS, TIME_FORMAT_OPTIONS } from \"common/constants\";\nimport {\n useUpdateProfileMutation,\n useFetchProfile,\n} from \"hooks/profile/useProfileApi\";\n// eslint-disable-next-line import/extensions\nimport \"v2/stylesheets/timezone-selector.css\";\n\nimport { PROFILE_VALIDATION_SCHEMA } from \"./constants\";\nimport useCountries from \"./hooks/useCountries\";\nimport ProfileImage from \"./ProfileImage\";\n\nimport { FormikForm, FormikSelect, FormikActionBlock } from \"../Common/formik\";\n\nconst ChangeProfile = ({ onClose }) => {\n const { t } = useTranslation();\n\n const { uploadImage, isUploading } = useProfileImageUpload({\n uploadConfig: {\n folder: \"Auth\",\n customMetadata: { appName: \"neetoAuth\" },\n },\n });\n\n const handleUploadImage = image =>\n new Promise(resolve => {\n uploadImage(image, uploadedImageData => {\n resolve(uploadedImageData);\n });\n });\n\n const { data: { user = {} } = {}, isFetching: isFetchingUserDetails } =\n useFetchProfile();\n\n const {\n firstName = \"\",\n lastName = \"\",\n phonenumber = \"\",\n dateFormat = DATE_FORMAT_OPTIONS[0].value,\n timeZone = \"\",\n profileImageUrl = \"\",\n countryId = \"\",\n timeFormat = TIME_FORMAT_OPTIONS[0].value,\n language = \"\",\n } = user;\n\n const setFieldValueRef = useRef(null);\n\n const {\n countryDropdownOptions,\n selectedCountryOption,\n isFetchingCountriesList,\n handleCountryChange = noop,\n } = useCountries();\n\n const { mutate: updateProfile, isPending: isUpdatingProfile } =\n useUpdateProfileMutation();\n\n const timezoneRef = useCallback(\n node => {\n if (isNotNil(node)) {\n new NeetoTimezoneSelector(node, {\n isTimeFormat24H: timeFormat === \"24h\",\n className: \"w-full z-10\",\n position: \"bottom\",\n initialValue: timeZone,\n onChange: ({ main }) => setFieldValueRef.current(\"timeZone\", main),\n });\n }\n },\n [timeZone, timeFormat]\n );\n\n const initialFormValues = {\n firstName,\n lastName,\n phonenumber: phonenumber ?? \"\",\n timeZone,\n dateFormat,\n timeFormat,\n language,\n avatar: { imageUrl: profileImageUrl, file: null },\n };\n\n const handleSubmit = async values => {\n try {\n let avatar = {};\n\n if (values.avatar.file === \"_destroy\") {\n avatar = { fileId: \"_destroy\", filePath: \"\", url: \"\" };\n } else if (values.avatar.file) {\n const { fileId, filePath, url } = await handleUploadImage(\n values.avatar.file\n );\n avatar = { fileId, filePath, url };\n }\n\n const { countryId: updatedCountryId, ...rest } = values;\n\n const payload = {\n ...rest,\n avatar,\n countryIdentifier:\n updatedCountryId !== countryId ? updatedCountryId : undefined,\n };\n\n updateProfile({ id: user.id, payload });\n } catch (error) {\n toast.error(error.message);\n }\n };\n\n useEffect(() => {\n const country = findBy({ value: countryId }, countryDropdownOptions);\n if (country) {\n handleCountryChange(country);\n }\n }, [countryId, countryDropdownOptions, handleCountryChange]);\n\n if (isUpdatingProfile || isFetchingCountriesList || isFetchingUserDetails) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <FormikForm\n className=\"flex flex-col h-full flex-1 overflow-y-auto\"\n formProps={{ \"data-testid\": \"ntm-profile-form\" }}\n formikProps={{\n initialValues: initialFormValues,\n validationSchema: PROFILE_VALIDATION_SCHEMA,\n onSubmit: handleSubmit,\n }}\n >\n {({ setFieldValue, errors, touched }) => {\n setFieldValueRef.current = setFieldValue;\n\n return (\n <>\n <Sheet.Body className=\"flex min-h-0 w-full flex-1 flex-col gap-2 overflow-y-auto px-6 pb-4\">\n <Card className=\"w-full shrink-0 ring-0\" size=\"sm\">\n <CardContent>\n <ProfileImage />\n </CardContent>\n </Card>\n <Card className=\"w-full shrink-0 ring-0\" size=\"sm\">\n <CardContent className=\"space-y-6\">\n <FormikInput\n autoFocus\n required\n data-testid=\"profile-first-name-text-field\"\n label={t(\"neetoTeamMembers.profile.inputs.label.firstName\")}\n name=\"firstName\"\n type=\"text\"\n placeholder={t(\n \"neetoTeamMembers.profile.inputs.placeholder.firstName\"\n )}\n />\n <FormikInput\n required\n data-testid=\"profile-last-name-text-field\"\n label={t(\"neetoTeamMembers.profile.inputs.label.lastName\")}\n name=\"lastName\"\n type=\"text\"\n placeholder={t(\n \"neetoTeamMembers.profile.inputs.placeholder.lastName\"\n )}\n />\n <FormikPhoneNumberInput\n data-testid=\"profile-phonenumber-text-field\"\n name=\"phonenumber\"\n label={t(\n \"neetoTeamMembers.profile.inputs.label.phonenumber\"\n )}\n />\n <FormikSelect\n required\n data-testid=\"ntm-profile-country-select\"\n label={t(\"neetoTeamMembers.profile.inputs.label.country\")}\n name=\"countryId\"\n options={countryDropdownOptions}\n value={selectedCountryOption}\n onChange={value => {\n const option = findBy({ value }, countryDropdownOptions);\n const dependentFields = handleCountryChange(option);\n setFieldValue(\"dateFormat\", dependentFields?.dateFormat);\n }}\n />\n <FormikSelect\n required\n data-testid=\"ntm-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>\n {t(\"neetoTeamMembers.profile.inputs.label.timeZone\")}\n <span className=\"text-destructive\"> *</span>\n </Label>\n <div\n className=\"w-full grow\"\n data-testid=\"ntm-profile-time-zone-select\"\n ref={timezoneRef}\n />\n {touched.timeZone && errors.timeZone && (\n <Typography color=\"destructive\" variant=\"caption\">\n {errors.timeZone}\n </Typography>\n )}\n </div>\n <FormikSelect\n required\n data-testid=\"ntm-time-format-select\"\n name=\"timeFormat\"\n options={TIME_FORMAT_OPTIONS}\n label={t(\n \"neetoTeamMembers.profile.inputs.label.preferredTimeFormat\"\n )}\n />\n <FormikSelect\n required\n data-testid=\"ntm-date-format-select\"\n name=\"dateFormat\"\n options={DATE_FORMAT_OPTIONS}\n label={t(\n \"neetoTeamMembers.profile.inputs.label.preferredDateFormat\"\n )}\n />\n </CardContent>\n </Card>\n </Sheet.Body>\n <Sheet.Footer className=\"border-t border-border\">\n <FormikActionBlock\n isSubmitting={isUpdatingProfile || isUploading}\n cancelButtonProps={{\n \"data-testid\": \"ntm-profile-cancel-button\",\n onClick: onClose,\n }}\n submitButtonProps={{\n \"data-testid\": \"ntm-profile-submit-button\",\n }}\n />\n </Sheet.Footer>\n </>\n );\n }}\n </FormikForm>\n );\n};\n\nexport default ChangeProfile;\n","/* eslint-disable @bigbinary/neeto/ensure-zustand-stores-are-type-annotated */\nimport withImmutableActions from \"neetocommons/v2/react-utils/withImmutableActions\";\nimport { create } from \"zustand\";\nimport { shallow } from \"zustand/shallow\";\n\nconst useProfileUpdateStore = create(\n withImmutableActions(set => ({\n isOpen: false,\n\n setIsOpen: arg => {\n if (typeof arg === \"function\") {\n set(state => ({ isOpen: arg(state.isOpen) }));\n } else {\n set({ isOpen: arg });\n }\n },\n }))\n);\n\nconst useProfileUpdatePaneState = () =>\n useProfileUpdateStore(\n ({ isOpen, setIsOpen }) => [isOpen, setIsOpen],\n shallow\n );\n\nexport default useProfileUpdatePaneState;\n","import { is, isNil, trim } from \"ramda\";\n\nexport const sanitizeValue = (value, defaultValue) =>\n isNil(value) || (is(String, value) && trim(value) === \"\")\n ? defaultValue\n : value;\n","import { memo } from \"react\";\n\nimport {\n Avatar,\n Button,\n Sheet,\n Spinner,\n Typography,\n} from \"@bigbinary/neeto-atoms\";\nimport {\n Card,\n CardAction,\n CardContent,\n} from \"@bigbinary/neeto-atoms/primitives/Card\";\nimport { ianaTimezoneToHumanReadable } from \"@bigbinary/neeto-time-zones\";\nimport { Crown } from \"lucide-react\";\nimport { _findBy } from \"neetocist\";\nimport { LANGUAGE_OPTIONS } from \"neetocommons/v2/constants\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\nimport CopyToClipboardButton from \"neetomolecules/v2/CopyToClipboardButton\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { DATE_FORMAT_OPTIONS, TIME_FORMAT_OPTIONS } from \"common/constants\";\nimport { useFetchProfile } from \"hooks/profile/useProfileApi\";\n\nimport { MANAGE_BILLING_PATH } from \"./constants\";\nimport { sanitizeValue } from \"./utils\";\n\nconst Field = ({ label, children, testId }) => (\n <div className=\"flex flex-col gap-1 py-3 first:pt-0 last:pb-0\">\n <Typography color=\"muted\" variant=\"caption\" weight=\"medium\">\n {label}\n </Typography>\n <Typography data-testid={testId} variant=\"body2\">\n {children}\n </Typography>\n </div>\n);\n\nconst Preview = () => {\n const { t } = useTranslation();\n\n const { data: { user = {} } = {}, isFetching: isFetchingUserDetails } =\n useFetchProfile();\n\n const sanitizedUser = {\n countryName: sanitizeValue(user.countryName, \"-\"),\n dateFormat: sanitizeValue(user.dateFormat, \"\"),\n email: sanitizeValue(user.email, \"-\"),\n firstName: sanitizeValue(user.firstName, \"-\"),\n lastName: sanitizeValue(user.lastName, \"-\"),\n language: sanitizeValue(user.language, \"-\"),\n phonenumber: sanitizeValue(user.phonenumber, \"-\"),\n profileImageUrl: sanitizeValue(user.profileImageUrl, \"\"),\n timeFormat: sanitizeValue(user.timeFormat, \"\"),\n timeZone: sanitizeValue(user.timeZone, \"Etc/UTC\"),\n };\n\n const {\n countryName,\n dateFormat,\n email,\n firstName,\n lastName,\n language,\n phonenumber,\n profileImageUrl,\n timeFormat,\n timeZone,\n } = sanitizedUser;\n\n const name = `${firstName} ${lastName}`.trim();\n const subscription = sanitizeValue(\n globalProps.user?.subscriptionPlan,\n t(\"neetoTeamMembers.common.free\")\n );\n\n const isHour12 = (timeFormat || TIME_FORMAT_OPTIONS[0].value) === \"12h\";\n\n const time = new Intl.DateTimeFormat(\"en-US\", {\n timeZone,\n hour: \"2-digit\",\n minute: \"2-digit\",\n hour12: isHour12,\n }).format(new Date());\n\n const timeZoneAbbreviation = new Intl.DateTimeFormat(\"en-US\", {\n timeZone,\n timeZoneName: \"short\",\n })\n .formatToParts(new Date())\n .find(part => part.type === \"timeZoneName\")?.value;\n\n if (isFetchingUserDetails) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <Sheet.Body className=\"flex min-h-0 w-full flex-1 flex-col gap-2 overflow-y-auto px-6 pb-4\">\n <Card className=\"w-full shrink-0 ring-0\" size=\"sm\">\n <CardContent>\n <div className=\"flex items-center gap-3\">\n <Avatar\n className=\"size-12\"\n user={{ name, imageUrl: profileImageUrl }}\n />\n <div className=\"flex flex-col\">\n <Typography data-testid=\"profile-full-name-field\" variant=\"h6\">\n {name}\n </Typography>\n <div className=\"flex items-center gap-1\">\n <Typography\n color=\"muted\"\n data-testid=\"profile-email-field\"\n variant=\"body3\"\n >\n {email}\n </Typography>\n <CopyToClipboardButton\n size=\"icon-xs\"\n value={email}\n variant=\"ghost\"\n />\n </div>\n </div>\n </div>\n </CardContent>\n </Card>\n <Card className=\"w-full shrink-0 ring-0\" size=\"sm\">\n <CardContent className=\"divide-y divide-border\">\n <Field\n label={t(\"neetoTeamMembers.labels.firstName\")}\n testId=\"profile-first-name-field\"\n >\n {firstName}\n </Field>\n <Field\n label={t(\"neetoTeamMembers.labels.lastName\")}\n testId=\"profile-last-name-field\"\n >\n {lastName}\n </Field>\n <Field\n label={t(\"neetoTeamMembers.profile.inputs.label.phonenumber\")}\n testId=\"profile-phonenumber-field\"\n >\n {phonenumber}\n </Field>\n <Field\n label={t(\"neetoTeamMembers.labels.country\")}\n testId=\"profile-country-field\"\n >\n {countryName}\n </Field>\n <Field\n label={t(\"neetoTeamMembers.labels.language\")}\n testId=\"profile-preferred-language-field\"\n >\n {_findBy({ value: language }, LANGUAGE_OPTIONS)?.label || \"-\"}\n </Field>\n <Field\n label={t(\"neetoTeamMembers.labels.timeZone\")}\n testId=\"profile-time-zone-field\"\n >\n {ianaTimezoneToHumanReadable(timeZone)}\n {timeZoneAbbreviation ? ` (${timeZoneAbbreviation})` : \"\"} {time}\n </Field>\n <Field\n label={t(\"neetoTeamMembers.labels.preferredTimeFormat\")}\n testId=\"profile-preferred-time-format-field\"\n >\n {_findBy({ value: timeFormat }, TIME_FORMAT_OPTIONS)?.label || \"-\"}\n </Field>\n <Field\n label={t(\"neetoTeamMembers.labels.preferredDateFormat\")}\n testId=\"profile-preferred-date-format-field\"\n >\n {_findBy({ value: dateFormat }, DATE_FORMAT_OPTIONS)?.label || \"-\"}\n </Field>\n </CardContent>\n </Card>\n <Card className=\"w-full shrink-0 ring-0\" size=\"sm\">\n <CardContent className=\"grid grid-cols-[1fr_auto] items-center gap-2\">\n <div className=\"flex flex-col gap-1\">\n <Typography color=\"muted\" variant=\"caption\" weight=\"medium\">\n {t(\"neetoTeamMembers.labels.currentPlan\")}\n </Typography>\n <Typography data-testid=\"profile-subscription-type\" variant=\"body2\">\n {t(\"neetoTeamMembers.common.subscriptionType\", { subscription })}\n </Typography>\n </div>\n <CardAction>\n <Button asChild data-testid=\"profile-upgrade-button\" size=\"sm\">\n <a href={MANAGE_BILLING_PATH}>\n <Crown className=\"size-4\" />\n {t(\"neetoTeamMembers.buttons.upgrade\")}\n </a>\n </Button>\n </CardAction>\n </CardContent>\n </Card>\n </Sheet.Body>\n );\n};\n\nexport default memo(Preview);\n","import { useState } from \"react\";\n\nimport { Sheet } from \"@bigbinary/neeto-atoms\";\nimport MoreDropdown from \"neetomolecules/v2/MoreDropdown\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ChangeProfile from \"./ChangeProfile\";\nimport { MANAGE_BILLING_PATH, UPDATE_EMAIL_PATH } from \"./constants\";\nimport useProfileUpdatePaneState from \"./hooks/useProfileUpdatePane\";\nimport Preview from \"./Preview\";\n\nconst Profile = () => {\n const { t } = useTranslation();\n\n const [isOpen, setIsOpen] = useProfileUpdatePaneState();\n const [isEditMode, setIsEditMode] = useState(false);\n\n const onClose = () => {\n setIsOpen(false);\n setIsEditMode(false);\n };\n\n const enableEditMode = () => setIsEditMode(true);\n\n const menuItems = [\n {\n key: \"edit-basic-info\",\n \"data-testid\": \"edit-basic-info-menu-button\",\n label: t(\"neetoTeamMembers.buttons.editBasicInfo\"),\n onClick: enableEditMode,\n },\n {\n key: \"update-email\",\n \"data-testid\": \"update-email-menu-button\",\n label: t(\"neetoTeamMembers.buttons.updateEmail\"),\n onClick: () => window.open(UPDATE_EMAIL_PATH, \"_self\"),\n },\n {\n key: \"manage-billing-subscriptions\",\n \"data-testid\": \"manage-billing-subscriptions-menu-button\",\n label: t(\"neetoTeamMembers.buttons.manageBillingAndSubscriptions\"),\n onClick: () => window.open(MANAGE_BILLING_PATH, \"_self\"),\n },\n ];\n\n return (\n <div className=\"w-full\">\n <Sheet\n {...{ isOpen, onClose }}\n className=\"ntm-timezone-shadcn-overrides max-w-96 gap-0 bg-sidebar\"\n >\n <Sheet.Header>\n <Sheet.Title>\n {t(\"neetoTeamMembers.profile.common.myProfile\")}\n </Sheet.Title>\n {!isEditMode && (\n <MoreDropdown\n {...{ menuItems }}\n isVertical\n dropdownProps={{ position: \"bottom-end\" }}\n dropdownButtonProps={{\n \"data-testid\": \"profile-more-dropdown-button\",\n size: \"icon-sm\",\n className: \"absolute top-3 end-12\",\n }}\n />\n )}\n </Sheet.Header>\n {isEditMode ? <ChangeProfile {...{ onClose }} /> : <Preview />}\n </Sheet>\n </div>\n );\n};\n\nexport default {\n Pane: Profile,\n usePaneState: useProfileUpdatePaneState,\n};\n"],"names":["PROFILE_VALIDATION_SCHEMA","yup","object","shape","firstName","string","trim","required","t","matches","lastName","phonenumber","phoneNumberValidation","nullable","dateFormat","UPDATE_EMAIL_PATH","MANAGE_BILLING_PATH","globalProps","endUserUploadedFileSizeLimitInMb","invalid_type","corrupted_file","file_limit_exceeded","maxSize","ChangeProfile","_ref","onClose","_useTranslation","useTranslation","_useProfileImageUploa","useProfileImageUpload","uploadConfig","folder","customMetadata","appName","uploadImage","isUploading","handleUploadImage","image","Promise","resolve","uploadedImageData","_useFetchProfile","useFetchProfile","_useFetchProfile$data","data","_useFetchProfile$data2","_useFetchProfile$data3","user","isFetchingUserDetails","isFetching","_user$firstName","_user$lastName","_user$phonenumber","_user$dateFormat","DATE_FORMAT_OPTIONS","value","_user$timeZone","timeZone","_user$profileImageUrl","profileImageUrl","_user$countryId","countryId","_user$timeFormat","timeFormat","TIME_FORMAT_OPTIONS","_user$language","language","setFieldValueRef","useRef","_useCountries","useCountries","countryDropdownOptions","selectedCountryOption","isFetchingCountriesList","_useCountries$handleC","handleCountryChange","noop","_useUpdateProfileMuta","useUpdateProfileMutation","updateProfile","mutate","isUpdatingProfile","isPending","timezoneRef","useCallback","node","isNotNil","NeetoTimezoneSelector","isTimeFormat24H","className","position","initialValue","onChange","_ref2","main","current","initialFormValues","avatar","imageUrl","file","handleSubmit","_ref3","_asyncToGenerator","_regeneratorRuntime","mark","_callee","values","_yield$handleUploadIm","fileId","filePath","url","updatedCountryId","rest","payload","wrap","_callee$","_context","prev","next","sent","_objectWithoutProperties","_excluded","_objectSpread","countryIdentifier","undefined","id","t0","toast","error","message","stop","_x","apply","arguments","useEffect","country","findBy","_jsx","children","Spinner","FormikForm","formProps","formikProps","initialValues","validationSchema","onSubmit","_ref4","setFieldValue","errors","touched","_jsxs","_Fragment","Sheet","Body","Card","size","CardContent","ProfileImage","FormikInput","autoFocus","label","name","type","placeholder","FormikPhoneNumberInput","FormikSelect","options","option","dependentFields","LANGUAGE_OPTIONS","Label","ref","Typography","color","variant","Footer","FormikActionBlock","isSubmitting","cancelButtonProps","onClick","submitButtonProps","useProfileUpdateStore","create","withImmutableActions","set","isOpen","setIsOpen","arg","state","useProfileUpdatePaneState","shallow","sanitizeValue","defaultValue","isNil","is","String","Field","testId","weight","Preview","_globalProps$user","_Intl$DateTimeFormat$","_findBy2","_findBy3","_findBy4","sanitizedUser","countryName","email","concat","subscription","subscriptionPlan","isHour12","time","Intl","DateTimeFormat","hour","minute","hour12","format","Date","timeZoneAbbreviation","timeZoneName","formatToParts","find","part","Avatar","CopyToClipboardButton","_findBy","ianaTimezoneToHumanReadable","CardAction","Button","asChild","href","Crown","memo","Profile","_useProfileUpdatePane","_useProfileUpdatePane2","_slicedToArray","_useState","useState","_useState2","isEditMode","setIsEditMode","enableEditMode","menuItems","key","window","open","Header","Title","MoreDropdown","isVertical","dropdownProps","dropdownButtonProps","Pane","usePaneState"],"mappings":"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"}
|
package/dist/v2/Roles.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
2
|
-
import { useRef, useEffect, Fragment as Fragment$1, memo, useCallback, useState,
|
|
2
|
+
import { useRef, useMemo, useEffect, Fragment as Fragment$1, memo, useCallback, useState, createElement } from 'react';
|
|
3
3
|
import { Tooltip, Button, Sheet, Checkbox, Typography, Alert, Empty, Spinner } from '@bigbinary/neeto-atoms';
|
|
4
4
|
import { g as getScrollBarWidth, i as isOverflown, d as distExports, u as useFetchPermissions } from '../utils-CrN1b-Jp.js';
|
|
5
5
|
import i18next, { t } from 'i18next';
|
|
@@ -17,7 +17,7 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
|
17
17
|
import { Input, Textarea } from '@bigbinary/neeto-atoms/formik';
|
|
18
18
|
import { A as ADMIN_ROLES } from '../constants-CXdiW8NZ.js';
|
|
19
19
|
import { object, string } from 'yup';
|
|
20
|
-
import { P as Permissions, g as getChildrenRemovedFromRoot, s as sortPermissionsBySequence, a as getPermissionGroups, b as getModifiedPermissions } from '../Permissions-
|
|
20
|
+
import { P as Permissions, g as getChildrenRemovedFromRoot, s as sortPermissionsBySequence, a as getPermissionGroups, b as getModifiedPermissions } from '../Permissions-DIdoAJlu.js';
|
|
21
21
|
import { F as FormikActionBlock } from '../ActionBlock-jgw1N-As.js';
|
|
22
22
|
import { a as FormikForm } from '../Select-DZ56UG-l.js';
|
|
23
23
|
import '@babel/runtime/helpers/objectWithoutProperties';
|
|
@@ -143,7 +143,6 @@ var ROLE_FORMIK_PROPS = {
|
|
|
143
143
|
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; }
|
|
144
144
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
145
145
|
var ManageRoles = function ManageRoles(_ref) {
|
|
146
|
-
var _selectedRole$permiss;
|
|
147
146
|
var config = _ref.config,
|
|
148
147
|
_ref$isOpen = _ref.isOpen,
|
|
149
148
|
isOpen = _ref$isOpen === void 0 ? false : _ref$isOpen,
|
|
@@ -183,10 +182,21 @@ var ManageRoles = function ManageRoles(_ref) {
|
|
|
183
182
|
id: selectedRole.id
|
|
184
183
|
}) : createRole(payload);
|
|
185
184
|
};
|
|
186
|
-
var initialValues =
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
185
|
+
var initialValues = useMemo(function () {
|
|
186
|
+
var _selectedRole$permiss, _config$defaultPermis;
|
|
187
|
+
return isEdit ? _objectSpread(_objectSpread({}, selectedRole), {}, {
|
|
188
|
+
permissionIds: (_selectedRole$permiss = selectedRole.permissionIds) === null || _selectedRole$permiss === void 0 ? void 0 : _selectedRole$permiss.sort(),
|
|
189
|
+
description: selectedRole.description || ""
|
|
190
|
+
}) : _objectSpread(_objectSpread({}, ADD_ROLE_FORM_INITIAL_VALUES), {}, {
|
|
191
|
+
permissionIds: ((_config$defaultPermis = config === null || config === void 0 ? void 0 : config.defaultPermissions) !== null && _config$defaultPermis !== void 0 ? _config$defaultPermis : []).flatMap(function (name) {
|
|
192
|
+
return permissions.filter(function (p) {
|
|
193
|
+
return p.name === name;
|
|
194
|
+
}).map(function (p) {
|
|
195
|
+
return p.id;
|
|
196
|
+
});
|
|
197
|
+
}).sort()
|
|
198
|
+
});
|
|
199
|
+
}, [isEdit, selectedRole, config === null || config === void 0 ? void 0 : config.defaultPermissions, permissions]);
|
|
190
200
|
var formikProps = _objectSpread(_objectSpread({}, ROLE_FORMIK_PROPS), {}, {
|
|
191
201
|
initialValues: initialValues,
|
|
192
202
|
onSubmit: handleSubmit
|