@bigbinary/neeto-team-members-frontend 5.0.28 → 5.0.30

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 (194) hide show
  1. package/app/javascript/src/translations/ar.json +6 -4
  2. package/app/javascript/src/translations/bg.json +6 -4
  3. package/app/javascript/src/translations/ca.json +8 -6
  4. package/app/javascript/src/translations/cs.json +4 -2
  5. package/app/javascript/src/translations/da.json +4 -2
  6. package/app/javascript/src/translations/de.json +4 -2
  7. package/app/javascript/src/translations/en.json +8 -6
  8. package/app/javascript/src/translations/es-MX.json +8 -6
  9. package/app/javascript/src/translations/es.json +8 -6
  10. package/app/javascript/src/translations/et.json +6 -4
  11. package/app/javascript/src/translations/fi.json +4 -2
  12. package/app/javascript/src/translations/fil.json +9 -7
  13. package/app/javascript/src/translations/fr.json +5 -3
  14. package/app/javascript/src/translations/he.json +5 -3
  15. package/app/javascript/src/translations/hi.json +7 -5
  16. package/app/javascript/src/translations/hr.json +4 -2
  17. package/app/javascript/src/translations/hu.json +4 -2
  18. package/app/javascript/src/translations/id.json +10 -8
  19. package/app/javascript/src/translations/it.json +8 -6
  20. package/app/javascript/src/translations/ja.json +6 -4
  21. package/app/javascript/src/translations/ko.json +4 -2
  22. package/app/javascript/src/translations/nl.json +7 -5
  23. package/app/javascript/src/translations/pl.json +5 -3
  24. package/app/javascript/src/translations/pt-BR.json +10 -8
  25. package/app/javascript/src/translations/pt.json +10 -8
  26. package/app/javascript/src/translations/ro.json +9 -7
  27. package/app/javascript/src/translations/ru.json +5 -3
  28. package/app/javascript/src/translations/sk.json +6 -4
  29. package/app/javascript/src/translations/sl.json +7 -5
  30. package/app/javascript/src/translations/sv.json +4 -2
  31. package/app/javascript/src/translations/th.json +5 -3
  32. package/app/javascript/src/translations/tr.json +10 -8
  33. package/app/javascript/src/translations/uk.json +7 -5
  34. package/app/javascript/src/translations/vi.json +7 -5
  35. package/app/javascript/src/translations/zh-CN.json +6 -4
  36. package/app/javascript/src/translations/zh-TW.json +5 -3
  37. package/dist/.ready +1 -1
  38. package/dist/ActionBlock-C9Iy0jGZ.js +53 -0
  39. package/dist/ActionBlock-C9Iy0jGZ.js.map +1 -0
  40. package/dist/ActionBlock-jgw1N-As.js +46 -0
  41. package/dist/ActionBlock-jgw1N-As.js.map +1 -0
  42. package/dist/Groups.js +1 -0
  43. package/dist/Groups.js.map +1 -1
  44. package/dist/InviteLinkError-AphtWLhe.js +63 -0
  45. package/dist/InviteLinkError-AphtWLhe.js.map +1 -0
  46. package/dist/InviteLinkError-C6OLGrD0.js +41 -0
  47. package/dist/InviteLinkError-C6OLGrD0.js.map +1 -0
  48. package/dist/ManageMember.js +3 -2
  49. package/dist/ManageMember.js.map +1 -1
  50. package/dist/MembersInvite.js +1 -38
  51. package/dist/MembersInvite.js.map +1 -1
  52. package/dist/Permissions-Bd6kLoPt.js +233 -0
  53. package/dist/Permissions-Bd6kLoPt.js.map +1 -0
  54. package/dist/Permissions-Bn862irP.js +244 -0
  55. package/dist/Permissions-Bn862irP.js.map +1 -0
  56. package/dist/Profile.js +125 -106
  57. package/dist/Profile.js.map +1 -1
  58. package/dist/{ProfileImage-Cpprgo-V.js → ProfileImage-QeSzsfzl.js} +1 -7
  59. package/dist/{ProfileImage-B_gfcE6b.js.map → ProfileImage-QeSzsfzl.js.map} +1 -1
  60. package/dist/{ProfileImage-B_gfcE6b.js → ProfileImage-Ypf3HreX.js} +2 -7
  61. package/dist/{ProfileImage-Cpprgo-V.js.map → ProfileImage-Ypf3HreX.js.map} +1 -1
  62. package/dist/Roles.js +3 -1398
  63. package/dist/Roles.js.map +1 -1
  64. package/dist/RolesRadioGroup-fBmS68cW.js +393 -0
  65. package/dist/RolesRadioGroup-fBmS68cW.js.map +1 -0
  66. package/dist/RolesRadioGroup-tSNC-Wtu.js +352 -0
  67. package/dist/RolesRadioGroup-tSNC-Wtu.js.map +1 -0
  68. package/dist/Select-CshPoN2b.js +119 -0
  69. package/dist/Select-CshPoN2b.js.map +1 -0
  70. package/dist/Select-DZ56UG-l.js +109 -0
  71. package/dist/Select-DZ56UG-l.js.map +1 -0
  72. package/dist/TeamMembers.js +3 -2
  73. package/dist/TeamMembers.js.map +1 -1
  74. package/dist/cjs/Groups.js +1 -0
  75. package/dist/cjs/Groups.js.map +1 -1
  76. package/dist/cjs/ManageMember.js +3 -2
  77. package/dist/cjs/ManageMember.js.map +1 -1
  78. package/dist/cjs/MembersInvite.js +2 -39
  79. package/dist/cjs/MembersInvite.js.map +1 -1
  80. package/dist/cjs/Profile.js +125 -104
  81. package/dist/cjs/Profile.js.map +1 -1
  82. package/dist/cjs/Roles.js +6 -1402
  83. package/dist/cjs/Roles.js.map +1 -1
  84. package/dist/cjs/TeamMembers.js +3 -2
  85. package/dist/cjs/TeamMembers.js.map +1 -1
  86. package/dist/cjs/index.js +6 -2
  87. package/dist/cjs/index.js.map +1 -1
  88. package/dist/cjs/utils.js +3 -512
  89. package/dist/cjs/utils.js.map +1 -1
  90. package/dist/cjs/v2/Groups.js +781 -0
  91. package/dist/cjs/v2/Groups.js.map +1 -0
  92. package/dist/cjs/v2/ManageMember.js +49 -0
  93. package/dist/cjs/v2/ManageMember.js.map +1 -0
  94. package/dist/cjs/v2/MembersDropdown.js +200 -0
  95. package/dist/cjs/v2/MembersDropdown.js.map +1 -0
  96. package/dist/cjs/v2/MembersInvite.js +270 -0
  97. package/dist/cjs/v2/MembersInvite.js.map +1 -0
  98. package/dist/cjs/v2/Permissions.js +19 -0
  99. package/dist/cjs/v2/Permissions.js.map +1 -0
  100. package/dist/cjs/v2/Profile.js +686 -0
  101. package/dist/cjs/v2/Profile.js.map +1 -0
  102. package/dist/cjs/v2/Roles.js +1258 -0
  103. package/dist/cjs/v2/Roles.js.map +1 -0
  104. package/dist/cjs/v2/RolesRadioGroup.js +26 -0
  105. package/dist/cjs/v2/RolesRadioGroup.js.map +1 -0
  106. package/dist/cjs/v2/TeamMembers.js +949 -0
  107. package/dist/cjs/v2/TeamMembers.js.map +1 -0
  108. package/dist/cjs/v2/TeamsAndMembersDropdown.js +438 -0
  109. package/dist/cjs/v2/TeamsAndMembersDropdown.js.map +1 -0
  110. package/dist/cjs/v2/TeamsDropdown.js +112 -0
  111. package/dist/cjs/v2/TeamsDropdown.js.map +1 -0
  112. package/dist/cjs/v2/constants.js +28 -0
  113. package/dist/cjs/v2/constants.js.map +1 -0
  114. package/dist/cjs/v2/hooks.js +33 -0
  115. package/dist/cjs/v2/hooks.js.map +1 -0
  116. package/dist/cjs/v2/utils.js +34 -0
  117. package/dist/cjs/v2/utils.js.map +1 -0
  118. package/dist/constants-B1L6arSR.js +49 -0
  119. package/dist/constants-B1L6arSR.js.map +1 -0
  120. package/dist/constants-CMNbKvoF.js +61 -0
  121. package/dist/constants-CMNbKvoF.js.map +1 -0
  122. package/dist/index-BkEJugj1.js +184 -0
  123. package/dist/index-BkEJugj1.js.map +1 -0
  124. package/dist/index-C6ph58Vg.js +169 -0
  125. package/dist/index-C6ph58Vg.js.map +1 -0
  126. package/dist/{index-C26Vdbk5.js → index-DFFRcH_S.js} +2 -2
  127. package/dist/{index-C26Vdbk5.js.map → index-DFFRcH_S.js.map} +1 -1
  128. package/dist/{index-CeAVMlhg.js → index-DTONHIze.js} +2 -2
  129. package/dist/{index-CeAVMlhg.js.map → index-DTONHIze.js.map} +1 -1
  130. package/dist/index-DeYRFiJy.js +119 -0
  131. package/dist/index-DeYRFiJy.js.map +1 -0
  132. package/dist/index-DgxgaCRt.js +1317 -0
  133. package/dist/index-DgxgaCRt.js.map +1 -0
  134. package/dist/index-DqqXniGT.js +126 -0
  135. package/dist/index-DqqXniGT.js.map +1 -0
  136. package/dist/index-Dus0cbgo.js +1407 -0
  137. package/dist/index-Dus0cbgo.js.map +1 -0
  138. package/dist/index-aJIUa1Bd.js +1342 -0
  139. package/dist/index-aJIUa1Bd.js.map +1 -0
  140. package/dist/index-ureO6U2w.js +1401 -0
  141. package/dist/index-ureO6U2w.js.map +1 -0
  142. package/dist/index.js +6 -2
  143. package/dist/index.js.map +1 -1
  144. package/dist/pluralize-BoSEafiC.js +514 -0
  145. package/dist/pluralize-BoSEafiC.js.map +1 -0
  146. package/dist/pluralize-CFlSRsRn.js +516 -0
  147. package/dist/pluralize-CFlSRsRn.js.map +1 -0
  148. package/dist/queryClient-B-JFya8X.js +16 -0
  149. package/dist/queryClient-B-JFya8X.js.map +1 -0
  150. package/dist/queryClient-BncpekSV.js +14 -0
  151. package/dist/queryClient-BncpekSV.js.map +1 -0
  152. package/dist/useCountries-CQdvJz0R.js +249 -0
  153. package/dist/useCountries-CQdvJz0R.js.map +1 -0
  154. package/dist/useCountries-DePOPtue.js +235 -0
  155. package/dist/useCountries-DePOPtue.js.map +1 -0
  156. package/dist/useTeamsApi-CWp4G7JZ.js +179 -0
  157. package/dist/useTeamsApi-CWp4G7JZ.js.map +1 -0
  158. package/dist/useTeamsApi-Ch5sHR2_.js +197 -0
  159. package/dist/useTeamsApi-Ch5sHR2_.js.map +1 -0
  160. package/dist/utils.js +2 -511
  161. package/dist/utils.js.map +1 -1
  162. package/dist/v2/Groups.js +749 -0
  163. package/dist/v2/Groups.js.map +1 -0
  164. package/dist/v2/ManageMember.js +43 -0
  165. package/dist/v2/ManageMember.js.map +1 -0
  166. package/dist/v2/MembersDropdown.js +193 -0
  167. package/dist/v2/MembersDropdown.js.map +1 -0
  168. package/dist/v2/MembersInvite.js +242 -0
  169. package/dist/v2/MembersInvite.js.map +1 -0
  170. package/dist/v2/Permissions.js +13 -0
  171. package/dist/v2/Permissions.js.map +1 -0
  172. package/dist/v2/Profile.js +656 -0
  173. package/dist/v2/Profile.js.map +1 -0
  174. package/dist/v2/Roles.js +1242 -0
  175. package/dist/v2/Roles.js.map +1 -0
  176. package/dist/v2/RolesRadioGroup.js +20 -0
  177. package/dist/v2/RolesRadioGroup.js.map +1 -0
  178. package/dist/v2/TeamMembers.js +937 -0
  179. package/dist/v2/TeamMembers.js.map +1 -0
  180. package/dist/v2/TeamsAndMembersDropdown.js +430 -0
  181. package/dist/v2/TeamsAndMembersDropdown.js.map +1 -0
  182. package/dist/v2/TeamsDropdown.js +106 -0
  183. package/dist/v2/TeamsDropdown.js.map +1 -0
  184. package/dist/v2/constants.js +21 -0
  185. package/dist/v2/constants.js.map +1 -0
  186. package/dist/v2/hooks.js +29 -0
  187. package/dist/v2/hooks.js.map +1 -0
  188. package/dist/v2/utils.js +30 -0
  189. package/dist/v2/utils.js.map +1 -0
  190. package/dist/withReactQuery-CSuiy5RK.js +20 -0
  191. package/dist/withReactQuery-CSuiy5RK.js.map +1 -0
  192. package/dist/withReactQuery-DvSkXhEx.js +26 -0
  193. package/dist/withReactQuery-DvSkXhEx.js.map +1 -0
  194. package/package.json +31 -17
@@ -0,0 +1,249 @@
1
+ 'use strict';
2
+
3
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
4
+ var React = require('react');
5
+ var neetoAtoms = require('@bigbinary/neeto-atoms');
6
+ var formik = require('formik');
7
+ var lucideReact = require('lucide-react');
8
+ var initializers = require('@bigbinary/neeto-commons-frontend/initializers');
9
+ var reactI18next = require('react-i18next');
10
+ var sonner = require('sonner');
11
+ var jsxRuntime = require('react/jsx-runtime');
12
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
13
+ var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
14
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
15
+ var _regeneratorRuntime = require('@babel/runtime/regenerator');
16
+ var neetoCist = require('@bigbinary/neeto-cist');
17
+ var reactQuery = require('@tanstack/react-query');
18
+ var constants$1 = require('@bigbinary/neeto-commons-frontend/constants');
19
+ var axios = require('axios');
20
+ var constants = require('./constants-CMNbKvoF.js');
21
+
22
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
23
+
24
+ var _slicedToArray__default = /*#__PURE__*/_interopDefault(_slicedToArray);
25
+ var _defineProperty__default = /*#__PURE__*/_interopDefault(_defineProperty);
26
+ var _asyncToGenerator__default = /*#__PURE__*/_interopDefault(_asyncToGenerator);
27
+ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefault(_objectWithoutProperties);
28
+ var _regeneratorRuntime__default = /*#__PURE__*/_interopDefault(_regeneratorRuntime);
29
+ var axios__default = /*#__PURE__*/_interopDefault(axios);
30
+
31
+ var ProfileImage = function ProfileImage() {
32
+ var _globalProps$user;
33
+ var _useTranslation = reactI18next.useTranslation(),
34
+ t = _useTranslation.t;
35
+ var _useField = formik.useField("avatar"),
36
+ _useField2 = _slicedToArray__default.default(_useField, 3),
37
+ field = _useField2[0],
38
+ helpers = _useField2[2];
39
+ var fileInputRef = React.useRef(null);
40
+ var _ref = field.value || {},
41
+ imageUrl = _ref.imageUrl,
42
+ file = _ref.file;
43
+ var displayUrl = file && file !== "_destroy" ? URL.createObjectURL(file) : imageUrl;
44
+ var handleFileSelect = function handleFileSelect(event) {
45
+ var selectedFile = event.target.files[0];
46
+ if (!selectedFile) return;
47
+ var maxSize = 5 * 1024 * 1024;
48
+ if (selectedFile.size > maxSize) {
49
+ sonner.toast.error(t("neetoTeamMembers.common.fileSizeTooLarge", "File size must be less than 5MB"));
50
+ return;
51
+ }
52
+ helpers.setValue({
53
+ imageUrl: imageUrl,
54
+ file: selectedFile
55
+ });
56
+ };
57
+ var handleRemove = function handleRemove() {
58
+ helpers.setValue({
59
+ imageUrl: "",
60
+ file: "_destroy"
61
+ });
62
+ };
63
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
64
+ className: "flex items-center gap-4",
65
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
66
+ className: "relative",
67
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Avatar, {
68
+ size: "xl",
69
+ user: {
70
+ name: (_globalProps$user = initializers.globalProps.user) === null || _globalProps$user === void 0 ? void 0 : _globalProps$user.name,
71
+ imageUrl: displayUrl
72
+ }
73
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.DropdownMenu, {
74
+ customTarget: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
75
+ className: "absolute -bottom-1 -right-1 size-6 neeto-ui-rounded-full",
76
+ size: "icon-xs",
77
+ variant: "outline",
78
+ children: /*#__PURE__*/jsxRuntime.jsx(lucideReact.Pencil, {
79
+ className: "size-3"
80
+ })
81
+ }),
82
+ children: /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.DropdownMenu.Menu, {
83
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.DropdownMenu.MenuItem, {
84
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.DropdownMenu.MenuItem.Button, {
85
+ "data-testid": "profile-image-upload-button",
86
+ onClick: function onClick() {
87
+ var _fileInputRef$current;
88
+ return (_fileInputRef$current = fileInputRef.current) === null || _fileInputRef$current === void 0 ? void 0 : _fileInputRef$current.click();
89
+ },
90
+ children: t("neetoTeamMembers.common.upload", "Upload")
91
+ })
92
+ }), displayUrl && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.DropdownMenu.MenuItem, {
93
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.DropdownMenu.MenuItem.Button, {
94
+ "data-testid": "profile-image-remove-button",
95
+ onClick: handleRemove,
96
+ children: t("neetoTeamMembers.common.remove")
97
+ })
98
+ })]
99
+ })
100
+ })]
101
+ }), /*#__PURE__*/jsxRuntime.jsx("input", {
102
+ accept: "image/*",
103
+ className: "hidden",
104
+ "data-testid": "profile-image-upload-file-field",
105
+ ref: fileInputRef,
106
+ type: "file",
107
+ onChange: handleFileSelect
108
+ })]
109
+ });
110
+ };
111
+
112
+ var _excluded = ["value", "className", "size", "variant", "children"];
113
+ function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
114
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty__default.default(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
115
+ var CopyToClipboardButton = function CopyToClipboardButton(_ref) {
116
+ var value = _ref.value,
117
+ className = _ref.className,
118
+ _ref$size = _ref.size,
119
+ size = _ref$size === void 0 ? "sm" : _ref$size,
120
+ _ref$variant = _ref.variant,
121
+ variant = _ref$variant === void 0 ? "outline" : _ref$variant,
122
+ children = _ref.children,
123
+ rest = _objectWithoutProperties__default.default(_ref, _excluded);
124
+ var _useState = React.useState(false),
125
+ _useState2 = _slicedToArray__default.default(_useState, 2),
126
+ copied = _useState2[0],
127
+ setCopied = _useState2[1];
128
+ var handleCopy = /*#__PURE__*/function () {
129
+ var _ref2 = _asyncToGenerator__default.default(/*#__PURE__*/_regeneratorRuntime__default.default.mark(function _callee() {
130
+ var textArea;
131
+ return _regeneratorRuntime__default.default.wrap(function _callee$(_context) {
132
+ while (1) switch (_context.prev = _context.next) {
133
+ case 0:
134
+ _context.prev = 0;
135
+ _context.next = 3;
136
+ return navigator.clipboard.writeText(value);
137
+ case 3:
138
+ setCopied(true);
139
+ setTimeout(function () {
140
+ return setCopied(false);
141
+ }, 2000);
142
+ _context.next = 17;
143
+ break;
144
+ case 7:
145
+ _context.prev = 7;
146
+ _context.t0 = _context["catch"](0);
147
+ // Fallback for older browsers
148
+ textArea = document.createElement("textarea");
149
+ textArea.value = value;
150
+ document.body.appendChild(textArea);
151
+ textArea.select();
152
+ document.execCommand("copy");
153
+ document.body.removeChild(textArea);
154
+ setCopied(true);
155
+ setTimeout(function () {
156
+ return setCopied(false);
157
+ }, 2000);
158
+ case 17:
159
+ case "end":
160
+ return _context.stop();
161
+ }
162
+ }, _callee, null, [[0, 7]]);
163
+ }));
164
+ return function handleCopy() {
165
+ return _ref2.apply(this, arguments);
166
+ };
167
+ }();
168
+ return /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Button, _objectSpread$1(_objectSpread$1({
169
+ size: size,
170
+ variant: variant,
171
+ className: neetoAtoms.cn("gap-1", className),
172
+ onClick: handleCopy
173
+ }, rest), {}, {
174
+ children: [copied ? /*#__PURE__*/jsxRuntime.jsx(lucideReact.Check, {
175
+ className: "size-3.5"
176
+ }) : /*#__PURE__*/jsxRuntime.jsx(lucideReact.Copy, {
177
+ className: "size-3.5"
178
+ }), children]
179
+ }));
180
+ };
181
+
182
+ // eslint-disable-next-line @bigbinary/neeto/no-axios-import-outside-apis
183
+ var fetchCountries = function fetchCountries() {
184
+ return axios__default.default.get("".concat(constants.BASE_URL, "/profile/countries"));
185
+ };
186
+ var fetchUserDetails = function fetchUserDetails() {
187
+ return axios__default.default.get("".concat(constants.BASE_URL, "/profile/user"));
188
+ };
189
+ var updateUser = function updateUser(_ref) {
190
+ var id = _ref.id,
191
+ payload = _ref.payload;
192
+ return axios__default.default.put("".concat(constants.BASE_URL, "/profile/user/").concat(id), payload);
193
+ };
194
+ var profileApi = {
195
+ fetchCountries: fetchCountries,
196
+ fetchUserDetails: fetchUserDetails,
197
+ updateUser: updateUser
198
+ };
199
+
200
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
201
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty__default.default(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
202
+ var useFetchCountries = function useFetchCountries(options) {
203
+ return reactQuery.useQuery(_objectSpread({
204
+ queryKey: [constants.QUERY_KEYS.COUNTRIES_LIST],
205
+ queryFn: profileApi.fetchCountries,
206
+ staleTime: constants$1.DEFAULT_STALE_TIME
207
+ }, options));
208
+ };
209
+
210
+ var useCountries = function useCountries() {
211
+ var _useState = React.useState(null),
212
+ _useState2 = _slicedToArray__default.default(_useState, 2),
213
+ selectedCountryOption = _useState2[0],
214
+ setSelectedCountryOption = _useState2[1];
215
+ var _useFetchCountries = useFetchCountries(),
216
+ _useFetchCountries$da = _useFetchCountries.data,
217
+ _useFetchCountries$da2 = _useFetchCountries$da === void 0 ? {} : _useFetchCountries$da,
218
+ _useFetchCountries$da3 = _useFetchCountries$da2.countries,
219
+ countries = _useFetchCountries$da3 === void 0 ? [] : _useFetchCountries$da3,
220
+ isLoading = _useFetchCountries.isLoading;
221
+ var formatCountryOption = function formatCountryOption(country) {
222
+ return {
223
+ label: country === null || country === void 0 ? void 0 : country.name,
224
+ value: country === null || country === void 0 ? void 0 : country.id
225
+ };
226
+ };
227
+ var countryDropdownOptions = React.useMemo(function () {
228
+ return countries.map(formatCountryOption);
229
+ }, [countries]);
230
+ var handleCountryChange = React.useCallback(function (countryOption) {
231
+ setSelectedCountryOption(countryOption);
232
+ var dependentFields = {};
233
+ var selectedCountry = neetoCist.findById(countryOption.value, countries);
234
+ dependentFields.dateFormat = selectedCountry.dateFormat;
235
+ return dependentFields;
236
+ }, [countries]);
237
+ return {
238
+ countryDropdownOptions: countryDropdownOptions,
239
+ selectedCountryOption: selectedCountryOption,
240
+ isFetchingCountriesList: isLoading,
241
+ handleCountryChange: handleCountryChange
242
+ };
243
+ };
244
+
245
+ exports.CopyToClipboardButton = CopyToClipboardButton;
246
+ exports.ProfileImage = ProfileImage;
247
+ exports.profileApi = profileApi;
248
+ exports.useCountries = useCountries;
249
+ //# sourceMappingURL=useCountries-CQdvJz0R.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCountries-CQdvJz0R.js","sources":["../app/javascript/src/components/v2/Profile/ProfileImage.jsx","../app/javascript/src/components/v2/common/CopyToClipboardButton.jsx","../app/javascript/src/components/v2/apis/profile.js","../app/javascript/src/components/v2/hooks/profile/useCountriesApi.js","../app/javascript/src/components/v2/Profile/hooks/useCountries.js"],"sourcesContent":["/* eslint-disable @bigbinary/neeto/no-missing-localization */\n// v2 ProfileImage — placeholder, full implementation in Phase 3.5\n// Used by ManageMember for member avatar editing\nimport { useRef } from \"react\";\n\nimport { Avatar, Button, DropdownMenu } from \"@bigbinary/neeto-atoms\";\nimport { useField } from \"formik\";\nimport { Pencil } from \"lucide-react\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { useTranslation } from \"react-i18next\";\nimport { toast } from \"sonner\";\n\nconst ProfileImage = () => {\n const { t } = useTranslation();\n const [field, , helpers] = useField(\"avatar\");\n const fileInputRef = useRef(null);\n\n const { imageUrl, file } = field.value || {};\n const displayUrl =\n file && file !== \"_destroy\" ? URL.createObjectURL(file) : imageUrl;\n\n const handleFileSelect = event => {\n const selectedFile = event.target.files[0];\n if (!selectedFile) return;\n\n const maxSize = 5 * 1024 * 1024;\n if (selectedFile.size > maxSize) {\n toast.error(\n t(\n \"neetoTeamMembers.common.fileSizeTooLarge\",\n \"File size must be less than 5MB\"\n )\n );\n\n return;\n }\n\n helpers.setValue({ imageUrl, file: selectedFile });\n };\n\n const handleRemove = () => {\n helpers.setValue({ imageUrl: \"\", file: \"_destroy\" });\n };\n\n return (\n <div className=\"flex items-center gap-4\">\n <div className=\"relative\">\n <Avatar\n size=\"xl\"\n user={{\n name: globalProps.user?.name,\n imageUrl: displayUrl,\n }}\n />\n <DropdownMenu\n customTarget={\n <Button\n className=\"absolute -bottom-1 -right-1 size-6 neeto-ui-rounded-full\"\n size=\"icon-xs\"\n variant=\"outline\"\n >\n <Pencil className=\"size-3\" />\n </Button>\n }\n >\n <DropdownMenu.Menu>\n <DropdownMenu.MenuItem>\n <DropdownMenu.MenuItem.Button\n data-testid=\"profile-image-upload-button\"\n onClick={() => fileInputRef.current?.click()}\n >\n {t(\"neetoTeamMembers.common.upload\", \"Upload\")}\n </DropdownMenu.MenuItem.Button>\n </DropdownMenu.MenuItem>\n {displayUrl && (\n <DropdownMenu.MenuItem>\n <DropdownMenu.MenuItem.Button\n data-testid=\"profile-image-remove-button\"\n onClick={handleRemove}\n >\n {t(\"neetoTeamMembers.common.remove\")}\n </DropdownMenu.MenuItem.Button>\n </DropdownMenu.MenuItem>\n )}\n </DropdownMenu.Menu>\n </DropdownMenu>\n </div>\n <input\n accept=\"image/*\"\n className=\"hidden\"\n data-testid=\"profile-image-upload-file-field\"\n ref={fileInputRef}\n type=\"file\"\n onChange={handleFileSelect}\n />\n </div>\n );\n};\n\nexport default ProfileImage;\n","import { useState } from \"react\";\n\nimport { Button, cn } from \"@bigbinary/neeto-atoms\";\nimport { Check, Copy } from \"lucide-react\";\n\nconst CopyToClipboardButton = ({\n value,\n className,\n size = \"sm\",\n variant = \"outline\",\n children,\n ...rest\n}) => {\n const [copied, setCopied] = useState(false);\n\n const handleCopy = async () => {\n try {\n await navigator.clipboard.writeText(value);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n } catch {\n // Fallback for older browsers\n const textArea = document.createElement(\"textarea\");\n textArea.value = value;\n document.body.appendChild(textArea);\n textArea.select();\n document.execCommand(\"copy\");\n document.body.removeChild(textArea);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n }\n };\n\n return (\n <Button\n {...{ size, variant }}\n className={cn(\"gap-1\", className)}\n onClick={handleCopy}\n {...rest}\n >\n {copied ? <Check className=\"size-3.5\" /> : <Copy className=\"size-3.5\" />}\n {children}\n </Button>\n );\n};\n\nexport default CopyToClipboardButton;\n","// eslint-disable-next-line @bigbinary/neeto/no-axios-import-outside-apis\nimport axios from \"axios\";\n\nimport { BASE_URL } from \"v2/common/constants\";\n\nconst fetchCountries = () => axios.get(`${BASE_URL}/profile/countries`);\n\nconst fetchUserDetails = () => axios.get(`${BASE_URL}/profile/user`);\n\nconst updateUser = ({ id, payload }) =>\n axios.put(`${BASE_URL}/profile/user/${id}`, payload);\n\nconst profileApi = { fetchCountries, fetchUserDetails, updateUser };\n\nexport default profileApi;\n","import { useQuery } from \"@tanstack/react-query\";\nimport { DEFAULT_STALE_TIME } from \"neetocommons/constants\";\n\nimport profileApi from \"v2/apis/profile\";\nimport { QUERY_KEYS } from \"v2/common/constants\";\n\nconst useFetchCountries = options =>\n useQuery({\n queryKey: [QUERY_KEYS.COUNTRIES_LIST],\n queryFn: profileApi.fetchCountries,\n staleTime: DEFAULT_STALE_TIME,\n ...options,\n });\n\nexport { useFetchCountries };\n","import { useCallback, useMemo, useState } from \"react\";\n\nimport { findById } from \"neetocist\";\n\nimport { useFetchCountries } from \"v2/hooks/profile/useCountriesApi\";\n\nconst useCountries = () => {\n const [selectedCountryOption, setSelectedCountryOption] = useState(null);\n\n const { data: { countries = [] } = {}, isLoading } = useFetchCountries();\n\n const formatCountryOption = country => ({\n label: country?.name,\n value: country?.id,\n });\n\n const countryDropdownOptions = useMemo(\n () => countries.map(formatCountryOption),\n [countries]\n );\n\n const handleCountryChange = useCallback(\n countryOption => {\n setSelectedCountryOption(countryOption);\n\n const dependentFields = {};\n const selectedCountry = findById(countryOption.value, countries);\n\n dependentFields.dateFormat = selectedCountry.dateFormat;\n\n return dependentFields;\n },\n [countries]\n );\n\n return {\n countryDropdownOptions,\n selectedCountryOption,\n isFetchingCountriesList: isLoading,\n handleCountryChange,\n };\n};\n\nexport default useCountries;\n"],"names":["ProfileImage","_globalProps$user","_useTranslation","useTranslation","t","_useField","useField","_useField2","_slicedToArray","field","helpers","fileInputRef","useRef","_ref","value","imageUrl","file","displayUrl","URL","createObjectURL","handleFileSelect","event","selectedFile","target","files","maxSize","size","toast","error","setValue","handleRemove","_jsxs","className","children","_jsx","Avatar","user","name","globalProps","DropdownMenu","customTarget","Button","variant","Pencil","Menu","MenuItem","onClick","_fileInputRef$current","current","click","accept","ref","type","onChange","CopyToClipboardButton","_ref$size","_ref$variant","rest","_objectWithoutProperties","_excluded","_useState","useState","_useState2","copied","setCopied","handleCopy","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","textArea","wrap","_callee$","_context","prev","next","navigator","clipboard","writeText","setTimeout","t0","document","createElement","body","appendChild","select","execCommand","removeChild","stop","apply","arguments","_objectSpread","cn","Check","Copy","fetchCountries","axios","get","concat","BASE_URL","fetchUserDetails","updateUser","id","payload","put","profileApi","useFetchCountries","options","useQuery","queryKey","QUERY_KEYS","COUNTRIES_LIST","queryFn","staleTime","DEFAULT_STALE_TIME","useCountries","selectedCountryOption","setSelectedCountryOption","_useFetchCountries","_useFetchCountries$da","data","_useFetchCountries$da2","_useFetchCountries$da3","countries","isLoading","formatCountryOption","country","label","countryDropdownOptions","useMemo","map","handleCountryChange","useCallback","countryOption","dependentFields","selectedCountry","findById","dateFormat","isFetchingCountriesList"],"mappings":"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"}
@@ -0,0 +1,235 @@
1
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
+ import { useRef, useState, useMemo, useCallback } from 'react';
3
+ import { Avatar, DropdownMenu, Button, cn } from '@bigbinary/neeto-atoms';
4
+ import { useField } from 'formik';
5
+ import { Pencil, Check, Copy } from 'lucide-react';
6
+ import { globalProps } from '@bigbinary/neeto-commons-frontend/initializers';
7
+ import { useTranslation } from 'react-i18next';
8
+ import { toast } from 'sonner';
9
+ import { jsxs, jsx } from 'react/jsx-runtime';
10
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
11
+ import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
12
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
13
+ import _regeneratorRuntime from '@babel/runtime/regenerator';
14
+ import { findById } from '@bigbinary/neeto-cist';
15
+ import { useQuery } from '@tanstack/react-query';
16
+ import { DEFAULT_STALE_TIME } from '@bigbinary/neeto-commons-frontend/constants';
17
+ import axios from 'axios';
18
+ import { B as BASE_URL, Q as QUERY_KEYS } from './constants-B1L6arSR.js';
19
+
20
+ var ProfileImage = function ProfileImage() {
21
+ var _globalProps$user;
22
+ var _useTranslation = useTranslation(),
23
+ t = _useTranslation.t;
24
+ var _useField = useField("avatar"),
25
+ _useField2 = _slicedToArray(_useField, 3),
26
+ field = _useField2[0],
27
+ helpers = _useField2[2];
28
+ var fileInputRef = useRef(null);
29
+ var _ref = field.value || {},
30
+ imageUrl = _ref.imageUrl,
31
+ file = _ref.file;
32
+ var displayUrl = file && file !== "_destroy" ? URL.createObjectURL(file) : imageUrl;
33
+ var handleFileSelect = function handleFileSelect(event) {
34
+ var selectedFile = event.target.files[0];
35
+ if (!selectedFile) return;
36
+ var maxSize = 5 * 1024 * 1024;
37
+ if (selectedFile.size > maxSize) {
38
+ toast.error(t("neetoTeamMembers.common.fileSizeTooLarge", "File size must be less than 5MB"));
39
+ return;
40
+ }
41
+ helpers.setValue({
42
+ imageUrl: imageUrl,
43
+ file: selectedFile
44
+ });
45
+ };
46
+ var handleRemove = function handleRemove() {
47
+ helpers.setValue({
48
+ imageUrl: "",
49
+ file: "_destroy"
50
+ });
51
+ };
52
+ return /*#__PURE__*/jsxs("div", {
53
+ className: "flex items-center gap-4",
54
+ children: [/*#__PURE__*/jsxs("div", {
55
+ className: "relative",
56
+ children: [/*#__PURE__*/jsx(Avatar, {
57
+ size: "xl",
58
+ user: {
59
+ name: (_globalProps$user = globalProps.user) === null || _globalProps$user === void 0 ? void 0 : _globalProps$user.name,
60
+ imageUrl: displayUrl
61
+ }
62
+ }), /*#__PURE__*/jsx(DropdownMenu, {
63
+ customTarget: /*#__PURE__*/jsx(Button, {
64
+ className: "absolute -bottom-1 -right-1 size-6 neeto-ui-rounded-full",
65
+ size: "icon-xs",
66
+ variant: "outline",
67
+ children: /*#__PURE__*/jsx(Pencil, {
68
+ className: "size-3"
69
+ })
70
+ }),
71
+ children: /*#__PURE__*/jsxs(DropdownMenu.Menu, {
72
+ children: [/*#__PURE__*/jsx(DropdownMenu.MenuItem, {
73
+ children: /*#__PURE__*/jsx(DropdownMenu.MenuItem.Button, {
74
+ "data-testid": "profile-image-upload-button",
75
+ onClick: function onClick() {
76
+ var _fileInputRef$current;
77
+ return (_fileInputRef$current = fileInputRef.current) === null || _fileInputRef$current === void 0 ? void 0 : _fileInputRef$current.click();
78
+ },
79
+ children: t("neetoTeamMembers.common.upload", "Upload")
80
+ })
81
+ }), displayUrl && /*#__PURE__*/jsx(DropdownMenu.MenuItem, {
82
+ children: /*#__PURE__*/jsx(DropdownMenu.MenuItem.Button, {
83
+ "data-testid": "profile-image-remove-button",
84
+ onClick: handleRemove,
85
+ children: t("neetoTeamMembers.common.remove")
86
+ })
87
+ })]
88
+ })
89
+ })]
90
+ }), /*#__PURE__*/jsx("input", {
91
+ accept: "image/*",
92
+ className: "hidden",
93
+ "data-testid": "profile-image-upload-file-field",
94
+ ref: fileInputRef,
95
+ type: "file",
96
+ onChange: handleFileSelect
97
+ })]
98
+ });
99
+ };
100
+
101
+ var _excluded = ["value", "className", "size", "variant", "children"];
102
+ function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
103
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
104
+ var CopyToClipboardButton = function CopyToClipboardButton(_ref) {
105
+ var value = _ref.value,
106
+ className = _ref.className,
107
+ _ref$size = _ref.size,
108
+ size = _ref$size === void 0 ? "sm" : _ref$size,
109
+ _ref$variant = _ref.variant,
110
+ variant = _ref$variant === void 0 ? "outline" : _ref$variant,
111
+ children = _ref.children,
112
+ rest = _objectWithoutProperties(_ref, _excluded);
113
+ var _useState = useState(false),
114
+ _useState2 = _slicedToArray(_useState, 2),
115
+ copied = _useState2[0],
116
+ setCopied = _useState2[1];
117
+ var handleCopy = /*#__PURE__*/function () {
118
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
119
+ var textArea;
120
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
121
+ while (1) switch (_context.prev = _context.next) {
122
+ case 0:
123
+ _context.prev = 0;
124
+ _context.next = 3;
125
+ return navigator.clipboard.writeText(value);
126
+ case 3:
127
+ setCopied(true);
128
+ setTimeout(function () {
129
+ return setCopied(false);
130
+ }, 2000);
131
+ _context.next = 17;
132
+ break;
133
+ case 7:
134
+ _context.prev = 7;
135
+ _context.t0 = _context["catch"](0);
136
+ // Fallback for older browsers
137
+ textArea = document.createElement("textarea");
138
+ textArea.value = value;
139
+ document.body.appendChild(textArea);
140
+ textArea.select();
141
+ document.execCommand("copy");
142
+ document.body.removeChild(textArea);
143
+ setCopied(true);
144
+ setTimeout(function () {
145
+ return setCopied(false);
146
+ }, 2000);
147
+ case 17:
148
+ case "end":
149
+ return _context.stop();
150
+ }
151
+ }, _callee, null, [[0, 7]]);
152
+ }));
153
+ return function handleCopy() {
154
+ return _ref2.apply(this, arguments);
155
+ };
156
+ }();
157
+ return /*#__PURE__*/jsxs(Button, _objectSpread$1(_objectSpread$1({
158
+ size: size,
159
+ variant: variant,
160
+ className: cn("gap-1", className),
161
+ onClick: handleCopy
162
+ }, rest), {}, {
163
+ children: [copied ? /*#__PURE__*/jsx(Check, {
164
+ className: "size-3.5"
165
+ }) : /*#__PURE__*/jsx(Copy, {
166
+ className: "size-3.5"
167
+ }), children]
168
+ }));
169
+ };
170
+
171
+ // eslint-disable-next-line @bigbinary/neeto/no-axios-import-outside-apis
172
+ var fetchCountries = function fetchCountries() {
173
+ return axios.get("".concat(BASE_URL, "/profile/countries"));
174
+ };
175
+ var fetchUserDetails = function fetchUserDetails() {
176
+ return axios.get("".concat(BASE_URL, "/profile/user"));
177
+ };
178
+ var updateUser = function updateUser(_ref) {
179
+ var id = _ref.id,
180
+ payload = _ref.payload;
181
+ return axios.put("".concat(BASE_URL, "/profile/user/").concat(id), payload);
182
+ };
183
+ var profileApi = {
184
+ fetchCountries: fetchCountries,
185
+ fetchUserDetails: fetchUserDetails,
186
+ updateUser: updateUser
187
+ };
188
+
189
+ 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; }
190
+ 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; }
191
+ var useFetchCountries = function useFetchCountries(options) {
192
+ return useQuery(_objectSpread({
193
+ queryKey: [QUERY_KEYS.COUNTRIES_LIST],
194
+ queryFn: profileApi.fetchCountries,
195
+ staleTime: DEFAULT_STALE_TIME
196
+ }, options));
197
+ };
198
+
199
+ var useCountries = function useCountries() {
200
+ var _useState = useState(null),
201
+ _useState2 = _slicedToArray(_useState, 2),
202
+ selectedCountryOption = _useState2[0],
203
+ setSelectedCountryOption = _useState2[1];
204
+ var _useFetchCountries = useFetchCountries(),
205
+ _useFetchCountries$da = _useFetchCountries.data,
206
+ _useFetchCountries$da2 = _useFetchCountries$da === void 0 ? {} : _useFetchCountries$da,
207
+ _useFetchCountries$da3 = _useFetchCountries$da2.countries,
208
+ countries = _useFetchCountries$da3 === void 0 ? [] : _useFetchCountries$da3,
209
+ isLoading = _useFetchCountries.isLoading;
210
+ var formatCountryOption = function formatCountryOption(country) {
211
+ return {
212
+ label: country === null || country === void 0 ? void 0 : country.name,
213
+ value: country === null || country === void 0 ? void 0 : country.id
214
+ };
215
+ };
216
+ var countryDropdownOptions = useMemo(function () {
217
+ return countries.map(formatCountryOption);
218
+ }, [countries]);
219
+ var handleCountryChange = useCallback(function (countryOption) {
220
+ setSelectedCountryOption(countryOption);
221
+ var dependentFields = {};
222
+ var selectedCountry = findById(countryOption.value, countries);
223
+ dependentFields.dateFormat = selectedCountry.dateFormat;
224
+ return dependentFields;
225
+ }, [countries]);
226
+ return {
227
+ countryDropdownOptions: countryDropdownOptions,
228
+ selectedCountryOption: selectedCountryOption,
229
+ isFetchingCountriesList: isLoading,
230
+ handleCountryChange: handleCountryChange
231
+ };
232
+ };
233
+
234
+ export { CopyToClipboardButton as C, ProfileImage as P, profileApi as p, useCountries as u };
235
+ //# sourceMappingURL=useCountries-DePOPtue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCountries-DePOPtue.js","sources":["../app/javascript/src/components/v2/Profile/ProfileImage.jsx","../app/javascript/src/components/v2/common/CopyToClipboardButton.jsx","../app/javascript/src/components/v2/apis/profile.js","../app/javascript/src/components/v2/hooks/profile/useCountriesApi.js","../app/javascript/src/components/v2/Profile/hooks/useCountries.js"],"sourcesContent":["/* eslint-disable @bigbinary/neeto/no-missing-localization */\n// v2 ProfileImage — placeholder, full implementation in Phase 3.5\n// Used by ManageMember for member avatar editing\nimport { useRef } from \"react\";\n\nimport { Avatar, Button, DropdownMenu } from \"@bigbinary/neeto-atoms\";\nimport { useField } from \"formik\";\nimport { Pencil } from \"lucide-react\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { useTranslation } from \"react-i18next\";\nimport { toast } from \"sonner\";\n\nconst ProfileImage = () => {\n const { t } = useTranslation();\n const [field, , helpers] = useField(\"avatar\");\n const fileInputRef = useRef(null);\n\n const { imageUrl, file } = field.value || {};\n const displayUrl =\n file && file !== \"_destroy\" ? URL.createObjectURL(file) : imageUrl;\n\n const handleFileSelect = event => {\n const selectedFile = event.target.files[0];\n if (!selectedFile) return;\n\n const maxSize = 5 * 1024 * 1024;\n if (selectedFile.size > maxSize) {\n toast.error(\n t(\n \"neetoTeamMembers.common.fileSizeTooLarge\",\n \"File size must be less than 5MB\"\n )\n );\n\n return;\n }\n\n helpers.setValue({ imageUrl, file: selectedFile });\n };\n\n const handleRemove = () => {\n helpers.setValue({ imageUrl: \"\", file: \"_destroy\" });\n };\n\n return (\n <div className=\"flex items-center gap-4\">\n <div className=\"relative\">\n <Avatar\n size=\"xl\"\n user={{\n name: globalProps.user?.name,\n imageUrl: displayUrl,\n }}\n />\n <DropdownMenu\n customTarget={\n <Button\n className=\"absolute -bottom-1 -right-1 size-6 neeto-ui-rounded-full\"\n size=\"icon-xs\"\n variant=\"outline\"\n >\n <Pencil className=\"size-3\" />\n </Button>\n }\n >\n <DropdownMenu.Menu>\n <DropdownMenu.MenuItem>\n <DropdownMenu.MenuItem.Button\n data-testid=\"profile-image-upload-button\"\n onClick={() => fileInputRef.current?.click()}\n >\n {t(\"neetoTeamMembers.common.upload\", \"Upload\")}\n </DropdownMenu.MenuItem.Button>\n </DropdownMenu.MenuItem>\n {displayUrl && (\n <DropdownMenu.MenuItem>\n <DropdownMenu.MenuItem.Button\n data-testid=\"profile-image-remove-button\"\n onClick={handleRemove}\n >\n {t(\"neetoTeamMembers.common.remove\")}\n </DropdownMenu.MenuItem.Button>\n </DropdownMenu.MenuItem>\n )}\n </DropdownMenu.Menu>\n </DropdownMenu>\n </div>\n <input\n accept=\"image/*\"\n className=\"hidden\"\n data-testid=\"profile-image-upload-file-field\"\n ref={fileInputRef}\n type=\"file\"\n onChange={handleFileSelect}\n />\n </div>\n );\n};\n\nexport default ProfileImage;\n","import { useState } from \"react\";\n\nimport { Button, cn } from \"@bigbinary/neeto-atoms\";\nimport { Check, Copy } from \"lucide-react\";\n\nconst CopyToClipboardButton = ({\n value,\n className,\n size = \"sm\",\n variant = \"outline\",\n children,\n ...rest\n}) => {\n const [copied, setCopied] = useState(false);\n\n const handleCopy = async () => {\n try {\n await navigator.clipboard.writeText(value);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n } catch {\n // Fallback for older browsers\n const textArea = document.createElement(\"textarea\");\n textArea.value = value;\n document.body.appendChild(textArea);\n textArea.select();\n document.execCommand(\"copy\");\n document.body.removeChild(textArea);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n }\n };\n\n return (\n <Button\n {...{ size, variant }}\n className={cn(\"gap-1\", className)}\n onClick={handleCopy}\n {...rest}\n >\n {copied ? <Check className=\"size-3.5\" /> : <Copy className=\"size-3.5\" />}\n {children}\n </Button>\n );\n};\n\nexport default CopyToClipboardButton;\n","// eslint-disable-next-line @bigbinary/neeto/no-axios-import-outside-apis\nimport axios from \"axios\";\n\nimport { BASE_URL } from \"v2/common/constants\";\n\nconst fetchCountries = () => axios.get(`${BASE_URL}/profile/countries`);\n\nconst fetchUserDetails = () => axios.get(`${BASE_URL}/profile/user`);\n\nconst updateUser = ({ id, payload }) =>\n axios.put(`${BASE_URL}/profile/user/${id}`, payload);\n\nconst profileApi = { fetchCountries, fetchUserDetails, updateUser };\n\nexport default profileApi;\n","import { useQuery } from \"@tanstack/react-query\";\nimport { DEFAULT_STALE_TIME } from \"neetocommons/constants\";\n\nimport profileApi from \"v2/apis/profile\";\nimport { QUERY_KEYS } from \"v2/common/constants\";\n\nconst useFetchCountries = options =>\n useQuery({\n queryKey: [QUERY_KEYS.COUNTRIES_LIST],\n queryFn: profileApi.fetchCountries,\n staleTime: DEFAULT_STALE_TIME,\n ...options,\n });\n\nexport { useFetchCountries };\n","import { useCallback, useMemo, useState } from \"react\";\n\nimport { findById } from \"neetocist\";\n\nimport { useFetchCountries } from \"v2/hooks/profile/useCountriesApi\";\n\nconst useCountries = () => {\n const [selectedCountryOption, setSelectedCountryOption] = useState(null);\n\n const { data: { countries = [] } = {}, isLoading } = useFetchCountries();\n\n const formatCountryOption = country => ({\n label: country?.name,\n value: country?.id,\n });\n\n const countryDropdownOptions = useMemo(\n () => countries.map(formatCountryOption),\n [countries]\n );\n\n const handleCountryChange = useCallback(\n countryOption => {\n setSelectedCountryOption(countryOption);\n\n const dependentFields = {};\n const selectedCountry = findById(countryOption.value, countries);\n\n dependentFields.dateFormat = selectedCountry.dateFormat;\n\n return dependentFields;\n },\n [countries]\n );\n\n return {\n countryDropdownOptions,\n selectedCountryOption,\n isFetchingCountriesList: isLoading,\n handleCountryChange,\n };\n};\n\nexport default useCountries;\n"],"names":["ProfileImage","_globalProps$user","_useTranslation","useTranslation","t","_useField","useField","_useField2","_slicedToArray","field","helpers","fileInputRef","useRef","_ref","value","imageUrl","file","displayUrl","URL","createObjectURL","handleFileSelect","event","selectedFile","target","files","maxSize","size","toast","error","setValue","handleRemove","_jsxs","className","children","_jsx","Avatar","user","name","globalProps","DropdownMenu","customTarget","Button","variant","Pencil","Menu","MenuItem","onClick","_fileInputRef$current","current","click","accept","ref","type","onChange","CopyToClipboardButton","_ref$size","_ref$variant","rest","_objectWithoutProperties","_excluded","_useState","useState","_useState2","copied","setCopied","handleCopy","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","textArea","wrap","_callee$","_context","prev","next","navigator","clipboard","writeText","setTimeout","t0","document","createElement","body","appendChild","select","execCommand","removeChild","stop","apply","arguments","_objectSpread","cn","Check","Copy","fetchCountries","axios","get","concat","BASE_URL","fetchUserDetails","updateUser","id","payload","put","profileApi","useFetchCountries","options","useQuery","queryKey","QUERY_KEYS","COUNTRIES_LIST","queryFn","staleTime","DEFAULT_STALE_TIME","useCountries","selectedCountryOption","setSelectedCountryOption","_useFetchCountries","_useFetchCountries$da","data","_useFetchCountries$da2","_useFetchCountries$da3","countries","isLoading","formatCountryOption","country","label","countryDropdownOptions","useMemo","map","handleCountryChange","useCallback","countryOption","dependentFields","selectedCountry","findById","dateFormat","isFetchingCountriesList"],"mappings":"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"}