@box/unified-share-modal 3.1.37 → 3.1.39

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 (81) hide show
  1. package/dist/chunks/classification-status.js +1 -62
  2. package/dist/chunks/collaboration-role.js +1 -89
  3. package/dist/chunks/collaboration-section.js +1 -159
  4. package/dist/chunks/collaborator-list-item.js +1 -61
  5. package/dist/chunks/collaborator-list.js +1 -74
  6. package/dist/chunks/remove-collaborator-modal.js +1 -61
  7. package/dist/chunks/remove-shared-link-modal.js +1 -56
  8. package/dist/chunks/shared-link-access.js +1 -65
  9. package/dist/chunks/shared-link-permission.js +1 -67
  10. package/dist/chunks/shared-link-section.js +1 -184
  11. package/dist/chunks/shared-link-settings-modal.js +1 -86
  12. package/dist/chunks/shared-with-avatars.js +1 -48
  13. package/dist/chunks/shield-restriction-notice.js +1 -97
  14. package/dist/chunks/text-area-container.js +1 -36
  15. package/dist/chunks/unified-share-form-modal.js +1 -67
  16. package/dist/chunks/unified-share-form.js +1 -23
  17. package/dist/esm/index.js +1 -2
  18. package/dist/esm/lib/components/classification-status/classification-status.js +1 -2
  19. package/dist/esm/lib/components/classification-status/index.js +1 -2
  20. package/dist/esm/lib/components/classification-status/messages.js +1 -12
  21. package/dist/esm/lib/components/index.js +1 -5
  22. package/dist/esm/lib/components/remove-collaborator-modal/index.js +1 -2
  23. package/dist/esm/lib/components/remove-collaborator-modal/messages.js +1 -28
  24. package/dist/esm/lib/components/remove-collaborator-modal/remove-collaborator-modal.js +1 -2
  25. package/dist/esm/lib/components/remove-shared-link-modal/index.js +1 -2
  26. package/dist/esm/lib/components/remove-shared-link-modal/messages.js +1 -28
  27. package/dist/esm/lib/components/remove-shared-link-modal/remove-shared-link-modal.js +1 -2
  28. package/dist/esm/lib/components/shared-link-settings-modal/download-section.js +1 -36
  29. package/dist/esm/lib/components/shared-link-settings-modal/expiration-section.js +1 -34
  30. package/dist/esm/lib/components/shared-link-settings-modal/index.js +1 -2
  31. package/dist/esm/lib/components/shared-link-settings-modal/messages.js +1 -140
  32. package/dist/esm/lib/components/shared-link-settings-modal/password-section.js +1 -33
  33. package/dist/esm/lib/components/shared-link-settings-modal/shared-link-settings-modal.js +1 -2
  34. package/dist/esm/lib/components/shared-link-settings-modal/shared-link-settings.js +1 -98
  35. package/dist/esm/lib/components/shared-link-settings-modal/vanity-section.js +1 -34
  36. package/dist/esm/lib/components/unified-share-form-modal/collaboration-section/collaboration-role.js +1 -2
  37. package/dist/esm/lib/components/unified-share-form-modal/collaboration-section/collaboration-section.js +1 -2
  38. package/dist/esm/lib/components/unified-share-form-modal/collaboration-section/index.js +1 -2
  39. package/dist/esm/lib/components/unified-share-form-modal/collaboration-section/messages.js +1 -136
  40. package/dist/esm/lib/components/unified-share-form-modal/collaboration-section/shared-with-avatars.js +1 -2
  41. package/dist/esm/lib/components/unified-share-form-modal/collaboration-section/shield-restriction-notice.js +1 -2
  42. package/dist/esm/lib/components/unified-share-form-modal/collaboration-section/text-area-container.js +1 -2
  43. package/dist/esm/lib/components/unified-share-form-modal/collaborator-list/collaborator-avatar.js +1 -49
  44. package/dist/esm/lib/components/unified-share-form-modal/collaborator-list/collaborator-list-item.js +1 -2
  45. package/dist/esm/lib/components/unified-share-form-modal/collaborator-list/collaborator-list.js +1 -2
  46. package/dist/esm/lib/components/unified-share-form-modal/collaborator-list/index.js +1 -2
  47. package/dist/esm/lib/components/unified-share-form-modal/collaborator-list/messages.js +1 -40
  48. package/dist/esm/lib/components/unified-share-form-modal/index.js +1 -2
  49. package/dist/esm/lib/components/unified-share-form-modal/messages.js +1 -48
  50. package/dist/esm/lib/components/unified-share-form-modal/shared-link-section/index.js +1 -2
  51. package/dist/esm/lib/components/unified-share-form-modal/shared-link-section/messages.js +1 -144
  52. package/dist/esm/lib/components/unified-share-form-modal/shared-link-section/shared-link-access.js +1 -2
  53. package/dist/esm/lib/components/unified-share-form-modal/shared-link-section/shared-link-permission.js +1 -2
  54. package/dist/esm/lib/components/unified-share-form-modal/shared-link-section/shared-link-section.js +1 -2
  55. package/dist/esm/lib/components/unified-share-form-modal/unified-share-form-modal.js +1 -2
  56. package/dist/esm/lib/components/unified-share-form-modal/unified-share-form.js +1 -2
  57. package/dist/esm/lib/constants.js +1 -47
  58. package/dist/esm/lib/contexts/index.js +1 -4
  59. package/dist/esm/lib/contexts/shared-link-settings-context.js +1 -51
  60. package/dist/esm/lib/contexts/unified-share-form-context.js +1 -61
  61. package/dist/esm/lib/contexts/unified-share-modal-context.js +1 -70
  62. package/dist/esm/lib/hooks/index.js +1 -7
  63. package/dist/esm/lib/hooks/use-access-levels.js +1 -70
  64. package/dist/esm/lib/hooks/use-collaboration-form.js +1 -76
  65. package/dist/esm/lib/hooks/use-form-validation.js +1 -33
  66. package/dist/esm/lib/hooks/use-link-settings-form.js +1 -50
  67. package/dist/esm/lib/hooks/use-permission-levels.js +1 -34
  68. package/dist/esm/lib/hooks/use-sharing-action.js +1 -45
  69. package/dist/esm/lib/messages.js +1 -108
  70. package/dist/esm/lib/unified-share-base.js +1 -31
  71. package/dist/esm/lib/unified-share-modal.js +1 -44
  72. package/dist/esm/lib/utils/collaborator.js +1 -12
  73. package/dist/esm/lib/utils/date.js +1 -10
  74. package/dist/esm/lib/utils/email.js +1 -6
  75. package/dist/esm/lib/utils/event.js +1 -7
  76. package/dist/esm/lib/utils/form.js +1 -5
  77. package/dist/esm/lib/utils/index.js +1 -9
  78. package/dist/esm/lib/utils/notification.js +1 -20
  79. package/dist/esm/lib/utils/permission.js +1 -16
  80. package/dist/esm/lib/utils/validation.js +1 -2
  81. package/package.json +10 -10
@@ -1,51 +1 @@
1
- import { useUnifiedShareModalContext as e } from "./unified-share-modal-context.js";
2
- import { formatDateFromTimestampToCalendarDate as t } from "../utils/date.js";
3
- import { useLinkSettingsForm as n } from "../hooks/use-link-settings-form.js";
4
- import { createContext as r, useContext as i, useMemo as a, useState as o } from "react";
5
- import { jsx as s } from "react/jsx-runtime";
6
- var c = /*#__PURE__*/ r(null), l = () => {
7
- let e = i(c);
8
- if (!e) throw Error("useSharedLinkSettingsContext must be used with SharedLinkSettingsProvider");
9
- return e;
10
- }, u = ({ children: r }) => {
11
- let { sharedLink: i } = e(), { expiresAt: l = 0, settings: u = {}, vanityName: d = "" } = i, { isDownloadEnabled: f, isPasswordEnabled: p } = u, [m, h] = o(null), g = a(() => ({
12
- expiration: l ? t(l) : null,
13
- isDownloadEnabled: !!f,
14
- isExpirationEnabled: !!l,
15
- isPasswordEnabled: !!p,
16
- isVanityNameEnabled: !!d,
17
- password: "",
18
- vanityName: d
19
- }), [
20
- l,
21
- f,
22
- p,
23
- d
24
- ]), { errors: _, formData: v, handleFormReset: y, handleFormSubmit: b, setFieldError: x, setFieldValue: S, validatePassword: C } = n(g), w = a(() => ({
25
- containerRef: m,
26
- errors: _,
27
- formData: v,
28
- initialFormData: g,
29
- resetForm: y,
30
- setContainerRef: h,
31
- setFieldError: x,
32
- setFieldValue: S,
33
- submitForm: b,
34
- validatePassword: C
35
- }), [
36
- m,
37
- _,
38
- v,
39
- y,
40
- b,
41
- g,
42
- x,
43
- S,
44
- C
45
- ]);
46
- return /* @__PURE__ */ s(c.Provider, {
47
- value: w,
48
- children: r
49
- });
50
- };
51
- export { c as SharedLinkSettingsContext, u as SharedLinkSettingsProvider, l as useSharedLinkSettingsContext };
1
+ import{useUnifiedShareModalContext}from"./unified-share-modal-context.js";import{formatDateFromTimestampToCalendarDate}from"../utils/date.js";import{useLinkSettingsForm}from"../hooks/use-link-settings-form.js";import{createContext,useContext,useMemo,useState}from"react";import{jsx}from"react/jsx-runtime";var SharedLinkSettingsContext=createContext(null),useSharedLinkSettingsContext=()=>{let context=useContext(SharedLinkSettingsContext);if(!context)throw Error(`useSharedLinkSettingsContext must be used with SharedLinkSettingsProvider`);return context},SharedLinkSettingsProvider=({children})=>{let{sharedLink}=useUnifiedShareModalContext(),{expiresAt=0,settings={},vanityName=``}=sharedLink,{isDownloadEnabled,isPasswordEnabled}=settings,[containerRef,setContainerRef]=useState(null),initialFormData=useMemo(()=>({expiration:expiresAt?formatDateFromTimestampToCalendarDate(expiresAt):null,isDownloadEnabled:!!isDownloadEnabled,isExpirationEnabled:!!expiresAt,isPasswordEnabled:!!isPasswordEnabled,isVanityNameEnabled:!!vanityName,password:``,vanityName}),[expiresAt,isDownloadEnabled,isPasswordEnabled,vanityName]),{errors,formData,handleFormReset,handleFormSubmit,setFieldError,setFieldValue,validatePassword}=useLinkSettingsForm(initialFormData),contextValue=useMemo(()=>({containerRef,errors,formData,initialFormData,resetForm:handleFormReset,setContainerRef,setFieldError,setFieldValue,submitForm:handleFormSubmit,validatePassword}),[containerRef,errors,formData,handleFormReset,handleFormSubmit,initialFormData,setFieldError,setFieldValue,validatePassword]);return jsx(SharedLinkSettingsContext.Provider,{value:contextValue,children})};export{SharedLinkSettingsContext,SharedLinkSettingsProvider,useSharedLinkSettingsContext};
@@ -1,61 +1 @@
1
- import { useUnifiedShareModalContext as e } from "./unified-share-modal-context.js";
2
- import { createContext as t, useCallback as n, useContext as r, useEffect as i, useMemo as a, useRef as o, useState as s } from "react";
3
- import { jsx as c } from "react/jsx-runtime";
4
- var l = /*#__PURE__*/ t(null), u = () => {
5
- let e = r(l);
6
- if (!e) throw Error("useUnifiedShareFormContext must be used with UnifiedShareFormProvider");
7
- return e;
8
- }, d = ({ children: t }) => {
9
- let { initialContacts: r, isOpen: u, view: d } = e(), [f, p] = s("default"), [m, h] = s(!1), [g, _] = s(!1), [v, y] = s(null), [b, x] = s(r), [S, C] = s(""), [w, T] = s(""), [E, D] = s(), [O, k] = s({}), A = o(!1), j = o(!1), M = n((e) => {
10
- k((t) => ({
11
- ...t,
12
- ...e
13
- }));
14
- }, []);
15
- i(() => {
16
- u || (p("default"), h(!1), _(!1), x(r), C(""), T(""), D(void 0), k({}), A.current = !1, j.current = !1);
17
- }, [r, u]), i(() => {
18
- g || (d !== "unified-share-form" || f !== "default") && _(!0);
19
- }, [
20
- g,
21
- d,
22
- f
23
- ]);
24
- let N = a(() => ({
25
- collaborationRole: E,
26
- contactValue: S,
27
- containerRef: v,
28
- form: f,
29
- isCollaboratorsOpen: m,
30
- isInteracted: g,
31
- isSharedLinkAutoCopied: A,
32
- isSharedLinkAutoCreated: j,
33
- messageValue: w,
34
- setCollaborationRole: D,
35
- setContactValue: C,
36
- setContainerRef: y,
37
- setForm: p,
38
- setIsCollaboratorsOpen: h,
39
- setMessageValue: T,
40
- setShieldRestriction: M,
41
- setUserContacts: x,
42
- shieldRestriction: O,
43
- userContacts: b
44
- }), [
45
- E,
46
- S,
47
- v,
48
- f,
49
- M,
50
- m,
51
- g,
52
- w,
53
- O,
54
- b
55
- ]);
56
- return /* @__PURE__ */ c(l.Provider, {
57
- value: N,
58
- children: t
59
- });
60
- };
61
- export { l as UnifiedShareFormContext, d as UnifiedShareFormProvider, u as useUnifiedShareFormContext };
1
+ import{useUnifiedShareModalContext}from"./unified-share-modal-context.js";import{createContext,useCallback,useContext,useEffect,useMemo,useRef,useState}from"react";import{jsx}from"react/jsx-runtime";var UnifiedShareFormContext=createContext(null),useUnifiedShareFormContext=()=>{let context=useContext(UnifiedShareFormContext);if(!context)throw Error(`useUnifiedShareFormContext must be used with UnifiedShareFormProvider`);return context},UnifiedShareFormProvider=({children})=>{let{initialContacts,isOpen,view}=useUnifiedShareModalContext(),[form,setForm]=useState(`default`),[isCollaboratorsOpen,setIsCollaboratorsOpen]=useState(!1),[isInteracted,setIsInteracted]=useState(!1),[containerRef,setContainerRef]=useState(null),[userContacts,setUserContacts]=useState(initialContacts),[contactValue,setContactValue]=useState(``),[messageValue,setMessageValue]=useState(``),[collaborationRole,setCollaborationRole]=useState(),[shieldRestriction,setShieldRestriction]=useState({}),isSharedLinkAutoCopied=useRef(!1),isSharedLinkAutoCreated=useRef(!1),handleShieldRestrictionChange=useCallback(next=>{setShieldRestriction(prev=>({...prev,...next}))},[]);useEffect(()=>{isOpen||(setForm(`default`),setIsCollaboratorsOpen(!1),setIsInteracted(!1),setUserContacts(initialContacts),setContactValue(``),setMessageValue(``),setCollaborationRole(void 0),setShieldRestriction({}),isSharedLinkAutoCopied.current=!1,isSharedLinkAutoCreated.current=!1)},[initialContacts,isOpen]),useEffect(()=>{isInteracted||(view!==`unified-share-form`||form!=="default")&&setIsInteracted(!0)},[isInteracted,view,form]);let contextValue=useMemo(()=>({collaborationRole,contactValue,containerRef,form,isCollaboratorsOpen,isInteracted,isSharedLinkAutoCopied,isSharedLinkAutoCreated,messageValue,setCollaborationRole,setContactValue,setContainerRef,setForm,setIsCollaboratorsOpen,setMessageValue,setShieldRestriction:handleShieldRestrictionChange,setUserContacts,shieldRestriction,userContacts}),[collaborationRole,contactValue,containerRef,form,handleShieldRestrictionChange,isCollaboratorsOpen,isInteracted,messageValue,shieldRestriction,userContacts]);return jsx(UnifiedShareFormContext.Provider,{value:contextValue,children})};export{UnifiedShareFormContext,UnifiedShareFormProvider,useUnifiedShareFormContext};
@@ -1,70 +1 @@
1
- import { DEFAULT_COLLABORATION_ROLES as e, DEFAULT_CONFIGURATION as t } from "../constants.js";
2
- import { createContext as n, useContext as r, useEffect as i, useMemo as a, useState as o } from "react";
3
- import { jsx as s } from "react/jsx-runtime";
4
- var c = /*#__PURE__*/ n(null), l = () => {
5
- let e = r(c);
6
- if (!e) throw Error("useUnifiedShareModalContext must be used with UnifiedShareModalContext.Provider");
7
- return e;
8
- }, u = ({ children: n, collaborationAccess: r, collaborationNotices: l, collaborationRoles: u, collaborators: d, config: f, contactService: p, currentUser: m, eventService: h, initialContacts: g, invitationFormNotices: _, isFetching: v, isOpen: y, isSubmitting: b, item: x, onOpenChange: S, sharedLink: C, sharedLinkNotices: w, sharingService: T, variant: E }) => {
9
- let [D, O] = o(null), [k, A] = o(!1), [j, M] = o("unified-share-form");
10
- i(() => {
11
- y || (A(!1), M("unified-share-form"));
12
- }, [y]);
13
- let N = a(() => ({
14
- collaborationAccess: r,
15
- collaborationNotices: l,
16
- collaborationRoles: u ?? e,
17
- collaborator: D,
18
- collaborators: d ?? [],
19
- config: {
20
- ...t,
21
- ...f
22
- },
23
- contactService: p ?? {},
24
- currentUser: m ?? {},
25
- eventService: h ?? {},
26
- initialContacts: g ?? [],
27
- invitationFormNotices: _,
28
- isFetching: v,
29
- isOpen: y,
30
- isSubmitting: b ?? k,
31
- item: x,
32
- onOpenChange: S,
33
- setCollaborator: O,
34
- setIsLoading: A,
35
- setView: M,
36
- sharedLink: C ?? {},
37
- sharedLinkNotices: w,
38
- sharingService: T ?? {},
39
- variant: E,
40
- view: j
41
- }), [
42
- r,
43
- l,
44
- u,
45
- D,
46
- d,
47
- f,
48
- p,
49
- m,
50
- h,
51
- g,
52
- _,
53
- v,
54
- k,
55
- y,
56
- b,
57
- x,
58
- S,
59
- C,
60
- w,
61
- T,
62
- E,
63
- j
64
- ]);
65
- return /* @__PURE__ */ s(c.Provider, {
66
- value: N,
67
- children: n
68
- });
69
- };
70
- export { c as UnifiedShareModalContext, u as UnifiedShareModalProvider, l as useUnifiedShareModalContext };
1
+ import{DEFAULT_COLLABORATION_ROLES,DEFAULT_CONFIGURATION}from"../constants.js";import{createContext,useContext,useEffect,useMemo,useState}from"react";import{jsx}from"react/jsx-runtime";var UnifiedShareModalContext=createContext(null),useUnifiedShareModalContext=()=>{let context=useContext(UnifiedShareModalContext);if(!context)throw Error(`useUnifiedShareModalContext must be used with UnifiedShareModalContext.Provider`);return context},UnifiedShareModalProvider=({children,collaborationAccess,collaborationNotices,collaborationRoles,collaborators,config,contactService,currentUser,eventService,initialContacts,invitationFormNotices,isFetching,isOpen,isSubmitting,item,onOpenChange,sharedLink,sharedLinkNotices,sharingService,variant})=>{let[collaborator,setCollaborator]=useState(null),[isLoading,setIsLoading]=useState(!1),[view,setView]=useState(`unified-share-form`);useEffect(()=>{isOpen||(setIsLoading(!1),setView(`unified-share-form`))},[isOpen]);let contextValue=useMemo(()=>({collaborationAccess,collaborationNotices,collaborationRoles:collaborationRoles??DEFAULT_COLLABORATION_ROLES,collaborator,collaborators:collaborators??[],config:{...DEFAULT_CONFIGURATION,...config},contactService:contactService??{},currentUser:currentUser??{},eventService:eventService??{},initialContacts:initialContacts??[],invitationFormNotices,isFetching,isOpen,isSubmitting:isSubmitting??isLoading,item,onOpenChange,setCollaborator,setIsLoading,setView,sharedLink:sharedLink??{},sharedLinkNotices,sharingService:sharingService??{},variant,view}),[collaborationAccess,collaborationNotices,collaborationRoles,collaborator,collaborators,config,contactService,currentUser,eventService,initialContacts,invitationFormNotices,isFetching,isLoading,isOpen,isSubmitting,item,onOpenChange,sharedLink,sharedLinkNotices,sharingService,variant,view]);return jsx(UnifiedShareModalContext.Provider,{value:contextValue,children})};export{UnifiedShareModalContext,UnifiedShareModalProvider,useUnifiedShareModalContext};
@@ -1,7 +1 @@
1
- import { useAccessLevels as e } from "./use-access-levels.js";
2
- import { useFormValidation as t } from "./use-form-validation.js";
3
- import { useSharingAction as n } from "./use-sharing-action.js";
4
- import { useCollaborationForm as r } from "./use-collaboration-form.js";
5
- import { useLinkSettingsForm as i } from "./use-link-settings-form.js";
6
- import { usePermissionLevels as a } from "./use-permission-levels.js";
7
- export { e as useAccessLevels, r as useCollaborationForm, t as useFormValidation, i as useLinkSettingsForm, a as usePermissionLevels, n as useSharingAction };
1
+ import{useAccessLevels}from"./use-access-levels.js";import{useFormValidation}from"./use-form-validation.js";import{useSharingAction}from"./use-sharing-action.js";import{useCollaborationForm}from"./use-collaboration-form.js";import{useLinkSettingsForm}from"./use-link-settings-form.js";import{usePermissionLevels}from"./use-permission-levels.js";export{useAccessLevels,useCollaborationForm,useFormValidation,useLinkSettingsForm,usePermissionLevels,useSharingAction};
@@ -1,70 +1 @@
1
- import { useUnifiedShareModalContext as e } from "../contexts/unified-share-modal-context.js";
2
- import { getAllowedAccessLevels as t } from "../utils/permission.js";
3
- import n from "../components/unified-share-form-modal/shared-link-section/messages.js";
4
- import { useMemo as r } from "react";
5
- import { useIntl as i } from "react-intl";
6
- var a = (e, t, r) => {
7
- let { id: i, label: a } = t, o;
8
- switch (i) {
9
- case "collaborators":
10
- o = n.collaboratorsAccessLevelLabel;
11
- break;
12
- case "company":
13
- o = r ? n.enterpriseAccessLevelLabel : n.companyAccessLevelLabel;
14
- break;
15
- case "open":
16
- o = n.openAccessLevelLabel;
17
- break;
18
- }
19
- return a ?? (o ? e(o, { enterprise: r }) : "");
20
- }, o = (e, t, r, i) => {
21
- let { description: a, id: o } = t, s, c;
22
- switch (o) {
23
- case "collaborators":
24
- s = n.collaboratorsAccessLevelDescription;
25
- break;
26
- case "company":
27
- s = r ? n.enterpriseAccessLevelDescription : n.companyAccessLevelDescription;
28
- break;
29
- case "open":
30
- s = n.openAccessLevelDescription;
31
- break;
32
- }
33
- switch (i) {
34
- case "file":
35
- c = n.fileAccessLevelItem;
36
- break;
37
- case "folder":
38
- c = n.folderAccessLevelItem;
39
- break;
40
- case "hubs":
41
- c = n.hubsAccessLevelItem;
42
- break;
43
- case "web_link":
44
- c = n.webLinkAccessLevelItem;
45
- break;
46
- case "workflow":
47
- c = n.workflowAccessLevelItem;
48
- break;
49
- }
50
- return a ?? (s ? e(s, {
51
- enterprise: r,
52
- item: e(c)
53
- }) : "");
54
- }, s = () => {
55
- let { formatMessage: n } = i(), { currentUser: s, item: c, sharedLink: l } = e(), { enterprise: u = {} } = s, { name: d } = u, { type: f } = c, { access: p, accessLevels: m } = l, h = r(() => t(m).map((e) => ({
56
- ...e,
57
- description: o(n, e, d, f),
58
- label: a(n, e, d)
59
- })), [
60
- m,
61
- d,
62
- n,
63
- f
64
- ]);
65
- return {
66
- allowedLevels: h,
67
- selectedAccess: r(() => h.find(({ id: e }) => p === e), [p, h])
68
- };
69
- };
70
- export { s as useAccessLevels };
1
+ import{useUnifiedShareModalContext}from"../contexts/unified-share-modal-context.js";import{getAllowedAccessLevels}from"../utils/permission.js";import messages from"../components/unified-share-form-modal/shared-link-section/messages.js";import{useMemo}from"react";import{useIntl}from"react-intl";var getAccessLevelLabel=(formatMessage,accessLevel,enterprise)=>{let{id:access,label}=accessLevel,message;switch(access){case`collaborators`:message=messages.collaboratorsAccessLevelLabel;break;case`company`:message=enterprise?messages.enterpriseAccessLevelLabel:messages.companyAccessLevelLabel;break;case`open`:message=messages.openAccessLevelLabel;break}return label??(message?formatMessage(message,{enterprise}):``)},getAccessLevelDescription=(formatMessage,accessLevel,enterprise,type)=>{let{description,id:access}=accessLevel,message,item;switch(access){case`collaborators`:message=messages.collaboratorsAccessLevelDescription;break;case`company`:message=enterprise?messages.enterpriseAccessLevelDescription:messages.companyAccessLevelDescription;break;case`open`:message=messages.openAccessLevelDescription;break}switch(type){case`file`:item=messages.fileAccessLevelItem;break;case`folder`:item=messages.folderAccessLevelItem;break;case`hubs`:item=messages.hubsAccessLevelItem;break;case`web_link`:item=messages.webLinkAccessLevelItem;break;case`workflow`:item=messages.workflowAccessLevelItem;break}return description??(message?formatMessage(message,{enterprise,item:formatMessage(item)}):``)},useAccessLevels=()=>{let{formatMessage}=useIntl(),{currentUser,item,sharedLink}=useUnifiedShareModalContext(),{enterprise={}}=currentUser,{name:enterpriseName}=enterprise,{type:itemType}=item,{access,accessLevels}=sharedLink,allowedLevels=useMemo(()=>getAllowedAccessLevels(accessLevels).map(level=>({...level,description:getAccessLevelDescription(formatMessage,level,enterpriseName,itemType),label:getAccessLevelLabel(formatMessage,level,enterpriseName)})),[accessLevels,enterpriseName,formatMessage,itemType]);return{allowedLevels,selectedAccess:useMemo(()=>allowedLevels.find(({id})=>access===id),[access,allowedLevels])}};export{useAccessLevels};
@@ -1,76 +1 @@
1
- import { useUnifiedShareModalContext as e } from "../contexts/unified-share-modal-context.js";
2
- import { parseEmails as t } from "../utils/email.js";
3
- import { useUnifiedShareFormContext as n } from "../contexts/unified-share-form-context.js";
4
- import { useFormValidation as r } from "./use-form-validation.js";
5
- import { useSharingAction as i } from "./use-sharing-action.js";
6
- import { useCallback as a } from "react";
7
- import o from "lodash/differenceBy";
8
- import s from "lodash/uniqBy";
9
- var c = (c, l) => {
10
- let { errors: u, setFieldError: d, validateCollaborationLimit: f, validateUserContact: p, validateUserSelector: m } = r(), { config: h, contactService: g } = e(), { collaborationLimit: _ } = h, { collaborationRole: v, form: y, messageValue: b, setContactValue: x, setMessageValue: S, setUserContacts: C, shieldRestriction: w, userContacts: T } = n(), { onAction: E } = i(c, l), { getContactsByEmail: D } = g, O = () => {
11
- C([]), x(""), S(""), d("userContacts", "");
12
- }, k = a((e) => {
13
- f(T, _) || d("userContacts", ""), x(e);
14
- }, [
15
- _,
16
- x,
17
- d,
18
- T,
19
- f
20
- ]), A = a(async (e) => {
21
- let t = {};
22
- if (D && e.length > 0) {
23
- let n = await D(e);
24
- for (let e of Object.keys(n)) t[e.toLowerCase()] = n[e];
25
- }
26
- return e.map((e) => t[e.toLowerCase()] || {
27
- email: e,
28
- id: 0,
29
- isExternalUser: !0,
30
- name: e,
31
- value: e,
32
- type: "user"
33
- });
34
- }, [D]), j = a(async (e) => {
35
- d("userContacts", ""), m(e);
36
- let n;
37
- if (e.length <= T.length || e[e.length - 1].id !== void 0) n = e;
38
- else {
39
- let r = e.slice(0, -1), i = e[e.length - 1].value, a = t(i);
40
- a.length === 0 && p(i);
41
- let c = await A(s(o(a, r.filter((e) => e.email).map((e) => e.email), (e) => e.toLowerCase()), (e) => e.toLowerCase()));
42
- n = [...r, ...c];
43
- }
44
- _ && f(n, _), C(n);
45
- }, [
46
- _,
47
- A,
48
- d,
49
- C,
50
- T,
51
- f,
52
- p,
53
- m
54
- ]);
55
- return {
56
- errors: u,
57
- handleFormReset: O,
58
- handleFormSubmit: async () => {
59
- if (u.userContacts || m(T)) return !0;
60
- let e = {
61
- contacts: T,
62
- message: b
63
- };
64
- return y === "invite" && (e.role = v.id), w.isJustificationAllowed && (e.justificationReason = w.justificationReason, e.classificationId = w.classificationId), await E(e), O(), !1;
65
- },
66
- handleSelectedUsersChange: j,
67
- handleUserSelectorBlur: a((e) => {
68
- let t = e.relatedTarget?.closest(".usm-UserContacts-input"), n = document.querySelector("[aria-labelledby^=\"usm-UserContacts-\"]")?.contains(e.relatedTarget);
69
- if (t || n) return;
70
- let r = e.target.value.trim();
71
- r && j([...T, { value: r }]);
72
- }, [j, T]),
73
- updateContactValue: k
74
- };
75
- };
76
- export { c as useCollaborationForm };
1
+ import{useUnifiedShareModalContext}from"../contexts/unified-share-modal-context.js";import{parseEmails}from"../utils/email.js";import{useUnifiedShareFormContext}from"../contexts/unified-share-form-context.js";import{useFormValidation}from"./use-form-validation.js";import{useSharingAction}from"./use-sharing-action.js";import{useCallback}from"react";import differenceBy from"lodash/differenceBy";import uniqBy from"lodash/uniqBy";var useCollaborationForm=(formAction,formNotification)=>{let{errors,setFieldError,validateCollaborationLimit,validateUserContact,validateUserSelector}=useFormValidation(),{config,contactService}=useUnifiedShareModalContext(),{collaborationLimit}=config,{collaborationRole,form,messageValue,setContactValue,setMessageValue,setUserContacts,shieldRestriction,userContacts}=useUnifiedShareFormContext(),{onAction:onFormSubmit}=useSharingAction(formAction,formNotification),{getContactsByEmail}=contactService,handleFormReset=()=>{setUserContacts([]),setContactValue(``),setMessageValue(``),setFieldError(`userContacts`,``)},updateContactValue=useCallback(input=>{validateCollaborationLimit(userContacts,collaborationLimit)||setFieldError(`userContacts`,``),setContactValue(input)},[collaborationLimit,setContactValue,setFieldError,userContacts,validateCollaborationLimit]),processContacts=useCallback(async emails=>{let fetchedContacts={};if(getContactsByEmail&&emails.length>0){let response=await getContactsByEmail(emails);for(let key of Object.keys(response))fetchedContacts[key.toLowerCase()]=response[key]}return emails.map(email=>fetchedContacts[email.toLowerCase()]||{email,id:0,isExternalUser:!0,name:email,value:email,type:`user`})},[getContactsByEmail]),handleSelectedUsersChange=useCallback(async users=>{setFieldError(`userContacts`,``),validateUserSelector(users);let nextUserContacts;if(users.length<=userContacts.length||users[users.length-1].id!==void 0)nextUserContacts=users;else{let previousContacts=users.slice(0,-1),rawInput=users[users.length-1].value,parsedEmails=parseEmails(rawInput);parsedEmails.length===0&&validateUserContact(rawInput);let processedContacts=await processContacts(uniqBy(differenceBy(parsedEmails,previousContacts.filter(user=>user.email).map(user=>user.email),email=>email.toLowerCase()),email=>email.toLowerCase()));nextUserContacts=[...previousContacts,...processedContacts]}collaborationLimit&&validateCollaborationLimit(nextUserContacts,collaborationLimit),setUserContacts(nextUserContacts)},[collaborationLimit,processContacts,setFieldError,setUserContacts,userContacts,validateCollaborationLimit,validateUserContact,validateUserSelector]);return{errors,handleFormReset,handleFormSubmit:async()=>{if(errors.userContacts||validateUserSelector(userContacts))return!0;let formData={contacts:userContacts,message:messageValue};return form===`invite`&&(formData.role=collaborationRole.id),shieldRestriction.isJustificationAllowed&&(formData.justificationReason=shieldRestriction.justificationReason,formData.classificationId=shieldRestriction.classificationId),await onFormSubmit(formData),handleFormReset(),!1},handleSelectedUsersChange,handleUserSelectorBlur:useCallback(event=>{let isInputFocused=event.relatedTarget?.closest(`.usm-UserContacts-input`),isPopupFocused=document.querySelector(`[aria-labelledby^="usm-UserContacts-"]`)?.contains(event.relatedTarget);if(isInputFocused||isPopupFocused)return;let value=event.target.value.trim();value&&handleSelectedUsersChange([...userContacts,{value}])},[handleSelectedUsersChange,userContacts]),updateContactValue}};export{useCollaborationForm};
@@ -1,33 +1 @@
1
- import { formatTomorrowDateToCalendarDate as e } from "../utils/date.js";
2
- import { doesPasswordContainInvalidCharacter as t, doesPasswordContainLetter as n, doesPasswordContainMinCharacters as r, doesPasswordContainMixedCase as i, doesPasswordContainNumber as a, doesPasswordContainSymbol as o, isEmailValid as s, isVanityNameValid as c } from "../utils/validation.js";
3
- import l from "../messages.js";
4
- import { useCallback as u, useState as d } from "react";
5
- import { useIntl as f } from "react-intl";
6
- var p = () => {
7
- let { formatMessage: p } = f(), [m, h] = d({}), g = u((e, t) => {
8
- h((n) => ({
9
- ...n,
10
- [e]: t
11
- }));
12
- }, []), _ = u((t) => {
13
- if (!t) return g("expiration", p(l.expirationRequiredErrorMessage)), !0;
14
- let n = e();
15
- return t.compare(n) < 0 ? (g("expiration", p(l.expirationFutureDateErrorMessage)), !0) : !1;
16
- }, [p, g]), v = u((e) => e ? c(e) ? !1 : (g("vanityName", p(l.vanityNameInvalidErrorMessage)), !0) : (g("vanityName", p(l.vanityNameRequiredErrorMessage)), !0), [p, g]), y = u((e, t) => {
17
- let n = e.filter((e) => e.chipVariant === "error");
18
- return t.isJustificationAllowed && !t.justificationReason ? p(l.justificationRequiredErrorNotice, { count: n.length }) : n.length && !t.isJustificationAllowed ? p(l.restrictedContactsErrorNotice, { count: n.length }) : "";
19
- }, [p]), b = u((e) => e.length ? !1 : (g("userContacts", p(l.emailRequiredErrorMessage)), !0), [p, g]), x = u((e, t) => e.filter((e) => e.value !== "").length <= t ? !1 : (g("userContacts", p(l.contactsLimitErrorMessage, { maxContacts: t })), !0), [p, g]), S = u((e) => e === "" ? !0 : s(e) ? !1 : (g("userContacts", p(l.invalidEmailErrorMessage)), !0), [p, g]);
20
- return {
21
- errors: m,
22
- validateCollaborationLimit: x,
23
- validateExpiration: _,
24
- validatePassword: u((e) => r(e) ? t(e) ? (g("password", p(l.passwordContainInvalidCharacterErrorMessage)), !0) : !i(e) && !(n(e) && a(e)) && !(n(e) && o(e)) && !(a(e) && o(e)) ? (g("password", p(l.passwordContainLetterNumberOrSymbolErrorMessage)), !0) : !1 : (g("password", p(l.passwordContainMinCharactersErrorMessage)), !0), [p, g]),
25
- validateShieldRestriction: y,
26
- validateVanityName: v,
27
- validateUserContact: S,
28
- validateUserSelector: b,
29
- setErrors: h,
30
- setFieldError: g
31
- };
32
- };
33
- export { p as useFormValidation };
1
+ import{formatTomorrowDateToCalendarDate}from"../utils/date.js";import{doesPasswordContainInvalidCharacter,doesPasswordContainLetter,doesPasswordContainMinCharacters,doesPasswordContainMixedCase,doesPasswordContainNumber,doesPasswordContainSymbol,isEmailValid,isVanityNameValid}from"../utils/validation.js";import messages from"../messages.js";import{useCallback,useState}from"react";import{useIntl}from"react-intl";var useFormValidation=()=>{let{formatMessage}=useIntl(),[errors,setErrors]=useState({}),setFieldError=useCallback((field,error)=>{setErrors(prev=>({...prev,[field]:error}))},[]),validateExpiration=useCallback(expiration=>{if(!expiration)return setFieldError(`expiration`,formatMessage(messages.expirationRequiredErrorMessage)),!0;let tomorrow=formatTomorrowDateToCalendarDate();return expiration.compare(tomorrow)<0?(setFieldError(`expiration`,formatMessage(messages.expirationFutureDateErrorMessage)),!0):!1},[formatMessage,setFieldError]),validateVanityName=useCallback(vanityName=>vanityName?isVanityNameValid(vanityName)?!1:(setFieldError(`vanityName`,formatMessage(messages.vanityNameInvalidErrorMessage)),!0):(setFieldError(`vanityName`,formatMessage(messages.vanityNameRequiredErrorMessage)),!0),[formatMessage,setFieldError]),validateShieldRestriction=useCallback((users,shieldRestriction)=>{let restrictedContacts=users.filter(user=>user.chipVariant===`error`);return shieldRestriction.isJustificationAllowed&&!shieldRestriction.justificationReason?formatMessage(messages.justificationRequiredErrorNotice,{count:restrictedContacts.length}):restrictedContacts.length&&!shieldRestriction.isJustificationAllowed?formatMessage(messages.restrictedContactsErrorNotice,{count:restrictedContacts.length}):``},[formatMessage]),validateUserSelector=useCallback(users=>users.length?!1:(setFieldError(`userContacts`,formatMessage(messages.emailRequiredErrorMessage)),!0),[formatMessage,setFieldError]),validateCollaborationLimit=useCallback((users,maxContacts)=>users.filter(user=>user.value!==``).length<=maxContacts?!1:(setFieldError(`userContacts`,formatMessage(messages.contactsLimitErrorMessage,{maxContacts})),!0),[formatMessage,setFieldError]),validateUserContact=useCallback(user=>user===``?!0:isEmailValid(user)?!1:(setFieldError(`userContacts`,formatMessage(messages.invalidEmailErrorMessage)),!0),[formatMessage,setFieldError]);return{errors,validateCollaborationLimit,validateExpiration,validatePassword:useCallback(password=>doesPasswordContainMinCharacters(password)?doesPasswordContainInvalidCharacter(password)?(setFieldError(`password`,formatMessage(messages.passwordContainInvalidCharacterErrorMessage)),!0):!doesPasswordContainMixedCase(password)&&!(doesPasswordContainLetter(password)&&doesPasswordContainNumber(password))&&!(doesPasswordContainLetter(password)&&doesPasswordContainSymbol(password))&&!(doesPasswordContainNumber(password)&&doesPasswordContainSymbol(password))?(setFieldError(`password`,formatMessage(messages.passwordContainLetterNumberOrSymbolErrorMessage)),!0):!1:(setFieldError(`password`,formatMessage(messages.passwordContainMinCharactersErrorMessage)),!0),[formatMessage,setFieldError]),validateShieldRestriction,validateVanityName,validateUserContact,validateUserSelector,setErrors,setFieldError}};export{useFormValidation};
@@ -1,50 +1 @@
1
- import { useUnifiedShareModalContext as e } from "../contexts/unified-share-modal-context.js";
2
- import { getUpdatedLinkSettingsFormData as t } from "../utils/form.js";
3
- import { useFormValidation as n } from "./use-form-validation.js";
4
- import { useSharingAction as r } from "./use-sharing-action.js";
5
- import { useCallback as i, useEffect as a, useRef as o, useState as s } from "react";
6
- import c from "lodash/isEqual";
7
- var l = (l) => {
8
- let [u, d] = s(l), f = o(l), { errors: p, setErrors: m, setFieldError: h, validateExpiration: g, validatePassword: _, validateVanityName: v } = n(), { sharingService: y } = e(), { updateSharedLink: b } = y, { onAction: x } = r(b, "update-shared-link");
9
- a(() => {
10
- c(f.current, l) || (d(l), m({}), f.current = l);
11
- }, [l, m]);
12
- let S = i((e, t) => {
13
- d((n) => ({
14
- ...n,
15
- [e]: t
16
- }));
17
- }, []);
18
- return {
19
- errors: p,
20
- formData: u,
21
- handleFormReset: i(() => {
22
- d(l), m({});
23
- }, [l, m]),
24
- handleFormSubmit: i(async () => {
25
- let e = t(u, l), { expiration: n, isExpirationEnabled: r, isPasswordEnabled: i, isVanityNameEnabled: a, password: o, vanityName: s } = e, c = r && g(n), d = i && _(o), f = a && v(s);
26
- if (c || d || f) return !0;
27
- try {
28
- await x({
29
- ...l,
30
- ...e
31
- });
32
- } catch (e) {
33
- return Object.entries(e).forEach(([e, t]) => h(e, t)), !0;
34
- }
35
- return !1;
36
- }, [
37
- u,
38
- l,
39
- x,
40
- h,
41
- g,
42
- _,
43
- v
44
- ]),
45
- setFieldError: h,
46
- setFieldValue: S,
47
- validatePassword: _
48
- };
49
- };
50
- export { l as useLinkSettingsForm };
1
+ import{useUnifiedShareModalContext}from"../contexts/unified-share-modal-context.js";import{getUpdatedLinkSettingsFormData}from"../utils/form.js";import{useFormValidation}from"./use-form-validation.js";import{useSharingAction}from"./use-sharing-action.js";import{useCallback,useEffect,useRef,useState}from"react";import isEqual from"lodash/isEqual";var useLinkSettingsForm=initialFormData=>{let[formData,setFormData]=useState(initialFormData),prevInitialFormDataRef=useRef(initialFormData),{errors,setErrors,setFieldError,validateExpiration,validatePassword,validateVanityName}=useFormValidation(),{sharingService}=useUnifiedShareModalContext(),{updateSharedLink}=sharingService,{onAction:onUpdate}=useSharingAction(updateSharedLink,`update-shared-link`);useEffect(()=>{isEqual(prevInitialFormDataRef.current,initialFormData)||(setFormData(initialFormData),setErrors({}),prevInitialFormDataRef.current=initialFormData)},[initialFormData,setErrors]);let setFieldValue=useCallback((field,value)=>{setFormData(prev=>({...prev,[field]:value}))},[]);return{errors,formData,handleFormReset:useCallback(()=>{setFormData(initialFormData),setErrors({})},[initialFormData,setErrors]),handleFormSubmit:useCallback(async()=>{let updatedFormData=getUpdatedLinkSettingsFormData(formData,initialFormData),{expiration,isExpirationEnabled,isPasswordEnabled,isVanityNameEnabled,password,vanityName}=updatedFormData,hasExpirationError=isExpirationEnabled&&validateExpiration(expiration),hasPasswordError=isPasswordEnabled&&validatePassword(password),hasVanityNameError=isVanityNameEnabled&&validateVanityName(vanityName);if(hasExpirationError||hasPasswordError||hasVanityNameError)return!0;try{await onUpdate({...initialFormData,...updatedFormData})}catch(error){return Object.entries(error).forEach(([field,value])=>setFieldError(field,value)),!0}return!1},[formData,initialFormData,onUpdate,setFieldError,validateExpiration,validatePassword,validateVanityName]),setFieldError,setFieldValue,validatePassword}};export{useLinkSettingsForm};
@@ -1,34 +1 @@
1
- import { useUnifiedShareModalContext as e } from "../contexts/unified-share-modal-context.js";
2
- import { getAllowedPermissionLevels as t } from "../utils/permission.js";
3
- import n from "../components/unified-share-form-modal/shared-link-section/messages.js";
4
- import { useMemo as r } from "react";
5
- import { useIntl as i } from "react-intl";
6
- var a = (e, t) => {
7
- let { id: r, label: i } = t, a;
8
- switch (r) {
9
- case "can_download":
10
- a = n.canDownloadPermissionLevelLabel;
11
- break;
12
- case "can_edit":
13
- a = n.canEditPermissionLevelLabel;
14
- break;
15
- case "can_preview":
16
- a = n.canPreviewPermissionLevelLabel;
17
- break;
18
- }
19
- return i ?? (a ? e(a) : "");
20
- }, o = () => {
21
- let { formatMessage: n } = i(), { sharedLink: o } = e(), { permission: s, permissionLevels: c } = o, l = r(() => t(c).map((e) => {
22
- let { description: t } = e;
23
- return {
24
- ...e,
25
- description: t ?? "",
26
- label: a(n, e)
27
- };
28
- }), [c, n]);
29
- return {
30
- allowedLevels: l,
31
- selectedPermission: r(() => l.find(({ id: e }) => s === e), [s, l])
32
- };
33
- };
34
- export { o as usePermissionLevels };
1
+ import{useUnifiedShareModalContext}from"../contexts/unified-share-modal-context.js";import{getAllowedPermissionLevels}from"../utils/permission.js";import messages from"../components/unified-share-form-modal/shared-link-section/messages.js";import{useMemo}from"react";import{useIntl}from"react-intl";var getPermissionLevelLabel=(formatMessage,permissionLevel)=>{let{id:permission,label}=permissionLevel,message;switch(permission){case`can_download`:message=messages.canDownloadPermissionLevelLabel;break;case`can_edit`:message=messages.canEditPermissionLevelLabel;break;case`can_preview`:message=messages.canPreviewPermissionLevelLabel;break}return label??(message?formatMessage(message):``)},usePermissionLevels=()=>{let{formatMessage}=useIntl(),{sharedLink}=useUnifiedShareModalContext(),{permission,permissionLevels}=sharedLink,allowedLevels=useMemo(()=>getAllowedPermissionLevels(permissionLevels).map(level=>{let{description}=level;return{...level,description:description??``,label:getPermissionLevelLabel(formatMessage,level)}}),[permissionLevels,formatMessage]);return{allowedLevels,selectedPermission:useMemo(()=>allowedLevels.find(({id})=>permission===id),[permission,allowedLevels])}};export{usePermissionLevels};
@@ -1,45 +1 @@
1
- import { useUnifiedShareModalContext as e } from "../contexts/unified-share-modal-context.js";
2
- import { getNotificationArgs as t, getNotificationMessage as n } from "../utils/notification.js";
3
- import { useCallback as r, useMemo as i } from "react";
4
- import { useIntl as a } from "react-intl";
5
- import { useNotification as o } from "@box/blueprint-web";
6
- var s = (s, c) => {
7
- let { formatMessage: l } = a(), { addNotification: u } = o(), { config: d, item: f, setIsLoading: p } = e(), { notifications: m } = d, { name: h } = f, g = i(() => m.includes(c), [c, m]);
8
- return { onAction: r(async (...e) => {
9
- p(!0);
10
- try {
11
- if (s) {
12
- let r = await s(...e), i = !!r && !!r.messages, a = g && !i;
13
- i && r.messages.forEach(({ text: e, type: n, ...r }) => {
14
- u({
15
- ...t(l, n),
16
- styledText: e,
17
- ...r
18
- });
19
- });
20
- let o = n(l, "success", c, { itemName: h });
21
- a && o && u({
22
- ...t(l, "success"),
23
- styledText: o
24
- });
25
- }
26
- } catch (e) {
27
- let r = n(l, "error", c);
28
- if (g && r && u({
29
- ...t(l, "error"),
30
- styledText: r
31
- }), e?.fields && Object.values(e.fields).length) throw e.fields;
32
- } finally {
33
- p(!1);
34
- }
35
- }, [
36
- s,
37
- u,
38
- l,
39
- g,
40
- h,
41
- c,
42
- p
43
- ]) };
44
- };
45
- export { s as useSharingAction };
1
+ import{useUnifiedShareModalContext}from"../contexts/unified-share-modal-context.js";import{getNotificationArgs,getNotificationMessage}from"../utils/notification.js";import{useCallback,useMemo}from"react";import{useIntl}from"react-intl";import{useNotification}from"@box/blueprint-web";var useSharingAction=(action,notification)=>{let{formatMessage}=useIntl(),{addNotification}=useNotification(),{config,item,setIsLoading}=useUnifiedShareModalContext(),{notifications}=config,{name:itemName}=item,isNotificationEnabled=useMemo(()=>notifications.includes(notification),[notification,notifications]);return{onAction:useCallback(async(...args)=>{setIsLoading(!0);try{if(action){let response=await action(...args),hasCustomNotifications=!!response&&!!response.messages,hasDefaultNotification=isNotificationEnabled&&!hasCustomNotifications;hasCustomNotifications&&response.messages.forEach(({text,type,...options})=>{addNotification({...getNotificationArgs(formatMessage,type),styledText:text,...options})});let successMessage=getNotificationMessage(formatMessage,`success`,notification,{itemName});hasDefaultNotification&&successMessage&&addNotification({...getNotificationArgs(formatMessage,`success`),styledText:successMessage})}}catch(error){let errorMessage=getNotificationMessage(formatMessage,`error`,notification);if(isNotificationEnabled&&errorMessage&&addNotification({...getNotificationArgs(formatMessage,`error`),styledText:errorMessage}),error?.fields&&Object.values(error.fields).length)throw error.fields}finally{setIsLoading(!1)}},[action,addNotification,formatMessage,isNotificationEnabled,itemName,notification,setIsLoading])}};export{useSharingAction};