@bigbinary/neeto-team-members-frontend 5.1.3 → 5.1.5-beta1

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 (68) hide show
  1. package/dist/.ready +1 -1
  2. package/dist/ManageMember.js +3 -3
  3. package/dist/Profile.js +12 -9
  4. package/dist/Profile.js.map +1 -1
  5. package/dist/{ProfileImage-DLWJaZ0H.js → ProfileImage-6GIVcmN7.js} +2 -2
  6. package/dist/ProfileImage-6GIVcmN7.js.map +1 -0
  7. package/dist/{ProfileImage-g_BVBsn6.js → ProfileImage-B76PJRV0.js} +2 -2
  8. package/dist/ProfileImage-B76PJRV0.js.map +1 -0
  9. package/dist/{ProfileImage-BVGvRQVx.js → ProfileImage-BNFXdzsq.js} +143 -31
  10. package/dist/ProfileImage-BNFXdzsq.js.map +1 -0
  11. package/dist/{ProfileImage-D6FlUbTV.js → ProfileImage-Cv5DMmVA.js} +121 -34
  12. package/dist/ProfileImage-Cv5DMmVA.js.map +1 -0
  13. package/dist/{RolesRadioGroup-BefORc9L.js → RolesRadioGroup-0v5JVDZl.js} +5 -3
  14. package/dist/RolesRadioGroup-0v5JVDZl.js.map +1 -0
  15. package/dist/{RolesRadioGroup-Y0ye4oSa.js → RolesRadioGroup-BRWqAkce.js} +5 -3
  16. package/dist/RolesRadioGroup-BRWqAkce.js.map +1 -0
  17. package/dist/{RolesRadioGroup-BaPc-NJ8.js → RolesRadioGroup-C7VAnBwI.js} +13 -15
  18. package/dist/RolesRadioGroup-C7VAnBwI.js.map +1 -0
  19. package/dist/{RolesRadioGroup-cRZea-gs.js → RolesRadioGroup-CsdLyJvN.js} +13 -15
  20. package/dist/RolesRadioGroup-CsdLyJvN.js.map +1 -0
  21. package/dist/RolesRadioGroup.js +1 -1
  22. package/dist/TeamMembers.js +3 -3
  23. package/dist/cjs/ManageMember.js +3 -3
  24. package/dist/cjs/Profile.js +12 -9
  25. package/dist/cjs/Profile.js.map +1 -1
  26. package/dist/cjs/RolesRadioGroup.js +1 -1
  27. package/dist/cjs/TeamMembers.js +3 -3
  28. package/dist/cjs/index.js +3 -3
  29. package/dist/cjs/v2/ManageMember.js +5 -4
  30. package/dist/cjs/v2/ManageMember.js.map +1 -1
  31. package/dist/cjs/v2/Profile.js +30 -64
  32. package/dist/cjs/v2/Profile.js.map +1 -1
  33. package/dist/cjs/v2/RolesRadioGroup.js +1 -1
  34. package/dist/cjs/v2/TeamMembers.js +4 -3
  35. package/dist/cjs/v2/TeamMembers.js.map +1 -1
  36. package/dist/cjs/v2/index.js +5 -4
  37. package/dist/cjs/v2/index.js.map +1 -1
  38. package/dist/{index-BUDkqcf9.js → index-BKaV_E74.js} +17 -16
  39. package/dist/index-BKaV_E74.js.map +1 -0
  40. package/dist/{index-i205PvB5.js → index-BXIiDsJ1.js} +18 -17
  41. package/dist/index-BXIiDsJ1.js.map +1 -0
  42. package/dist/{index-DkYQBe1V.js → index-CHBsVjnm.js} +7 -6
  43. package/dist/index-CHBsVjnm.js.map +1 -0
  44. package/dist/{index-CCrDkOrb.js → index-THxL0vR4.js} +7 -6
  45. package/dist/index-THxL0vR4.js.map +1 -0
  46. package/dist/index.js +3 -3
  47. package/dist/v2/ManageMember.js +5 -4
  48. package/dist/v2/ManageMember.js.map +1 -1
  49. package/dist/v2/Profile.js +28 -43
  50. package/dist/v2/Profile.js.map +1 -1
  51. package/dist/v2/RolesRadioGroup.js +1 -1
  52. package/dist/v2/TeamMembers.js +4 -3
  53. package/dist/v2/TeamMembers.js.map +1 -1
  54. package/dist/v2/index.js +5 -4
  55. package/dist/v2/index.js.map +1 -1
  56. package/package.json +5 -5
  57. package/dist/ProfileImage-BVGvRQVx.js.map +0 -1
  58. package/dist/ProfileImage-D6FlUbTV.js.map +0 -1
  59. package/dist/ProfileImage-DLWJaZ0H.js.map +0 -1
  60. package/dist/ProfileImage-g_BVBsn6.js.map +0 -1
  61. package/dist/RolesRadioGroup-BaPc-NJ8.js.map +0 -1
  62. package/dist/RolesRadioGroup-BefORc9L.js.map +0 -1
  63. package/dist/RolesRadioGroup-Y0ye4oSa.js.map +0 -1
  64. package/dist/RolesRadioGroup-cRZea-gs.js.map +0 -1
  65. package/dist/index-BUDkqcf9.js.map +0 -1
  66. package/dist/index-CCrDkOrb.js.map +0 -1
  67. package/dist/index-DkYQBe1V.js.map +0 -1
  68. package/dist/index-i205PvB5.js.map +0 -1
package/dist/.ready CHANGED
@@ -1 +1 @@
1
- Built at 2026-09-24T15:37:45.822Z
1
+ Built at 2026-10-01T17:40:22.485Z
@@ -19,11 +19,11 @@ import '@bigbinary/neetoui/formik/Form';
19
19
  import 'ramda';
20
20
  import 'react-i18next';
21
21
  import './index-BISwUwuE.js';
22
- import './ProfileImage-g_BVBsn6.js';
22
+ import './ProfileImage-B76PJRV0.js';
23
23
  import './useRolesApi-93OoRU1s.js';
24
24
  import './useTeamsApi-CGY9oJqn.js';
25
- export { M as default } from './index-DkYQBe1V.js';
26
- import './RolesRadioGroup-BefORc9L.js';
25
+ export { M as default } from './index-CHBsVjnm.js';
26
+ import './RolesRadioGroup-0v5JVDZl.js';
27
27
  import 'react/jsx-runtime';
28
28
  import '@babel/runtime/helpers/toConsumableArray';
29
29
  import 'formik';
package/dist/Profile.js CHANGED
@@ -24,7 +24,7 @@ import ActionBlock from '@bigbinary/neetoui/formik/ActionBlock';
24
24
  import { isNotNil, isNil, is, trim } from 'ramda';
25
25
  import { D as DATE_FORMAT_OPTIONS, T as TIME_FORMAT_OPTIONS } from './constants-CXdiW8NZ.js';
26
26
  import { u as useFetchProfile, a as useUpdateProfileMutation } from './useProfileApi-Dkt6sE5p.js';
27
- import { u as useCountries, P as PROFILE_VALIDATION_SCHEMA, a as ProfileImage, M as MANAGE_BILLING_PATH, U as UPDATE_EMAIL_PATH } from './ProfileImage-g_BVBsn6.js';
27
+ import { u as useCountries, P as PROFILE_VALIDATION_SCHEMA, a as ProfileImage, M as MANAGE_BILLING_PATH, U as UPDATE_EMAIL_PATH } from './ProfileImage-B76PJRV0.js';
28
28
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
29
29
  import withImmutableActions from '@bigbinary/neeto-commons-frontend/react-utils/withImmutableActions';
30
30
  import { create } from 'zustand';
@@ -44,7 +44,7 @@ import 'formik';
44
44
  import '@bigbinary/neeto-icons/Edit';
45
45
  import 'yup';
46
46
 
47
- var _excluded = ["countryId"];
47
+ var _excluded = ["countryId", "countryName"];
48
48
  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; }
49
49
  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; }
50
50
  var ChangeProfile = function ChangeProfile(_ref) {
@@ -86,8 +86,8 @@ var ChangeProfile = function ChangeProfile(_ref) {
86
86
  timeZone = _user$timeZone === void 0 ? "" : _user$timeZone,
87
87
  _user$profileImageUrl = user.profileImageUrl,
88
88
  profileImageUrl = _user$profileImageUrl === void 0 ? "" : _user$profileImageUrl,
89
- _user$countryId = user.countryId,
90
- countryId = _user$countryId === void 0 ? "" : _user$countryId,
89
+ _user$countryName = user.countryName,
90
+ countryName = _user$countryName === void 0 ? "" : _user$countryName,
91
91
  _user$timeFormat = user.timeFormat,
92
92
  timeFormat = _user$timeFormat === void 0 ? TIME_FORMAT_OPTIONS[0].value : _user$timeFormat,
93
93
  _user$language = user.language,
@@ -131,7 +131,7 @@ var ChangeProfile = function ChangeProfile(_ref) {
131
131
  };
132
132
  var handleSubmit = /*#__PURE__*/function () {
133
133
  var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(values) {
134
- var avatar, _yield$handleUploadIm, fileId, filePath, url, updatedCountryId, rest, payload;
134
+ var avatar, _yield$handleUploadIm, fileId, filePath, url, updatedCountryId, updatedCountryName, rest, payload;
135
135
  return _regeneratorRuntime.wrap(function _callee$(_context) {
136
136
  while (1) switch (_context.prev = _context.next) {
137
137
  case 0:
@@ -166,10 +166,12 @@ var ChangeProfile = function ChangeProfile(_ref) {
166
166
  url: url
167
167
  };
168
168
  case 14:
169
- updatedCountryId = values.countryId, rest = _objectWithoutProperties(values, _excluded);
169
+ // Both stay undefined until the country select is changed.
170
+ updatedCountryId = values.countryId, updatedCountryName = values.countryName, rest = _objectWithoutProperties(values, _excluded);
170
171
  payload = _objectSpread(_objectSpread({}, rest), {}, {
171
172
  avatar: avatar,
172
- countryIdentifier: updatedCountryId !== countryId ? updatedCountryId : undefined
173
+ countryIdentifier: updatedCountryId,
174
+ countryName: updatedCountryName
173
175
  });
174
176
  updateProfile({
175
177
  id: user.id,
@@ -193,12 +195,12 @@ var ChangeProfile = function ChangeProfile(_ref) {
193
195
  }();
194
196
  useEffect(function () {
195
197
  var country = findBy({
196
- value: countryId
198
+ label: countryName
197
199
  }, countryDropdownOptions);
198
200
  if (country) {
199
201
  handleCountryChange(country);
200
202
  }
201
- }, [countryId, countryDropdownOptions, handleCountryChange]);
203
+ }, [countryName, countryDropdownOptions, handleCountryChange]);
202
204
  if (isUpdatingProfile || isFetchingCountriesList || isFetchingUserDetails) {
203
205
  return /*#__PURE__*/jsx("div", {
204
206
  className: "flex h-full w-full items-center justify-center",
@@ -259,6 +261,7 @@ var ChangeProfile = function ChangeProfile(_ref) {
259
261
  var dependentFields = handleCountryChange(option);
260
262
  setFieldValue("dateFormat", dependentFields === null || dependentFields === void 0 ? void 0 : dependentFields.dateFormat);
261
263
  setFieldValue("countryId", option === null || option === void 0 ? void 0 : option.value);
264
+ setFieldValue("countryName", option === null || option === void 0 ? void 0 : option.label);
262
265
  }
263
266
  }), /*#__PURE__*/jsx("div", {
264
267
  className: "space-y-2",
@@ -1 +1 @@
1
- {"version":3,"file":"Profile.js","sources":["../app/javascript/src/components/Profile/ChangeProfile.jsx","../app/javascript/src/components/Profile/hooks/useProfileUpdatePane.js","../app/javascript/src/components/Profile/utils.js","../app/javascript/src/components/Profile/Preview.jsx","../app/javascript/src/components/Profile/index.jsx"],"sourcesContent":["import { useCallback, useEffect, useRef } from \"react\";\n\nimport { NeetoTimezoneSelector } from \"@bigbinary/neeto-time-zones\";\nimport { findBy, noop } from \"neetocist\";\nimport { LANGUAGE_OPTIONS } from \"neetocommons/constants\";\nimport { useProfileImageUpload } from \"neetoimageuploader\";\nimport { FormikPhoneNumberInput } from \"neetomolecules/PhoneNumber\";\nimport { Label, Pane, Spinner, Toastr, Typography } from \"neetoui\";\nimport { Input, Select, Form, ActionBlock } from \"neetoui/formik\";\nimport { isNotNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { DATE_FORMAT_OPTIONS, TIME_FORMAT_OPTIONS } from \"common/constants\";\nimport {\n useUpdateProfileMutation,\n useFetchProfile,\n} from \"hooks/profile/useProfileApi\";\n\nimport { PROFILE_VALIDATION_SCHEMA } from \"./constants\";\nimport useCountries from \"./hooks/useCountries\";\nimport ProfileImage from \"./ProfileImage\";\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 Toastr.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 <Form\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 <Pane.Body className=\"w-full\">\n <div className=\"w-full pb-6\">\n <ProfileImage />\n <div className=\"neeto-ui-border-gray-200 mt-4 w-full space-y-4 border-t pt-4\">\n <Input\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 <Input\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 </div>\n <div className=\"neeto-ui-border-gray-200 mt-4 w-full space-y-4 border-t pt-4\">\n <Select\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={option => {\n const dependentFields = handleCountryChange(option);\n setFieldValue(\"dateFormat\", dependentFields?.dateFormat);\n setFieldValue(\"countryId\", option?.value);\n }}\n />\n <div className=\"space-y-2\">\n <Select\n required\n data-testid=\"ntm-language-select\"\n name=\"language\"\n options={LANGUAGE_OPTIONS}\n label={t(\n \"neetoTeamMembers.profile.inputs.label.language\"\n )}\n onChange={option => {\n setFieldValue(\"language\", option.value);\n }}\n />\n </div>\n <div className=\"space-y-2\">\n <div className=\"space-y-2\">\n <Label required>\n {t(\"neetoTeamMembers.profile.inputs.label.timeZone\")}\n </Label>\n <div\n className=\"w-full grow\"\n data-testid=\"ntm-profile-time-zone-select\"\n ref={timezoneRef}\n />\n </div>\n {touched.timeZone && errors.timeZone && (\n <Typography\n className=\"neeto-ui-text-error-800\"\n lineHeight=\"none\"\n style=\"body3\"\n >\n {errors.timeZone}\n </Typography>\n )}\n </div>\n <Select\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 onChange={option => {\n setFieldValue(\"timeFormat\", option.value);\n }}\n />\n <div className=\"space-y-2\">\n <Select\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 onChange={option => {\n setFieldValue(\"dateFormat\", option.value);\n }}\n />\n </div>\n </div>\n </div>\n </Pane.Body>\n <Pane.Footer>\n <ActionBlock\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 </Pane.Footer>\n </>\n );\n }}\n </Form>\n );\n};\n\nexport default ChangeProfile;\n","/* eslint-disable @bigbinary/neeto/ensure-zustand-stores-are-type-annotated */\nimport withImmutableActions from \"neetocommons/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 { ianaTimezoneToHumanReadable } from \"@bigbinary/neeto-time-zones\";\nimport { _findBy } from \"neetocist\";\nimport { LANGUAGE_OPTIONS } from \"neetocommons/constants\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { Crown } from \"neetoicons\";\nimport CopyToClipboardButton from \"neetomolecules/CopyToClipboardButton\";\nimport { Avatar, Button, Pane, Spinner, Typography } from \"neetoui\";\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 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 <Pane.Body className=\"neeto-ui-bg-gray-50 w-full\">\n <div className=\"flex w-full flex-col gap-2\">\n <div className=\"neeto-ui-bg-white neeto-ui-rounded-md p-3\">\n <div className=\"flex items-center gap-3\">\n <Avatar size=\"large\" user={{ name, imageUrl: profileImageUrl }} />\n <div className=\"flex flex-col\">\n <Typography\n data-testid=\"profile-full-name-field\"\n style=\"h4\"\n weight=\"semibold\"\n >\n {name}\n </Typography>\n <div className=\"flex items-center gap-1\">\n <Typography\n className=\"neeto-ui-text-gray-600\"\n data-testid=\"profile-email-field\"\n style=\"body3\"\n >\n {email}\n </Typography>\n <CopyToClipboardButton\n size=\"small\"\n style=\"text\"\n value={email}\n />\n </div>\n </div>\n </div>\n </div>\n <div className=\"neeto-ui-bg-white neeto-ui-rounded-md p-3 divide-y divide-gray-100\">\n <div className=\"flex flex-col gap-1 pb-3\">\n <Typography\n className=\"neeto-ui-text-gray-500\"\n style=\"body3\"\n weight=\"medium\"\n >\n {t(\"neetoTeamMembers.labels.firstName\")}\n </Typography>\n <Typography\n className=\"neeto-ui-text-black profile-preview-value\"\n data-testid=\"profile-first-name-field\"\n style=\"body2\"\n >\n {firstName}\n </Typography>\n </div>\n <div className=\"flex flex-col gap-1 py-3\">\n <Typography\n className=\"neeto-ui-text-gray-500\"\n style=\"body3\"\n weight=\"medium\"\n >\n {t(\"neetoTeamMembers.labels.lastName\")}\n </Typography>\n <Typography\n className=\"neeto-ui-text-black profile-preview-value\"\n data-testid=\"profile-last-name-field\"\n style=\"body2\"\n >\n {lastName}\n </Typography>\n </div>\n <div className=\"flex flex-col gap-1 py-3\">\n <Typography\n className=\"neeto-ui-text-gray-500\"\n style=\"body3\"\n weight=\"medium\"\n >\n {t(\"neetoTeamMembers.profile.inputs.label.phonenumber\")}\n </Typography>\n <Typography\n className=\"neeto-ui-text-black profile-preview-value\"\n data-testid=\"profile-phonenumber-field\"\n style=\"body2\"\n >\n {phonenumber}\n </Typography>\n </div>\n <div className=\"flex flex-col gap-1 py-3\">\n <Typography\n className=\"neeto-ui-text-gray-500\"\n style=\"body3\"\n weight=\"medium\"\n >\n {t(\"neetoTeamMembers.labels.country\")}\n </Typography>\n <Typography\n className=\"neeto-ui-text-black profile-preview-value\"\n data-testid=\"profile-country-field\"\n style=\"body2\"\n >\n {countryName}\n </Typography>\n </div>\n <div className=\"flex flex-col gap-1 py-3\">\n <Typography\n className=\"neeto-ui-text-gray-500\"\n style=\"body3\"\n weight=\"medium\"\n >\n {t(\"neetoTeamMembers.labels.language\")}\n </Typography>\n <Typography\n className=\"neeto-ui-text-black profile-preview-value\"\n data-testid=\"profile-preferred-language-field\"\n style=\"body2\"\n >\n {_findBy({ value: language }, LANGUAGE_OPTIONS)?.label || \"-\"}\n </Typography>\n </div>\n <div className=\"flex flex-col gap-1 py-3\">\n <Typography\n className=\"neeto-ui-text-gray-500\"\n style=\"body3\"\n weight=\"medium\"\n >\n {t(\"neetoTeamMembers.labels.timeZone\")}\n </Typography>\n <Typography\n className=\"neeto-ui-text-black profile-preview-value\"\n data-testid=\"profile-time-zone-field\"\n style=\"body2\"\n >\n {ianaTimezoneToHumanReadable(timeZone)}\n {timeZoneAbbreviation ? ` (${timeZoneAbbreviation})` : \"\"} {time}\n </Typography>\n </div>\n <div className=\"flex flex-col gap-1 py-3\">\n <Typography\n className=\"neeto-ui-text-gray-500\"\n style=\"body3\"\n weight=\"medium\"\n >\n {t(\"neetoTeamMembers.labels.preferredTimeFormat\")}\n </Typography>\n <Typography\n className=\"neeto-ui-text-black profile-preview-value\"\n data-testid=\"profile-preferred-time-format-field\"\n style=\"body2\"\n >\n {_findBy({ value: timeFormat }, TIME_FORMAT_OPTIONS)?.label ||\n \"-\"}\n </Typography>\n </div>\n <div className=\"flex flex-col gap-1 pt-3\">\n <Typography\n className=\"neeto-ui-text-gray-500\"\n style=\"body3\"\n weight=\"medium\"\n >\n {t(\"neetoTeamMembers.labels.preferredDateFormat\")}\n </Typography>\n <Typography\n className=\"neeto-ui-text-black profile-preview-value\"\n data-testid=\"profile-preferred-date-format-field\"\n style=\"body2\"\n >\n {_findBy({ value: dateFormat }, DATE_FORMAT_OPTIONS)?.label ||\n \"-\"}\n </Typography>\n </div>\n </div>\n <div className=\"neeto-ui-bg-white neeto-ui-rounded-md p-3\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex flex-col gap-1\">\n <Typography\n className=\"neeto-ui-text-gray-500\"\n style=\"body3\"\n weight=\"medium\"\n >\n {t(\"neetoTeamMembers.labels.currentPlan\")}\n </Typography>\n <Typography\n className=\"neeto-ui-text-black profile-preview-value\"\n data-testid=\"profile-subscription-type\"\n style=\"body2\"\n >\n {t(\"neetoTeamMembers.common.subscriptionType\", {\n subscription,\n })}\n </Typography>\n </div>\n <Button\n className=\"neeto-ui-rounded-full\"\n data-testid=\"profile-upgrade-button\"\n href={MANAGE_BILLING_PATH}\n icon={Crown}\n iconPosition=\"left\"\n label={t(\"neetoTeamMembers.buttons.upgrade\")}\n size=\"small\"\n style=\"primary\"\n />\n </div>\n </div>\n </div>\n </Pane.Body>\n );\n};\n\nexport default memo(Preview);\n","import { useState } from \"react\";\n\nimport { MenuHorizontal } from \"neetoicons\";\nimport { Dropdown, Pane, Typography } from \"neetoui\";\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\";\nimport \"./styles.scss\";\n\nconst { Menu, MenuItem } = Dropdown;\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 return (\n <div className=\"w-full\">\n <Pane {...{ isOpen, onClose }} className=\"neeto-ui-bg-gray-50 max-w-96\">\n <Pane.Header className=\"neeto-ui-bg-gray-50\">\n <div className=\"flex justify-between\">\n <Typography style=\"h2\" weight=\"semibold\">\n {t(\"neetoTeamMembers.profile.common.myProfile\")}\n </Typography>\n {!isEditMode && (\n <Dropdown buttonStyle=\"text\" icon={MenuHorizontal}>\n <Menu>\n <MenuItem.Button\n data-testid=\"edit-basic-info-menu-button\"\n onClick={enableEditMode}\n >\n {t(\"neetoTeamMembers.buttons.editBasicInfo\")}\n </MenuItem.Button>\n <MenuItem.Button\n data-testid=\"update-email-menu-button\"\n href={UPDATE_EMAIL_PATH}\n >\n {t(\"neetoTeamMembers.buttons.updateEmail\")}\n </MenuItem.Button>\n <MenuItem.Button\n data-testid=\"manage-billing-subscriptions-menu-button\"\n href={MANAGE_BILLING_PATH}\n >\n {t(\n \"neetoTeamMembers.buttons.manageBillingAndSubscriptions\"\n )}\n </MenuItem.Button>\n </Menu>\n </Dropdown>\n )}\n </div>\n </Pane.Header>\n {isEditMode ? <ChangeProfile {...{ onClose }} /> : <Preview />}\n </Pane>\n </div>\n );\n};\n\nexport default {\n Pane: Profile,\n usePaneState: useProfileUpdatePaneState,\n};\n"],"names":["ChangeProfile","_ref","onClose","_useTranslation","useTranslation","t","_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","firstName","_user$lastName","lastName","_user$phonenumber","phonenumber","_user$dateFormat","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","Toastr","error","message","stop","_x","apply","arguments","useEffect","country","findBy","_jsx","children","Spinner","Form","formProps","formikProps","initialValues","validationSchema","PROFILE_VALIDATION_SCHEMA","onSubmit","_ref4","setFieldValue","errors","touched","_jsxs","_Fragment","Pane","Body","ProfileImage","Input","autoFocus","required","label","name","type","placeholder","FormikPhoneNumberInput","Select","options","option","dependentFields","LANGUAGE_OPTIONS","Label","ref","Typography","lineHeight","style","Footer","ActionBlock","isSubmitting","cancelButtonProps","onClick","submitButtonProps","useProfileUpdateStore","create","withImmutableActions","set","isOpen","setIsOpen","arg","state","useProfileUpdatePaneState","shallow","sanitizeValue","defaultValue","isNil","is","String","trim","Preview","_globalProps$user","_Intl$DateTimeFormat$","_findBy2","_findBy3","_findBy4","sanitizedUser","countryName","email","concat","subscription","globalProps","subscriptionPlan","isHour12","time","Intl","DateTimeFormat","hour","minute","hour12","format","Date","timeZoneAbbreviation","timeZoneName","formatToParts","find","part","Avatar","size","weight","CopyToClipboardButton","_findBy","ianaTimezoneToHumanReadable","Button","href","MANAGE_BILLING_PATH","icon","Crown","iconPosition","memo","Menu","Dropdown","MenuItem","Profile","_useProfileUpdatePane","_useProfileUpdatePane2","_slicedToArray","_useState","useState","_useState2","isEditMode","setIsEditMode","enableEditMode","Header","buttonStyle","MenuHorizontal","UPDATE_EMAIL_PATH","usePaneState"],"mappings":"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"}
1
+ {"version":3,"file":"Profile.js","sources":["../app/javascript/src/components/Profile/ChangeProfile.jsx","../app/javascript/src/components/Profile/hooks/useProfileUpdatePane.js","../app/javascript/src/components/Profile/utils.js","../app/javascript/src/components/Profile/Preview.jsx","../app/javascript/src/components/Profile/index.jsx"],"sourcesContent":["import { useCallback, useEffect, useRef } from \"react\";\n\nimport { NeetoTimezoneSelector } from \"@bigbinary/neeto-time-zones\";\nimport { findBy, noop } from \"neetocist\";\nimport { LANGUAGE_OPTIONS } from \"neetocommons/constants\";\nimport { useProfileImageUpload } from \"neetoimageuploader\";\nimport { FormikPhoneNumberInput } from \"neetomolecules/PhoneNumber\";\nimport { Label, Pane, Spinner, Toastr, Typography } from \"neetoui\";\nimport { Input, Select, Form, ActionBlock } from \"neetoui/formik\";\nimport { isNotNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { DATE_FORMAT_OPTIONS, TIME_FORMAT_OPTIONS } from \"common/constants\";\nimport {\n useUpdateProfileMutation,\n useFetchProfile,\n} from \"hooks/profile/useProfileApi\";\n\nimport { PROFILE_VALIDATION_SCHEMA } from \"./constants\";\nimport useCountries from \"./hooks/useCountries\";\nimport ProfileImage from \"./ProfileImage\";\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 countryName = \"\",\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 // Both stay undefined until the country select is changed.\n const {\n countryId: updatedCountryId,\n countryName: updatedCountryName,\n ...rest\n } = values;\n\n const payload = {\n ...rest,\n avatar,\n countryIdentifier: updatedCountryId,\n countryName: updatedCountryName,\n };\n\n updateProfile({ id: user.id, payload });\n } catch (error) {\n Toastr.error(error.message);\n }\n };\n\n useEffect(() => {\n const country = findBy({ label: countryName }, countryDropdownOptions);\n if (country) {\n handleCountryChange(country);\n }\n }, [countryName, 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 <Form\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 <Pane.Body className=\"w-full\">\n <div className=\"w-full pb-6\">\n <ProfileImage />\n <div className=\"neeto-ui-border-gray-200 mt-4 w-full space-y-4 border-t pt-4\">\n <Input\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 <Input\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 </div>\n <div className=\"neeto-ui-border-gray-200 mt-4 w-full space-y-4 border-t pt-4\">\n <Select\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={option => {\n const dependentFields = handleCountryChange(option);\n setFieldValue(\"dateFormat\", dependentFields?.dateFormat);\n setFieldValue(\"countryId\", option?.value);\n setFieldValue(\"countryName\", option?.label);\n }}\n />\n <div className=\"space-y-2\">\n <Select\n required\n data-testid=\"ntm-language-select\"\n name=\"language\"\n options={LANGUAGE_OPTIONS}\n label={t(\n \"neetoTeamMembers.profile.inputs.label.language\"\n )}\n onChange={option => {\n setFieldValue(\"language\", option.value);\n }}\n />\n </div>\n <div className=\"space-y-2\">\n <div className=\"space-y-2\">\n <Label required>\n {t(\"neetoTeamMembers.profile.inputs.label.timeZone\")}\n </Label>\n <div\n className=\"w-full grow\"\n data-testid=\"ntm-profile-time-zone-select\"\n ref={timezoneRef}\n />\n </div>\n {touched.timeZone && errors.timeZone && (\n <Typography\n className=\"neeto-ui-text-error-800\"\n lineHeight=\"none\"\n style=\"body3\"\n >\n {errors.timeZone}\n </Typography>\n )}\n </div>\n <Select\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 onChange={option => {\n setFieldValue(\"timeFormat\", option.value);\n }}\n />\n <div className=\"space-y-2\">\n <Select\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 onChange={option => {\n setFieldValue(\"dateFormat\", option.value);\n }}\n />\n </div>\n </div>\n </div>\n </Pane.Body>\n <Pane.Footer>\n <ActionBlock\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 </Pane.Footer>\n </>\n );\n }}\n </Form>\n );\n};\n\nexport default ChangeProfile;\n","/* eslint-disable @bigbinary/neeto/ensure-zustand-stores-are-type-annotated */\nimport withImmutableActions from \"neetocommons/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 { ianaTimezoneToHumanReadable } from \"@bigbinary/neeto-time-zones\";\nimport { _findBy } from \"neetocist\";\nimport { LANGUAGE_OPTIONS } from \"neetocommons/constants\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { Crown } from \"neetoicons\";\nimport CopyToClipboardButton from \"neetomolecules/CopyToClipboardButton\";\nimport { Avatar, Button, Pane, Spinner, Typography } from \"neetoui\";\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 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 <Pane.Body className=\"neeto-ui-bg-gray-50 w-full\">\n <div className=\"flex w-full flex-col gap-2\">\n <div className=\"neeto-ui-bg-white neeto-ui-rounded-md p-3\">\n <div className=\"flex items-center gap-3\">\n <Avatar size=\"large\" user={{ name, imageUrl: profileImageUrl }} />\n <div className=\"flex flex-col\">\n <Typography\n data-testid=\"profile-full-name-field\"\n style=\"h4\"\n weight=\"semibold\"\n >\n {name}\n </Typography>\n <div className=\"flex items-center gap-1\">\n <Typography\n className=\"neeto-ui-text-gray-600\"\n data-testid=\"profile-email-field\"\n style=\"body3\"\n >\n {email}\n </Typography>\n <CopyToClipboardButton\n size=\"small\"\n style=\"text\"\n value={email}\n />\n </div>\n </div>\n </div>\n </div>\n <div className=\"neeto-ui-bg-white neeto-ui-rounded-md p-3 divide-y divide-gray-100\">\n <div className=\"flex flex-col gap-1 pb-3\">\n <Typography\n className=\"neeto-ui-text-gray-500\"\n style=\"body3\"\n weight=\"medium\"\n >\n {t(\"neetoTeamMembers.labels.firstName\")}\n </Typography>\n <Typography\n className=\"neeto-ui-text-black profile-preview-value\"\n data-testid=\"profile-first-name-field\"\n style=\"body2\"\n >\n {firstName}\n </Typography>\n </div>\n <div className=\"flex flex-col gap-1 py-3\">\n <Typography\n className=\"neeto-ui-text-gray-500\"\n style=\"body3\"\n weight=\"medium\"\n >\n {t(\"neetoTeamMembers.labels.lastName\")}\n </Typography>\n <Typography\n className=\"neeto-ui-text-black profile-preview-value\"\n data-testid=\"profile-last-name-field\"\n style=\"body2\"\n >\n {lastName}\n </Typography>\n </div>\n <div className=\"flex flex-col gap-1 py-3\">\n <Typography\n className=\"neeto-ui-text-gray-500\"\n style=\"body3\"\n weight=\"medium\"\n >\n {t(\"neetoTeamMembers.profile.inputs.label.phonenumber\")}\n </Typography>\n <Typography\n className=\"neeto-ui-text-black profile-preview-value\"\n data-testid=\"profile-phonenumber-field\"\n style=\"body2\"\n >\n {phonenumber}\n </Typography>\n </div>\n <div className=\"flex flex-col gap-1 py-3\">\n <Typography\n className=\"neeto-ui-text-gray-500\"\n style=\"body3\"\n weight=\"medium\"\n >\n {t(\"neetoTeamMembers.labels.country\")}\n </Typography>\n <Typography\n className=\"neeto-ui-text-black profile-preview-value\"\n data-testid=\"profile-country-field\"\n style=\"body2\"\n >\n {countryName}\n </Typography>\n </div>\n <div className=\"flex flex-col gap-1 py-3\">\n <Typography\n className=\"neeto-ui-text-gray-500\"\n style=\"body3\"\n weight=\"medium\"\n >\n {t(\"neetoTeamMembers.labels.language\")}\n </Typography>\n <Typography\n className=\"neeto-ui-text-black profile-preview-value\"\n data-testid=\"profile-preferred-language-field\"\n style=\"body2\"\n >\n {_findBy({ value: language }, LANGUAGE_OPTIONS)?.label || \"-\"}\n </Typography>\n </div>\n <div className=\"flex flex-col gap-1 py-3\">\n <Typography\n className=\"neeto-ui-text-gray-500\"\n style=\"body3\"\n weight=\"medium\"\n >\n {t(\"neetoTeamMembers.labels.timeZone\")}\n </Typography>\n <Typography\n className=\"neeto-ui-text-black profile-preview-value\"\n data-testid=\"profile-time-zone-field\"\n style=\"body2\"\n >\n {ianaTimezoneToHumanReadable(timeZone)}\n {timeZoneAbbreviation ? ` (${timeZoneAbbreviation})` : \"\"} {time}\n </Typography>\n </div>\n <div className=\"flex flex-col gap-1 py-3\">\n <Typography\n className=\"neeto-ui-text-gray-500\"\n style=\"body3\"\n weight=\"medium\"\n >\n {t(\"neetoTeamMembers.labels.preferredTimeFormat\")}\n </Typography>\n <Typography\n className=\"neeto-ui-text-black profile-preview-value\"\n data-testid=\"profile-preferred-time-format-field\"\n style=\"body2\"\n >\n {_findBy({ value: timeFormat }, TIME_FORMAT_OPTIONS)?.label ||\n \"-\"}\n </Typography>\n </div>\n <div className=\"flex flex-col gap-1 pt-3\">\n <Typography\n className=\"neeto-ui-text-gray-500\"\n style=\"body3\"\n weight=\"medium\"\n >\n {t(\"neetoTeamMembers.labels.preferredDateFormat\")}\n </Typography>\n <Typography\n className=\"neeto-ui-text-black profile-preview-value\"\n data-testid=\"profile-preferred-date-format-field\"\n style=\"body2\"\n >\n {_findBy({ value: dateFormat }, DATE_FORMAT_OPTIONS)?.label ||\n \"-\"}\n </Typography>\n </div>\n </div>\n <div className=\"neeto-ui-bg-white neeto-ui-rounded-md p-3\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex flex-col gap-1\">\n <Typography\n className=\"neeto-ui-text-gray-500\"\n style=\"body3\"\n weight=\"medium\"\n >\n {t(\"neetoTeamMembers.labels.currentPlan\")}\n </Typography>\n <Typography\n className=\"neeto-ui-text-black profile-preview-value\"\n data-testid=\"profile-subscription-type\"\n style=\"body2\"\n >\n {t(\"neetoTeamMembers.common.subscriptionType\", {\n subscription,\n })}\n </Typography>\n </div>\n <Button\n className=\"neeto-ui-rounded-full\"\n data-testid=\"profile-upgrade-button\"\n href={MANAGE_BILLING_PATH}\n icon={Crown}\n iconPosition=\"left\"\n label={t(\"neetoTeamMembers.buttons.upgrade\")}\n size=\"small\"\n style=\"primary\"\n />\n </div>\n </div>\n </div>\n </Pane.Body>\n );\n};\n\nexport default memo(Preview);\n","import { useState } from \"react\";\n\nimport { MenuHorizontal } from \"neetoicons\";\nimport { Dropdown, Pane, Typography } from \"neetoui\";\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\";\nimport \"./styles.scss\";\n\nconst { Menu, MenuItem } = Dropdown;\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 return (\n <div className=\"w-full\">\n <Pane {...{ isOpen, onClose }} className=\"neeto-ui-bg-gray-50 max-w-96\">\n <Pane.Header className=\"neeto-ui-bg-gray-50\">\n <div className=\"flex justify-between\">\n <Typography style=\"h2\" weight=\"semibold\">\n {t(\"neetoTeamMembers.profile.common.myProfile\")}\n </Typography>\n {!isEditMode && (\n <Dropdown buttonStyle=\"text\" icon={MenuHorizontal}>\n <Menu>\n <MenuItem.Button\n data-testid=\"edit-basic-info-menu-button\"\n onClick={enableEditMode}\n >\n {t(\"neetoTeamMembers.buttons.editBasicInfo\")}\n </MenuItem.Button>\n <MenuItem.Button\n data-testid=\"update-email-menu-button\"\n href={UPDATE_EMAIL_PATH}\n >\n {t(\"neetoTeamMembers.buttons.updateEmail\")}\n </MenuItem.Button>\n <MenuItem.Button\n data-testid=\"manage-billing-subscriptions-menu-button\"\n href={MANAGE_BILLING_PATH}\n >\n {t(\n \"neetoTeamMembers.buttons.manageBillingAndSubscriptions\"\n )}\n </MenuItem.Button>\n </Menu>\n </Dropdown>\n )}\n </div>\n </Pane.Header>\n {isEditMode ? <ChangeProfile {...{ onClose }} /> : <Preview />}\n </Pane>\n </div>\n );\n};\n\nexport default {\n Pane: Profile,\n usePaneState: useProfileUpdatePaneState,\n};\n"],"names":["ChangeProfile","_ref","onClose","_useTranslation","useTranslation","t","_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","firstName","_user$lastName","lastName","_user$phonenumber","phonenumber","_user$dateFormat","dateFormat","DATE_FORMAT_OPTIONS","value","_user$timeZone","timeZone","_user$profileImageUrl","profileImageUrl","_user$countryName","countryName","_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","updatedCountryName","rest","payload","wrap","_callee$","_context","prev","next","sent","countryId","_objectWithoutProperties","_excluded","_objectSpread","countryIdentifier","id","t0","Toastr","error","message","stop","_x","apply","arguments","useEffect","country","findBy","label","_jsx","children","Spinner","Form","formProps","formikProps","initialValues","validationSchema","PROFILE_VALIDATION_SCHEMA","onSubmit","_ref4","setFieldValue","errors","touched","_jsxs","_Fragment","Pane","Body","ProfileImage","Input","autoFocus","required","name","type","placeholder","FormikPhoneNumberInput","Select","options","option","dependentFields","LANGUAGE_OPTIONS","Label","ref","Typography","lineHeight","style","Footer","ActionBlock","isSubmitting","cancelButtonProps","onClick","submitButtonProps","useProfileUpdateStore","create","withImmutableActions","set","isOpen","setIsOpen","arg","state","useProfileUpdatePaneState","shallow","sanitizeValue","defaultValue","isNil","is","String","trim","Preview","_globalProps$user","_Intl$DateTimeFormat$","_findBy2","_findBy3","_findBy4","sanitizedUser","email","concat","subscription","globalProps","subscriptionPlan","isHour12","time","Intl","DateTimeFormat","hour","minute","hour12","format","Date","timeZoneAbbreviation","timeZoneName","formatToParts","find","part","Avatar","size","weight","CopyToClipboardButton","_findBy","ianaTimezoneToHumanReadable","Button","href","MANAGE_BILLING_PATH","icon","Crown","iconPosition","memo","Menu","Dropdown","MenuItem","Profile","_useProfileUpdatePane","_useProfileUpdatePane2","_slicedToArray","_useState","useState","_useState2","isEditMode","setIsEditMode","enableEditMode","Header","buttonStyle","MenuHorizontal","UPDATE_EMAIL_PATH","usePaneState"],"mappings":"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"}
@@ -181,7 +181,7 @@ var ProfileImage = function ProfileImage() {
181
181
  "data-testid": "profile-image-upload-button",
182
182
  onClick: handleChangeImage,
183
183
  children: avatarDetails !== null && avatarDetails !== void 0 && avatarDetails.imageUrl ? t("neetoTeamMembers.profile.avatar.changeProfilePicture") : t("neetoTeamMembers.profile.avatar.uploadProfilePicture")
184
- }), /*#__PURE__*/jsxRuntime.jsx(MenuItem.Button, {
184
+ }), (avatarDetails === null || avatarDetails === void 0 ? void 0 : avatarDetails.imageUrl) && /*#__PURE__*/jsxRuntime.jsx(MenuItem.Button, {
185
185
  "data-testid": "profile-image-remove-button",
186
186
  onClick: handleRemoveImage,
187
187
  children: t("neetoTeamMembers.buttons.remove")
@@ -222,4 +222,4 @@ exports.PROFILE_VALIDATION_SCHEMA = PROFILE_VALIDATION_SCHEMA;
222
222
  exports.ProfileImage = ProfileImage;
223
223
  exports.UPDATE_EMAIL_PATH = UPDATE_EMAIL_PATH;
224
224
  exports.useCountries = useCountries;
225
- //# sourceMappingURL=ProfileImage-DLWJaZ0H.js.map
225
+ //# sourceMappingURL=ProfileImage-6GIVcmN7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProfileImage-6GIVcmN7.js","sources":["../app/javascript/src/components/Profile/constants.js","../app/javascript/src/components/Profile/hooks/useCountries.js","../app/javascript/src/components/Profile/ProfileImage.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { validation as phoneNumberValidation } from \"neetomolecules/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, useMemo, useState } from \"react\";\n\nimport { findById } from \"neetocist\";\n\nimport { useFetchCountries } from \"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 ?? null);\n\n const selectedCountry = findById(countryOption?.value, countries);\n\n return { dateFormat: selectedCountry?.dateFormat };\n },\n [countries]\n );\n\n return {\n countryDropdownOptions,\n selectedCountryOption,\n isFetchingCountriesList: isLoading,\n handleCountryChange,\n };\n};\n\nexport default useCountries;\n","import { useEffect, useRef } from \"react\";\n\nimport { useField, useFormikContext } from \"formik\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { Edit } from \"neetoicons\";\nimport { Avatar, Dropdown, Toastr, Typography } from \"neetoui\";\nimport { useTranslation, Trans } from \"react-i18next\";\n\nimport {\n ALLOWED_PROFILE_IMAGE_MIME_TYPES,\n STATIC_PROFILE_IMAGE_MAX_SIZE_IN_BYTES,\n VALIDATION_ERRORS,\n} from \"./constants\";\n\nconst { Menu, MenuItem } = Dropdown;\n\nconst ProfileImage = () => {\n const { t } = useTranslation();\n const fileInputRef = useRef(null);\n const blobUrlRef = useRef(null);\n\n const [field, _, helpers] = useField(\"avatar\");\n const { values } = useFormikContext();\n const { setValue } = helpers;\n\n const avatarDetails = {\n name: [values.firstName, values.lastName].filter(Boolean).join(\" \"),\n imageUrl: field.value?.imageUrl,\n };\n\n useEffect(\n () => () => {\n if (blobUrlRef.current) URL.revokeObjectURL(blobUrlRef.current);\n },\n []\n );\n\n const onProfileImageChange = event => {\n const imageFile = event.target.files[0];\n const validationError = validateProfileImage(imageFile);\n\n if (validationError) {\n Toastr.error(validationError);\n\n return validationError;\n }\n\n if (blobUrlRef.current) URL.revokeObjectURL(blobUrlRef.current);\n blobUrlRef.current = URL.createObjectURL(imageFile);\n\n return setValue({\n imageUrl: blobUrlRef.current,\n file: imageFile,\n });\n };\n\n const handleChangeImage = () => fileInputRef.current?.click();\n\n const handleRemoveImage = () => {\n if (blobUrlRef.current) {\n URL.revokeObjectURL(blobUrlRef.current);\n blobUrlRef.current = null;\n }\n setValue({ imageUrl: \"\", file: \"_destroy\" });\n };\n\n const validateProfileImage = imageFile => {\n const { type, size } = imageFile;\n\n if (!ALLOWED_PROFILE_IMAGE_MIME_TYPES.includes(type)) {\n return VALIDATION_ERRORS.invalid_type;\n }\n\n if (size === 0) return VALIDATION_ERRORS.corrupted_file;\n\n if (size > STATIC_PROFILE_IMAGE_MAX_SIZE_IN_BYTES) {\n return VALIDATION_ERRORS.file_limit_exceeded;\n }\n\n return null;\n };\n\n return (\n <div className=\"mb-4 flex flex-col items-center gap-2\">\n <div className=\"relative shrink-0\">\n <div className=\"absolute bottom-0 end-0 z-10\">\n <Dropdown\n buttonProps={{ className: \"rounded-full\" }}\n buttonSize=\"small\"\n buttonStyle=\"tertiary\"\n icon={Edit}\n >\n <Menu>\n <MenuItem.Button\n data-testid=\"profile-image-upload-button\"\n onClick={handleChangeImage}\n >\n {avatarDetails?.imageUrl\n ? t(\"neetoTeamMembers.profile.avatar.changeProfilePicture\")\n : t(\"neetoTeamMembers.profile.avatar.uploadProfilePicture\")}\n </MenuItem.Button>\n {avatarDetails?.imageUrl && (\n <MenuItem.Button\n data-testid=\"profile-image-remove-button\"\n onClick={handleRemoveImage}\n >\n {t(\"neetoTeamMembers.buttons.remove\")}\n </MenuItem.Button>\n )}\n </Menu>\n </Dropdown>\n </div>\n <Avatar size=\"extraLarge\" user={avatarDetails} />\n </div>\n <div className=\"flex flex-col items-center\">\n <Typography\n className=\"neeto-ui-text-gray-600 text-center\"\n style=\"body2\"\n >\n <Trans\n i18nKey=\"neetoTeamMembers.profile.avatar.profilePictureUploadMessage\"\n values={{\n limit: globalProps.endUserUploadedFileSizeLimitInMb,\n }}\n />\n </Typography>\n <input\n hidden\n accept={ALLOWED_PROFILE_IMAGE_MIME_TYPES.join(\",\")}\n data-testid=\"profile-image-upload-file-field\"\n id=\"uploadProfileImage\"\n key={avatarDetails?.imageUrl}\n name=\"profile_image_path\"\n ref={fileInputRef}\n type=\"file\"\n onChange={onProfileImageChange}\n />\n </div>\n </div>\n );\n};\n\nexport default ProfileImage;\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","ALLOWED_PROFILE_IMAGE_MIME_TYPES","STATIC_PROFILE_IMAGE_MAX_SIZE_IN_BYTES","globalProps","endUserUploadedFileSizeLimitInMb","VALIDATION_ERRORS","invalid_type","corrupted_file","file_limit_exceeded","maxSize","useCountries","_useState","useState","_useState2","_slicedToArray","selectedCountryOption","setSelectedCountryOption","_useFetchCountries","useFetchCountries","_useFetchCountries$da","data","_useFetchCountries$da2","_useFetchCountries$da3","countries","isLoading","formatCountryOption","country","label","name","value","id","countryDropdownOptions","useMemo","map","handleCountryChange","useCallback","countryOption","selectedCountry","findById","isFetchingCountriesList","Menu","Dropdown","MenuItem","ProfileImage","_field$value","_useTranslation","useTranslation","fileInputRef","useRef","blobUrlRef","_useField","useField","_useField2","field","_","helpers","_useFormikContext","useFormikContext","values","setValue","avatarDetails","filter","Boolean","join","imageUrl","useEffect","current","URL","revokeObjectURL","onProfileImageChange","event","imageFile","target","files","validationError","validateProfileImage","Toastr","error","createObjectURL","file","handleChangeImage","_fileInputRef$current","click","handleRemoveImage","type","size","includes","_jsxs","className","children","_jsx","buttonProps","buttonSize","buttonStyle","icon","Edit","Button","onClick","Avatar","user","Typography","style","Trans","i18nKey","limit","hidden","accept","ref","onChange"],"mappings":"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"}
@@ -151,7 +151,7 @@ var ProfileImage = function ProfileImage() {
151
151
  "data-testid": "profile-image-upload-button",
152
152
  onClick: handleChangeImage,
153
153
  children: avatarDetails !== null && avatarDetails !== void 0 && avatarDetails.imageUrl ? t("neetoTeamMembers.profile.avatar.changeProfilePicture") : t("neetoTeamMembers.profile.avatar.uploadProfilePicture")
154
- }), /*#__PURE__*/jsx(MenuItem.Button, {
154
+ }), (avatarDetails === null || avatarDetails === void 0 ? void 0 : avatarDetails.imageUrl) && /*#__PURE__*/jsx(MenuItem.Button, {
155
155
  "data-testid": "profile-image-remove-button",
156
156
  onClick: handleRemoveImage,
157
157
  children: t("neetoTeamMembers.buttons.remove")
@@ -188,4 +188,4 @@ var ProfileImage = function ProfileImage() {
188
188
  };
189
189
 
190
190
  export { MANAGE_BILLING_PATH as M, PROFILE_VALIDATION_SCHEMA as P, UPDATE_EMAIL_PATH as U, ProfileImage as a, useCountries as u };
191
- //# sourceMappingURL=ProfileImage-g_BVBsn6.js.map
191
+ //# sourceMappingURL=ProfileImage-B76PJRV0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProfileImage-B76PJRV0.js","sources":["../app/javascript/src/components/Profile/constants.js","../app/javascript/src/components/Profile/hooks/useCountries.js","../app/javascript/src/components/Profile/ProfileImage.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { validation as phoneNumberValidation } from \"neetomolecules/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, useMemo, useState } from \"react\";\n\nimport { findById } from \"neetocist\";\n\nimport { useFetchCountries } from \"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 ?? null);\n\n const selectedCountry = findById(countryOption?.value, countries);\n\n return { dateFormat: selectedCountry?.dateFormat };\n },\n [countries]\n );\n\n return {\n countryDropdownOptions,\n selectedCountryOption,\n isFetchingCountriesList: isLoading,\n handleCountryChange,\n };\n};\n\nexport default useCountries;\n","import { useEffect, useRef } from \"react\";\n\nimport { useField, useFormikContext } from \"formik\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { Edit } from \"neetoicons\";\nimport { Avatar, Dropdown, Toastr, Typography } from \"neetoui\";\nimport { useTranslation, Trans } from \"react-i18next\";\n\nimport {\n ALLOWED_PROFILE_IMAGE_MIME_TYPES,\n STATIC_PROFILE_IMAGE_MAX_SIZE_IN_BYTES,\n VALIDATION_ERRORS,\n} from \"./constants\";\n\nconst { Menu, MenuItem } = Dropdown;\n\nconst ProfileImage = () => {\n const { t } = useTranslation();\n const fileInputRef = useRef(null);\n const blobUrlRef = useRef(null);\n\n const [field, _, helpers] = useField(\"avatar\");\n const { values } = useFormikContext();\n const { setValue } = helpers;\n\n const avatarDetails = {\n name: [values.firstName, values.lastName].filter(Boolean).join(\" \"),\n imageUrl: field.value?.imageUrl,\n };\n\n useEffect(\n () => () => {\n if (blobUrlRef.current) URL.revokeObjectURL(blobUrlRef.current);\n },\n []\n );\n\n const onProfileImageChange = event => {\n const imageFile = event.target.files[0];\n const validationError = validateProfileImage(imageFile);\n\n if (validationError) {\n Toastr.error(validationError);\n\n return validationError;\n }\n\n if (blobUrlRef.current) URL.revokeObjectURL(blobUrlRef.current);\n blobUrlRef.current = URL.createObjectURL(imageFile);\n\n return setValue({\n imageUrl: blobUrlRef.current,\n file: imageFile,\n });\n };\n\n const handleChangeImage = () => fileInputRef.current?.click();\n\n const handleRemoveImage = () => {\n if (blobUrlRef.current) {\n URL.revokeObjectURL(blobUrlRef.current);\n blobUrlRef.current = null;\n }\n setValue({ imageUrl: \"\", file: \"_destroy\" });\n };\n\n const validateProfileImage = imageFile => {\n const { type, size } = imageFile;\n\n if (!ALLOWED_PROFILE_IMAGE_MIME_TYPES.includes(type)) {\n return VALIDATION_ERRORS.invalid_type;\n }\n\n if (size === 0) return VALIDATION_ERRORS.corrupted_file;\n\n if (size > STATIC_PROFILE_IMAGE_MAX_SIZE_IN_BYTES) {\n return VALIDATION_ERRORS.file_limit_exceeded;\n }\n\n return null;\n };\n\n return (\n <div className=\"mb-4 flex flex-col items-center gap-2\">\n <div className=\"relative shrink-0\">\n <div className=\"absolute bottom-0 end-0 z-10\">\n <Dropdown\n buttonProps={{ className: \"rounded-full\" }}\n buttonSize=\"small\"\n buttonStyle=\"tertiary\"\n icon={Edit}\n >\n <Menu>\n <MenuItem.Button\n data-testid=\"profile-image-upload-button\"\n onClick={handleChangeImage}\n >\n {avatarDetails?.imageUrl\n ? t(\"neetoTeamMembers.profile.avatar.changeProfilePicture\")\n : t(\"neetoTeamMembers.profile.avatar.uploadProfilePicture\")}\n </MenuItem.Button>\n {avatarDetails?.imageUrl && (\n <MenuItem.Button\n data-testid=\"profile-image-remove-button\"\n onClick={handleRemoveImage}\n >\n {t(\"neetoTeamMembers.buttons.remove\")}\n </MenuItem.Button>\n )}\n </Menu>\n </Dropdown>\n </div>\n <Avatar size=\"extraLarge\" user={avatarDetails} />\n </div>\n <div className=\"flex flex-col items-center\">\n <Typography\n className=\"neeto-ui-text-gray-600 text-center\"\n style=\"body2\"\n >\n <Trans\n i18nKey=\"neetoTeamMembers.profile.avatar.profilePictureUploadMessage\"\n values={{\n limit: globalProps.endUserUploadedFileSizeLimitInMb,\n }}\n />\n </Typography>\n <input\n hidden\n accept={ALLOWED_PROFILE_IMAGE_MIME_TYPES.join(\",\")}\n data-testid=\"profile-image-upload-file-field\"\n id=\"uploadProfileImage\"\n key={avatarDetails?.imageUrl}\n name=\"profile_image_path\"\n ref={fileInputRef}\n type=\"file\"\n onChange={onProfileImageChange}\n />\n </div>\n </div>\n );\n};\n\nexport default ProfileImage;\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","ALLOWED_PROFILE_IMAGE_MIME_TYPES","STATIC_PROFILE_IMAGE_MAX_SIZE_IN_BYTES","globalProps","endUserUploadedFileSizeLimitInMb","VALIDATION_ERRORS","invalid_type","corrupted_file","file_limit_exceeded","maxSize","useCountries","_useState","useState","_useState2","_slicedToArray","selectedCountryOption","setSelectedCountryOption","_useFetchCountries","useFetchCountries","_useFetchCountries$da","data","_useFetchCountries$da2","_useFetchCountries$da3","countries","isLoading","formatCountryOption","country","label","name","value","id","countryDropdownOptions","useMemo","map","handleCountryChange","useCallback","countryOption","selectedCountry","findById","isFetchingCountriesList","Menu","Dropdown","MenuItem","ProfileImage","_field$value","_useTranslation","useTranslation","fileInputRef","useRef","blobUrlRef","_useField","useField","_useField2","field","_","helpers","_useFormikContext","useFormikContext","values","setValue","avatarDetails","filter","Boolean","join","imageUrl","useEffect","current","URL","revokeObjectURL","onProfileImageChange","event","imageFile","target","files","validationError","validateProfileImage","Toastr","error","createObjectURL","file","handleChangeImage","_fileInputRef$current","click","handleRemoveImage","type","size","includes","_jsxs","className","children","_jsx","buttonProps","buttonSize","buttonStyle","icon","Edit","Button","onClick","Avatar","user","Typography","style","Trans","i18nKey","limit","hidden","accept","ref","onChange"],"mappings":"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"}