@box/unified-share-modal 3.6.0 → 3.6.2

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 (25) hide show
  1. package/dist/chunks/remove-collaborator-modal.js +1 -1
  2. package/dist/chunks/remove-shared-link-modal.js +1 -1
  3. package/dist/chunks/shared-link-settings-modal.js +1 -1
  4. package/dist/esm/lib/containers/index.js +1 -1
  5. package/dist/esm/lib/containers/manage-access-list-container.js +1 -1
  6. package/dist/esm/lib/containers/remove-collaborator-container.js +1 -0
  7. package/dist/esm/lib/containers/remove-shared-link-container.js +1 -0
  8. package/dist/esm/lib/containers/shared-link-settings-container.js +1 -0
  9. package/dist/esm/lib/containers/unified-share-form-container.js +1 -0
  10. package/dist/esm/lib/contexts/shared-link-settings-context.js +1 -1
  11. package/dist/esm/lib/contexts/unified-share-modal-context.js +1 -1
  12. package/dist/esm/lib/unified-share-modal.js +1 -1
  13. package/dist/types/lib/components/remove-collaborator-modal/remove-collaborator-modal.d.ts +7 -1
  14. package/dist/types/lib/components/remove-collaborator-modal/stories/shared.d.ts +2 -2
  15. package/dist/types/lib/components/remove-shared-link-modal/remove-shared-link-modal.d.ts +4 -1
  16. package/dist/types/lib/components/remove-shared-link-modal/stories/shared.d.ts +2 -2
  17. package/dist/types/lib/containers/index.d.ts +4 -0
  18. package/dist/types/lib/containers/remove-collaborator-container.d.ts +1 -0
  19. package/dist/types/lib/containers/remove-shared-link-container.d.ts +1 -0
  20. package/dist/types/lib/containers/shared-link-settings-container.d.ts +1 -0
  21. package/dist/types/lib/containers/unified-share-form-container.d.ts +5 -0
  22. package/dist/types/lib/contexts/unified-share-modal-context.d.ts +3 -2
  23. package/package.json +9 -9
  24. package/dist/esm/lib/unified-share-base.js +0 -1
  25. package/dist/types/lib/unified-share-base.d.ts +0 -5
@@ -1 +1 @@
1
- import{useUnifiedShareModalContext}from"../esm/lib/contexts/unified-share-modal-context.js";import{useSharingAction}from"../esm/lib/hooks/use-sharing-action.js";import messages from"../esm/lib/components/remove-collaborator-modal/messages.js";import{useEffect}from"react";import clsx from"clsx";import noop from"lodash/noop";import{useIntl}from"react-intl";import{Divider,Modal,Text}from"@box/blueprint-web";import{jsx,jsxs}from"react/jsx-runtime";import '../styles/remove-collaborator-modal.css';var remove_collaborator_modal_module_default={content:`_content_1jzrn_1`,isFullscreen:`_isFullscreen_1jzrn_1`,body:`_body_1jzrn_10`,divider:`_divider_1jzrn_17`};function RemoveCollaboratorModal({isOpen,onOpenChange}){let{formatMessage}=useIntl(),{collaborator,isSubmitting,sharingService,setCollaborator,variant}=useUnifiedShareModalContext(),{email,name}=collaborator??{},{removeCollaborator}=sharingService,isDesktop=variant===`desktop`;useEffect(()=>{isOpen||setCollaborator(null)},[isOpen,setCollaborator]);let{onAction:onRemove}=useSharingAction(removeCollaborator,`remove-collaborator`);return jsx(Modal,{onOpenChange:isSubmitting?noop:onOpenChange,open:isOpen,children:jsxs(Modal.Content,{className:clsx(remove_collaborator_modal_module_default.content,isDesktop&&remove_collaborator_modal_module_default.isFullscreen),onEscapeKeyDown:event=>{event.stopPropagation()},onPointerDownOutside:event=>{event.preventDefault()},size:`small`,children:[jsx(Modal.Header,{children:formatMessage(messages.title)}),jsxs(Modal.Body,{className:remove_collaborator_modal_module_default.body,children:[isDesktop&&jsx(Divider,{className:remove_collaborator_modal_module_default.divider}),jsx(Text,{as:`p`,children:formatMessage(messages.bodyText,{name:email||name})})]}),jsxs(Modal.Footer,{children:[jsx(Modal.Footer.SecondaryButton,{disabled:isSubmitting,onClick:()=>onOpenChange(!1),children:formatMessage(messages.cancelButton)}),jsx(Modal.Footer.PrimaryButton,{"data-target-id":`Modal.Footer.PrimaryButton-USMRemoveCollaborator`,loading:isSubmitting,loadingAriaLabel:formatMessage(messages.loadingLabel),onClick:async()=>{await onRemove(collaborator),onOpenChange(!1)},children:formatMessage(messages.okayButton)})]}),!isDesktop&&jsx(Modal.Close,{"aria-label":formatMessage(messages.closeButton),disabled:isSubmitting})]})})}export{RemoveCollaboratorModal as t};
1
+ import messages from"../esm/lib/components/remove-collaborator-modal/messages.js";import clsx from"clsx";import noop from"lodash/noop";import{useIntl}from"react-intl";import{Divider,Modal,Text}from"@box/blueprint-web";import{jsx,jsxs}from"react/jsx-runtime";import '../styles/remove-collaborator-modal.css';var remove_collaborator_modal_module_default={content:`_content_1jzrn_1`,isFullscreen:`_isFullscreen_1jzrn_1`,body:`_body_1jzrn_10`,divider:`_divider_1jzrn_17`};function RemoveCollaboratorModal({collaborator,isDesktop=!1,isOpen,isSubmitting=!1,onOpenChange,onReset,onSubmit}){let{formatMessage}=useIntl(),{email,name}=collaborator??{};return jsx(Modal,{onOpenChange:isSubmitting?noop:onOpenChange,open:isOpen,children:jsxs(Modal.Content,{className:clsx(remove_collaborator_modal_module_default.content,isDesktop&&remove_collaborator_modal_module_default.isFullscreen),onCloseAutoFocus:onReset,onEscapeKeyDown:event=>{event.stopPropagation()},onPointerDownOutside:event=>{event.preventDefault()},size:`small`,children:[jsx(Modal.Header,{children:formatMessage(messages.title)}),jsxs(Modal.Body,{className:remove_collaborator_modal_module_default.body,children:[isDesktop&&jsx(Divider,{className:remove_collaborator_modal_module_default.divider}),jsx(Text,{as:`p`,children:formatMessage(messages.bodyText,{name:email||name})})]}),jsxs(Modal.Footer,{children:[jsx(Modal.Footer.SecondaryButton,{disabled:isSubmitting,onClick:()=>onOpenChange(!1),children:formatMessage(messages.cancelButton)}),jsx(Modal.Footer.PrimaryButton,{"data-target-id":`Modal.Footer.PrimaryButton-USMRemoveCollaborator`,loading:isSubmitting,loadingAriaLabel:formatMessage(messages.loadingLabel),onClick:onSubmit,children:formatMessage(messages.okayButton)})]}),!isDesktop&&jsx(Modal.Close,{"aria-label":formatMessage(messages.closeButton),disabled:isSubmitting})]})})}export{RemoveCollaboratorModal as t};
@@ -1 +1 @@
1
- import{useUnifiedShareModalContext}from"../esm/lib/contexts/unified-share-modal-context.js";import{useSharingAction}from"../esm/lib/hooks/use-sharing-action.js";import messages from"../esm/lib/components/remove-shared-link-modal/messages.js";import clsx from"clsx";import noop from"lodash/noop";import{useIntl}from"react-intl";import{Divider,Modal,Text}from"@box/blueprint-web";import{jsx,jsxs}from"react/jsx-runtime";import '../styles/remove-collaborator-modal.css';var remove_shared_link_modal_module_default={content:`_content_1jzrn_1`,isFullscreen:`_isFullscreen_1jzrn_1`,body:`_body_1jzrn_10`,divider:`_divider_1jzrn_17`};function RemoveSharedLinkModal({isOpen,onOpenChange}){let{formatMessage}=useIntl(),{isSubmitting,sharingService,variant}=useUnifiedShareModalContext(),{deleteSharedLink}=sharingService,isDesktop=variant===`desktop`,{onAction:onDelete}=useSharingAction(deleteSharedLink,`delete-shared-link`);return jsx(Modal,{onOpenChange:isSubmitting?noop:onOpenChange,open:isOpen,children:jsxs(Modal.Content,{className:clsx(remove_shared_link_modal_module_default.content,isDesktop&&remove_shared_link_modal_module_default.isFullscreen),onEscapeKeyDown:event=>{event.stopPropagation()},onPointerDownOutside:event=>{event.preventDefault()},size:`small`,children:[jsx(Modal.Header,{children:formatMessage(messages.title)}),jsxs(Modal.Body,{className:remove_shared_link_modal_module_default.body,children:[isDesktop&&jsx(Divider,{className:remove_shared_link_modal_module_default.divider}),jsx(Text,{as:`p`,children:formatMessage(messages.bodyText)})]}),jsxs(Modal.Footer,{children:[jsx(Modal.Footer.SecondaryButton,{disabled:isSubmitting,onClick:()=>onOpenChange(!1),children:formatMessage(messages.cancelButton)}),jsx(Modal.Footer.PrimaryButton,{"data-target-id":`Modal.Footer.PrimaryButton-USMRemoveSharedLink`,loading:isSubmitting,loadingAriaLabel:formatMessage(messages.loadingLabel),onClick:async()=>{await onDelete(),onOpenChange(!1)},children:formatMessage(messages.okayButton)})]}),!isDesktop&&jsx(Modal.Close,{"aria-label":formatMessage(messages.closeButton),disabled:isSubmitting})]})})}export{RemoveSharedLinkModal as t};
1
+ import messages from"../esm/lib/components/remove-shared-link-modal/messages.js";import clsx from"clsx";import noop from"lodash/noop";import{useIntl}from"react-intl";import{Divider,Modal,Text}from"@box/blueprint-web";import{jsx,jsxs}from"react/jsx-runtime";import '../styles/remove-collaborator-modal.css';var remove_shared_link_modal_module_default={content:`_content_1jzrn_1`,isFullscreen:`_isFullscreen_1jzrn_1`,body:`_body_1jzrn_10`,divider:`_divider_1jzrn_17`};function RemoveSharedLinkModal({isDesktop=!1,isOpen,isSubmitting=!1,onOpenChange,onSubmit}){let{formatMessage}=useIntl();return jsx(Modal,{onOpenChange:isSubmitting?noop:onOpenChange,open:isOpen,children:jsxs(Modal.Content,{className:clsx(remove_shared_link_modal_module_default.content,isDesktop&&remove_shared_link_modal_module_default.isFullscreen),onEscapeKeyDown:event=>{event.stopPropagation()},onPointerDownOutside:event=>{event.preventDefault()},size:`small`,children:[jsx(Modal.Header,{children:formatMessage(messages.title)}),jsxs(Modal.Body,{className:remove_shared_link_modal_module_default.body,children:[isDesktop&&jsx(Divider,{className:remove_shared_link_modal_module_default.divider}),jsx(Text,{as:`p`,children:formatMessage(messages.bodyText)})]}),jsxs(Modal.Footer,{children:[jsx(Modal.Footer.SecondaryButton,{disabled:isSubmitting,onClick:()=>onOpenChange(!1),children:formatMessage(messages.cancelButton)}),jsx(Modal.Footer.PrimaryButton,{"data-target-id":`Modal.Footer.PrimaryButton-USMRemoveSharedLink`,loading:isSubmitting,loadingAriaLabel:formatMessage(messages.loadingLabel),onClick:onSubmit,children:formatMessage(messages.okayButton)})]}),!isDesktop&&jsx(Modal.Close,{"aria-label":formatMessage(messages.closeButton),disabled:isSubmitting})]})})}export{RemoveSharedLinkModal as t};
@@ -1 +1 @@
1
- import{useUnifiedShareModalContext}from"../esm/lib/contexts/unified-share-modal-context.js";import{useSharedLinkSettingsContext}from"../esm/lib/contexts/shared-link-settings-context.js";import{t as ClassificationStatus}from"./classification-status.js";import messages from"../esm/lib/components/shared-link-settings-modal/messages.js";import{SharedLinkSettings}from"../esm/lib/components/shared-link-settings-modal/shared-link-settings.js";import{useEffect,useState}from"react";import clsx from"clsx";import{useIntl}from"react-intl";import{Divider,LoadingIndicator,Modal}from"@box/blueprint-web";import{jsx,jsxs}from"react/jsx-runtime";import '../styles/shared-link-settings-modal.css';var shared_link_settings_modal_module_default={content:`_content_v2gl6_1`,isFullscreen:`_isFullscreen_v2gl6_4`,body:`_body_v2gl6_13`,title:`_title_v2gl6_23`,form:`_form_v2gl6_43`,isLoading:`_isLoading_v2gl6_50`,loading:`_loading_v2gl6_54`,divider:`_divider_v2gl6_62`};function SharedLinkSettingsModal({isOpen,onOpenChange}){let{formatMessage}=useIntl(),{eventService,isSubmitting,variant}=useUnifiedShareModalContext(),{onSharedLinkSettingsClose,onSharedLinkSettingsLoad}=eventService,isDesktop=variant===`desktop`,{resetForm,setContainerRef,submitForm}=useSharedLinkSettingsContext(),[isLoading,setIsLoading]=useState(!!onSharedLinkSettingsLoad);useEffect(()=>{(async()=>{onSharedLinkSettingsLoad&&(isOpen&&await onSharedLinkSettingsLoad(),setIsLoading(!isOpen))})()},[isOpen,onSharedLinkSettingsLoad]);let handleCancel=()=>{isSubmitting||(resetForm(),onSharedLinkSettingsClose&&onSharedLinkSettingsClose(),onOpenChange(!1))};return jsx(Modal,{onOpenChange:handleCancel,open:isOpen,children:jsxs(Modal.Content,{ref:setContainerRef,className:clsx(shared_link_settings_modal_module_default.content,isDesktop&&shared_link_settings_modal_module_default.isFullscreen),onEscapeKeyDown:event=>{event.stopPropagation()},onPointerDownOutside:event=>{event.preventDefault()},size:`medium`,children:[jsxs(Modal.Header,{children:[jsx(`div`,{className:shared_link_settings_modal_module_default.title,children:formatMessage(messages.title)}),jsx(ClassificationStatus,{})]}),jsxs(`div`,{className:clsx(shared_link_settings_modal_module_default.form),children:[isLoading&&jsx(`div`,{className:shared_link_settings_modal_module_default.loading,children:jsx(LoadingIndicator,{"aria-label":formatMessage(messages.loadingLabel),size:`large`})}),jsxs(Modal.Body,{className:clsx(shared_link_settings_modal_module_default.body,isLoading&&shared_link_settings_modal_module_default.isLoading),children:[isDesktop&&jsx(Divider,{className:shared_link_settings_modal_module_default.divider}),jsx(SharedLinkSettings,{})]}),jsxs(Modal.Footer,{className:clsx(isLoading&&shared_link_settings_modal_module_default.isLoading),children:[jsx(Modal.Footer.SecondaryButton,{disabled:isSubmitting,onClick:handleCancel,children:formatMessage(messages.cancelButton)}),jsx(Modal.Footer.PrimaryButton,{id:`usm-SharedLinkSettingsModal-primaryButton`,loading:isSubmitting,loadingAriaLabel:formatMessage(messages.loadingLabel),onClick:async()=>{await submitForm()||(resetForm(),onOpenChange(!1))},children:formatMessage(messages.saveButton)})]})]}),!isDesktop&&jsx(Modal.Close,{"aria-label":formatMessage(messages.closeButton),disabled:isSubmitting})]})})}export{SharedLinkSettingsModal as t};
1
+ import{useUnifiedShareModalContext}from"../esm/lib/contexts/unified-share-modal-context.js";import{useSharedLinkSettingsContext}from"../esm/lib/contexts/shared-link-settings-context.js";import{t as ClassificationStatus}from"./classification-status.js";import messages from"../esm/lib/components/shared-link-settings-modal/messages.js";import{SharedLinkSettings}from"../esm/lib/components/shared-link-settings-modal/shared-link-settings.js";import{useEffect,useState}from"react";import clsx from"clsx";import{useIntl}from"react-intl";import{Divider,LoadingIndicator,Modal}from"@box/blueprint-web";import{jsx,jsxs}from"react/jsx-runtime";import '../styles/shared-link-settings-modal.css';var shared_link_settings_modal_module_default={content:`_content_v2gl6_1`,isFullscreen:`_isFullscreen_v2gl6_4`,body:`_body_v2gl6_13`,title:`_title_v2gl6_23`,form:`_form_v2gl6_43`,isLoading:`_isLoading_v2gl6_50`,loading:`_loading_v2gl6_54`,divider:`_divider_v2gl6_62`};function SharedLinkSettingsModal({isOpen,onOpenChange}){let{formatMessage}=useIntl(),{eventService,isSubmitting,variant,views}=useUnifiedShareModalContext(),{onSharedLinkSettingsClose,onSharedLinkSettingsLoad}=eventService,isDesktop=variant===`desktop`,isLoadable=views.includes(`shared-link-settings`),{resetForm,setContainerRef,submitForm}=useSharedLinkSettingsContext(),[isLoading,setIsLoading]=useState(!!onSharedLinkSettingsLoad);useEffect(()=>{(async()=>{onSharedLinkSettingsLoad&&(isLoadable&&await onSharedLinkSettingsLoad(),setIsLoading(!isLoadable))})()},[isLoadable,onSharedLinkSettingsLoad]);let handleCancel=()=>{isSubmitting||(resetForm(),onSharedLinkSettingsClose&&onSharedLinkSettingsClose(),onOpenChange(!1))};return jsx(Modal,{onOpenChange:handleCancel,open:isOpen,children:jsxs(Modal.Content,{ref:setContainerRef,className:clsx(shared_link_settings_modal_module_default.content,isDesktop&&shared_link_settings_modal_module_default.isFullscreen),onEscapeKeyDown:event=>{event.stopPropagation()},onPointerDownOutside:event=>{event.preventDefault()},size:`medium`,children:[jsxs(Modal.Header,{children:[jsx(`div`,{className:shared_link_settings_modal_module_default.title,children:formatMessage(messages.title)}),jsx(ClassificationStatus,{})]}),jsxs(`div`,{className:clsx(shared_link_settings_modal_module_default.form),children:[isLoading&&jsx(`div`,{className:shared_link_settings_modal_module_default.loading,children:jsx(LoadingIndicator,{"aria-label":formatMessage(messages.loadingLabel),size:`large`})}),jsxs(Modal.Body,{className:clsx(shared_link_settings_modal_module_default.body,isLoading&&shared_link_settings_modal_module_default.isLoading),children:[isDesktop&&jsx(Divider,{className:shared_link_settings_modal_module_default.divider}),jsx(SharedLinkSettings,{})]}),jsxs(Modal.Footer,{className:clsx(isLoading&&shared_link_settings_modal_module_default.isLoading),children:[jsx(Modal.Footer.SecondaryButton,{disabled:isSubmitting,onClick:handleCancel,children:formatMessage(messages.cancelButton)}),jsx(Modal.Footer.PrimaryButton,{id:`usm-SharedLinkSettingsModal-primaryButton`,loading:isSubmitting,loadingAriaLabel:formatMessage(messages.loadingLabel),onClick:async()=>{await submitForm()||(resetForm(),onOpenChange(!1))},children:formatMessage(messages.saveButton)})]})]}),!isDesktop&&jsx(Modal.Close,{"aria-label":formatMessage(messages.closeButton),disabled:isSubmitting})]})})}export{SharedLinkSettingsModal as t};
@@ -1 +1 @@
1
- import{ManageAccessListContainer}from"./manage-access-list-container.js";export{ManageAccessListContainer};
1
+ import{ManageAccessListContainer}from"./manage-access-list-container.js";import{RemoveCollaboratorContainer}from"./remove-collaborator-container.js";import{RemoveSharedLinkContainer}from"./remove-shared-link-container.js";import{SharedLinkSettingsContainer}from"./shared-link-settings-container.js";import{UnifiedShareFormContainer}from"./unified-share-form-container.js";export{ManageAccessListContainer,RemoveCollaboratorContainer,RemoveSharedLinkContainer,SharedLinkSettingsContainer,UnifiedShareFormContainer};
@@ -1 +1 @@
1
- import{t as ManageAccessListModal}from"../../../chunks/manage-access-list-modal.js";import{useUnifiedShareModalContext}from"../contexts/unified-share-modal-context.js";import{useSharingAction}from"../hooks/use-sharing-action.js";import{jsx}from"react/jsx-runtime";function ManageAccessListContainer(){let{isOpen,isSubmitting,setView,sharedLink,sharingService,variant,view}=useUnifiedShareModalContext(),{settings={}}=sharedLink,{otpAccessEntries=[]}=settings,{updateSharedLinkOtpAccess}=sharingService,{onAction:onSubmit}=useSharingAction(updateSharedLinkOtpAccess,`update-otp-access`),handleClose=()=>{setView(null)};return!isOpen||view!==`manage-access-list`?null:jsx(ManageAccessListModal,{entries:otpAccessEntries,isDesktop:variant===`desktop`,isOpen:!0,isSubmitting,onOpenChange:handleClose,onSubmit:async entries=>{await onSubmit(entries),handleClose()}})}export{ManageAccessListContainer};
1
+ import{t as ManageAccessListModal}from"../../../chunks/manage-access-list-modal.js";import{useUnifiedShareModalContext}from"../contexts/unified-share-modal-context.js";import{useSharingAction}from"../hooks/use-sharing-action.js";import{useState}from"react";import{jsx}from"react/jsx-runtime";function ManageAccessListContainer(){let{isOpen,isSubmitting,setView,sharedLink,sharingService,variant,view}=useUnifiedShareModalContext(),{settings={}}=sharedLink,{otpAccessEntries=[]}=settings,{updateSharedLinkOtpAccess}=sharingService,isVisible=isOpen&&view===`manage-access-list`,[instance,setInstance]=useState(0),[isActive,setIsActive]=useState(!1),{onAction:onSubmit}=useSharingAction(updateSharedLinkOtpAccess,`update-otp-access`);isVisible!==isActive&&(setIsActive(isVisible),isVisible&&setInstance(prev=>prev+1));let handleClose=()=>{setView(null)};return jsx(ManageAccessListModal,{entries:otpAccessEntries,isDesktop:variant===`desktop`,isOpen:isVisible,isSubmitting,onOpenChange:handleClose,onSubmit:async entries=>{await onSubmit(entries),handleClose()}},instance)}export{ManageAccessListContainer};
@@ -0,0 +1 @@
1
+ import{t as RemoveCollaboratorModal}from"../../../chunks/remove-collaborator-modal.js";import{useUnifiedShareModalContext}from"../contexts/unified-share-modal-context.js";import{useSharingAction}from"../hooks/use-sharing-action.js";import{jsx}from"react/jsx-runtime";function RemoveCollaboratorContainer(){let{collaborator,isOpen,isSubmitting,setCollaborator,setView,sharingService,variant,view}=useUnifiedShareModalContext(),{removeCollaborator}=sharingService,{onAction:onRemove}=useSharingAction(removeCollaborator,`remove-collaborator`),handleReset=()=>{setCollaborator(null)},handleClose=()=>{setView(null)};return jsx(RemoveCollaboratorModal,{collaborator,isDesktop:variant===`desktop`,isOpen:isOpen&&view===`remove-collaborator`,isSubmitting,onOpenChange:handleClose,onReset:handleReset,onSubmit:async()=>{await onRemove(collaborator),handleClose()}})}export{RemoveCollaboratorContainer};
@@ -0,0 +1 @@
1
+ import{t as RemoveSharedLinkModal}from"../../../chunks/remove-shared-link-modal.js";import{useUnifiedShareModalContext}from"../contexts/unified-share-modal-context.js";import{useSharingAction}from"../hooks/use-sharing-action.js";import{jsx}from"react/jsx-runtime";function RemoveSharedLinkContainer(){let{isOpen,isSubmitting,setView,sharingService,variant,view}=useUnifiedShareModalContext(),{deleteSharedLink}=sharingService,{onAction:onDelete}=useSharingAction(deleteSharedLink,`delete-shared-link`),handleClose=()=>{setView(null)};return jsx(RemoveSharedLinkModal,{isDesktop:variant===`desktop`,isOpen:isOpen&&view===`remove-shared-link`,isSubmitting,onOpenChange:handleClose,onSubmit:async()=>{await onDelete(),handleClose()}})}export{RemoveSharedLinkContainer};
@@ -0,0 +1 @@
1
+ import{useUnifiedShareModalContext}from"../contexts/unified-share-modal-context.js";import{SharedLinkSettingsProvider}from"../contexts/shared-link-settings-context.js";import{t as SharedLinkSettingsModal}from"../../../chunks/shared-link-settings-modal.js";import{jsx}from"react/jsx-runtime";function SharedLinkSettingsContainer(){let{isOpen,setView,view}=useUnifiedShareModalContext();return jsx(SharedLinkSettingsProvider,{children:jsx(SharedLinkSettingsModal,{isOpen:isOpen&&view===`shared-link-settings`,onOpenChange:()=>setView(null)})})}export{SharedLinkSettingsContainer};
@@ -0,0 +1 @@
1
+ import{useUnifiedShareModalContext}from"../contexts/unified-share-modal-context.js";import{UnifiedShareFormProvider}from"../contexts/unified-share-form-context.js";import{t as UnifiedShareFormModal}from"../../../chunks/unified-share-form-modal.js";import{jsx}from"react/jsx-runtime";function UnifiedShareFormContainer({children}){let{isOpen,onOpenChange,view}=useUnifiedShareModalContext();return jsx(UnifiedShareFormProvider,{children:jsx(UnifiedShareFormModal,{isOpen:isOpen&&view===`unified-share-form`,onOpenChange,children})})}export{UnifiedShareFormContainer};
@@ -1 +1 @@
1
- import{OTP_MODE}from"../constants.js";import{formatDateFromTimestampToCalendarDate}from"../utils/date.js";import{useUnifiedShareModalContext}from"./unified-share-modal-context.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,otpMode=OTP_MODE.NONE}=settings,[containerRef,setContainerRef]=useState(null),initialFormData=useMemo(()=>{let isOtpEnabled=otpMode!==OTP_MODE.NONE;return{expiration:expiresAt?formatDateFromTimestampToCalendarDate(expiresAt):null,isDownloadEnabled:!!isDownloadEnabled,isExpirationEnabled:!!expiresAt,isOtpEnabled,isPasswordEnabled:!!isPasswordEnabled,isVanityNameEnabled:!!vanityName,otpMode,password:``,vanityName}},[expiresAt,isDownloadEnabled,isPasswordEnabled,otpMode,vanityName]),{errors,formData,onFormReset,onFormSubmit,setFieldError,setFieldValue,validatePassword}=useLinkSettingsForm(initialFormData),contextValue=useMemo(()=>({containerRef,errors,formData,initialFormData,resetForm:onFormReset,setContainerRef,setFieldError,setFieldValue,submitForm:onFormSubmit,validatePassword}),[containerRef,errors,formData,initialFormData,onFormReset,onFormSubmit,setFieldError,setFieldValue,validatePassword]);return jsx(SharedLinkSettingsContext.Provider,{value:contextValue,children})};export{SharedLinkSettingsContext,SharedLinkSettingsProvider,useSharedLinkSettingsContext};
1
+ import{OTP_MODE}from"../constants.js";import{formatDateFromTimestampToCalendarDate}from"../utils/date.js";import{useUnifiedShareModalContext}from"./unified-share-modal-context.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,otpMode=OTP_MODE.NONE}=settings,[containerRef,setContainerRef]=useState(null),initialFormData=useMemo(()=>({expiration:expiresAt?formatDateFromTimestampToCalendarDate(expiresAt):null,isDownloadEnabled:!!isDownloadEnabled,isExpirationEnabled:!!expiresAt,isOtpEnabled:otpMode!==OTP_MODE.NONE,isPasswordEnabled:!!isPasswordEnabled,isVanityNameEnabled:!!vanityName,otpMode,password:``,vanityName}),[expiresAt,isDownloadEnabled,isPasswordEnabled,otpMode,vanityName]),{errors,formData,onFormReset,onFormSubmit,setFieldError,setFieldValue,validatePassword}=useLinkSettingsForm(initialFormData),contextValue=useMemo(()=>({containerRef,errors,formData,initialFormData,resetForm:onFormReset,setContainerRef,setFieldError,setFieldValue,submitForm:onFormSubmit,validatePassword}),[containerRef,errors,formData,initialFormData,onFormReset,onFormSubmit,setFieldError,setFieldValue,validatePassword]);return jsx(SharedLinkSettingsContext.Provider,{value:contextValue,children})};export{SharedLinkSettingsContext,SharedLinkSettingsProvider,useSharedLinkSettingsContext};
@@ -1 +1 @@
1
- import{DEFAULT_COLLABORATION_ROLES,DEFAULT_CONFIGURATION,DEFAULT_VIEW}from"../constants.js";import{createContext,useCallback,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,suggestedCollaborators,variant})=>{let[collaborator,setCollaborator]=useState(null),[isLoading,setIsLoading]=useState(!1),[views,setViews]=useState([DEFAULT_VIEW]),setView=useCallback(view=>{setViews(current=>{let[,...rest]=current;return view?[view,...current]:[...rest]})},[]);useEffect(()=>{isOpen||(setIsLoading(!1),setViews([DEFAULT_VIEW]))},[isOpen,setViews]);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??{},suggestedCollaborators:suggestedCollaborators??[],variant,view:views[0]}),[collaborationAccess,collaborationNotices,collaborationRoles,collaborator,collaborators,config,contactService,currentUser,eventService,initialContacts,invitationFormNotices,isFetching,isLoading,isOpen,isSubmitting,item,onOpenChange,setView,sharedLink,sharedLinkNotices,sharingService,suggestedCollaborators,variant,views]);return jsx(UnifiedShareModalContext.Provider,{value:contextValue,children})};export{UnifiedShareModalContext,UnifiedShareModalProvider,useUnifiedShareModalContext};
1
+ import{DEFAULT_COLLABORATION_ROLES,DEFAULT_CONFIGURATION,DEFAULT_VIEW}from"../constants.js";import{createContext,useCallback,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,suggestedCollaborators,variant})=>{let[collaborator,setCollaborator]=useState(null),[isLoading,setIsLoading]=useState(!1),[views,setViews]=useState([DEFAULT_VIEW]),setView=useCallback(view=>{setViews(current=>view?[view,...current]:current.slice(1))},[]);useEffect(()=>{isOpen||(setIsLoading(!1),setViews([DEFAULT_VIEW]))},[isOpen,setViews]);let contextValue=useMemo(()=>({collaborationAccess,collaborationNotices,collaborationRoles:collaborationRoles??DEFAULT_COLLABORATION_ROLES,collaborator,collaborators:collaborators??[],config:{...DEFAULT_CONFIGURATION,...config},contactService:contactService??{},currentUser:currentUser??{id:``},eventService:eventService??{},initialContacts:initialContacts??[],invitationFormNotices,isFetching,isOpen,isSubmitting:isSubmitting??isLoading,item,onOpenChange,setCollaborator,setIsLoading,setView,sharedLink:sharedLink??{url:``},sharedLinkNotices,sharingService:sharingService??{},suggestedCollaborators:suggestedCollaborators??[],variant,view:views[0],views}),[collaborationAccess,collaborationNotices,collaborationRoles,collaborator,collaborators,config,contactService,currentUser,eventService,initialContacts,invitationFormNotices,isFetching,isLoading,isOpen,isSubmitting,item,onOpenChange,setView,sharedLink,sharedLinkNotices,sharingService,suggestedCollaborators,variant,views]);return jsx(UnifiedShareModalContext.Provider,{value:contextValue,children})};export{UnifiedShareModalContext,UnifiedShareModalProvider,useUnifiedShareModalContext};
@@ -1 +1 @@
1
- import{UnifiedShareModalProvider}from"./contexts/unified-share-modal-context.js";import{UnifiedShareBase}from"./unified-share-base.js";import{useCallback,useEffect,useState}from"react";import{jsx}from"react/jsx-runtime";function UnifiedShareModal({children,collaborationAccess,collaborationNotices,collaborationRoles,collaborators,config,contactService,currentUser,eventService,initialContacts,invitationFormNotices,isFetching,isOpen:isControlledOpen,isSubmitting,item,onLoad,onOpenChange,sharedLink,sharedLinkNotices,sharingService,suggestedCollaborators,variant=`modal`}){let[isOpen,setIsOpen]=useState(isControlledOpen??(!children||variant===`desktop`)),[isLoading,setIsLoading]=useState(!!onLoad);useEffect(()=>{isControlledOpen!==void 0&&setIsOpen(isControlledOpen)},[isControlledOpen]),useEffect(()=>{(async()=>{onLoad&&(isOpen&&await onLoad(),setIsLoading(!isOpen))})()},[isOpen,onLoad]);let handleOpenChange=useCallback(open=>{isControlledOpen===void 0&&variant!==`desktop`&&setIsOpen(open),onOpenChange&&onOpenChange(open)},[isControlledOpen,onOpenChange,variant]);return jsx(UnifiedShareModalProvider,{collaborationAccess,collaborationNotices,collaborationRoles,collaborators,config,contactService,currentUser,eventService,initialContacts,invitationFormNotices,isFetching:isFetching??isLoading,isOpen,isSubmitting,item,onOpenChange:handleOpenChange,sharedLink,sharedLinkNotices,sharingService,suggestedCollaborators,variant,children:jsx(UnifiedShareBase,{children})})}export{UnifiedShareModal};
1
+ import{UnifiedShareModalProvider}from"./contexts/unified-share-modal-context.js";import{ManageAccessListContainer}from"./containers/manage-access-list-container.js";import{RemoveCollaboratorContainer}from"./containers/remove-collaborator-container.js";import{RemoveSharedLinkContainer}from"./containers/remove-shared-link-container.js";import{SharedLinkSettingsContainer}from"./containers/shared-link-settings-container.js";import{UnifiedShareFormContainer}from"./containers/unified-share-form-container.js";import{useCallback,useEffect,useState}from"react";import{jsx,jsxs}from"react/jsx-runtime";function UnifiedShareModal({children,collaborationAccess,collaborationNotices,collaborationRoles,collaborators,config,contactService,currentUser,eventService,initialContacts,invitationFormNotices,isFetching,isOpen:isControlledOpen,isSubmitting,item,onLoad,onOpenChange,sharedLink,sharedLinkNotices,sharingService,suggestedCollaborators,variant=`modal`}){let[isOpen,setIsOpen]=useState(isControlledOpen??(!children||variant===`desktop`)),[isLoading,setIsLoading]=useState(!!onLoad);useEffect(()=>{isControlledOpen!==void 0&&setIsOpen(isControlledOpen)},[isControlledOpen]),useEffect(()=>{(async()=>{onLoad&&(isOpen&&await onLoad(),setIsLoading(!isOpen))})()},[isOpen,onLoad]);let handleOpenChange=useCallback(open=>{isControlledOpen===void 0&&variant!==`desktop`&&setIsOpen(open),onOpenChange&&onOpenChange(open)},[isControlledOpen,onOpenChange,variant]);return jsxs(UnifiedShareModalProvider,{collaborationAccess,collaborationNotices,collaborationRoles,collaborators,config,contactService,currentUser,eventService,initialContacts,invitationFormNotices,isFetching:isFetching??isLoading,isOpen,isSubmitting,item,onOpenChange:handleOpenChange,sharedLink,sharedLinkNotices,sharingService,suggestedCollaborators,variant,children:[jsx(UnifiedShareFormContainer,{children}),jsx(SharedLinkSettingsContainer,{}),jsx(RemoveSharedLinkContainer,{}),jsx(RemoveCollaboratorContainer,{}),jsx(ManageAccessListContainer,{})]})}export{UnifiedShareModal};
@@ -1,5 +1,11 @@
1
+ import { Collaborator } from '../../types';
1
2
  export interface RemoveCollaboratorModalProps {
3
+ collaborator: Collaborator;
4
+ isDesktop?: boolean;
2
5
  isOpen: boolean;
6
+ isSubmitting?: boolean;
3
7
  onOpenChange: (open: boolean) => void;
8
+ onReset?: () => void;
9
+ onSubmit: () => void;
4
10
  }
5
- export declare function RemoveCollaboratorModal({ isOpen, onOpenChange }: RemoveCollaboratorModalProps): import("react/jsx-runtime").JSX.Element;
11
+ export declare function RemoveCollaboratorModal({ collaborator, isDesktop, isOpen, isSubmitting, onOpenChange, onReset, onSubmit, }: RemoveCollaboratorModalProps): import("react/jsx-runtime").JSX.Element;
@@ -1,2 +1,2 @@
1
- import { UnifiedShareModalContextValue } from '../../../contexts';
2
- export declare const RemoveCollaboratorModalTemplate: (props: Partial<UnifiedShareModalContextValue>) => import("react/jsx-runtime").JSX.Element;
1
+ import { RemoveCollaboratorModalProps } from '../remove-collaborator-modal';
2
+ export declare const RemoveCollaboratorModalTemplate: (props: Partial<RemoveCollaboratorModalProps>) => import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,8 @@
1
1
  export interface RemoveSharedLinkModalProps {
2
+ isDesktop?: boolean;
2
3
  isOpen: boolean;
4
+ isSubmitting?: boolean;
3
5
  onOpenChange: (open: boolean) => void;
6
+ onSubmit: () => void;
4
7
  }
5
- export declare function RemoveSharedLinkModal({ isOpen, onOpenChange }: RemoveSharedLinkModalProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare function RemoveSharedLinkModal({ isDesktop, isOpen, isSubmitting, onOpenChange, onSubmit, }: RemoveSharedLinkModalProps): import("react/jsx-runtime").JSX.Element;
@@ -1,2 +1,2 @@
1
- import { UnifiedShareModalContextValue } from '../../../contexts';
2
- export declare const RemoveSharedLinkModalTemplate: (props: Partial<UnifiedShareModalContextValue>) => import("react/jsx-runtime").JSX.Element;
1
+ import { RemoveSharedLinkModalProps } from '../remove-shared-link-modal';
2
+ export declare const RemoveSharedLinkModalTemplate: (props: Partial<RemoveSharedLinkModalProps>) => import("react/jsx-runtime").JSX.Element;
@@ -1 +1,5 @@
1
1
  export * from './manage-access-list-container';
2
+ export * from './remove-collaborator-container';
3
+ export * from './remove-shared-link-container';
4
+ export * from './shared-link-settings-container';
5
+ export * from './unified-share-form-container';
@@ -0,0 +1 @@
1
+ export declare function RemoveCollaboratorContainer(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare function RemoveSharedLinkContainer(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare function SharedLinkSettingsContainer(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { ReactElement } from 'react';
2
+ export interface UnifiedShareFormContainerProps {
3
+ children?: ReactElement;
4
+ }
5
+ export declare function UnifiedShareFormContainer({ children }: UnifiedShareFormContainerProps): import("react/jsx-runtime").JSX.Element;
@@ -9,7 +9,7 @@ export interface UnifiedShareModalContextValue {
9
9
  collaborators: Collaborator[];
10
10
  config: Configuration;
11
11
  contactService: ContactService;
12
- currentUser: Partial<User>;
12
+ currentUser: User;
13
13
  eventService: EventService;
14
14
  initialContacts: UserContactType[];
15
15
  invitationFormNotices?: ReactElement | ReactElement[];
@@ -21,12 +21,13 @@ export interface UnifiedShareModalContextValue {
21
21
  setCollaborator: Dispatch<SetStateAction<Collaborator | null>>;
22
22
  setIsLoading: Dispatch<SetStateAction<boolean>>;
23
23
  setView: (view: ViewType | null) => void;
24
- sharedLink: Partial<SharedLink>;
24
+ sharedLink: SharedLink;
25
25
  sharedLinkNotices?: ReactElement | ReactElement[];
26
26
  sharingService: SharingService;
27
27
  suggestedCollaborators?: SuggestedCollaborator[];
28
28
  variant: VariantType;
29
29
  view: ViewType;
30
+ views: ViewType[];
30
31
  }
31
32
  export declare const UnifiedShareModalContext: import('react').Context<UnifiedShareModalContextValue>;
32
33
  export declare const useUnifiedShareModalContext: () => UnifiedShareModalContextValue;
package/package.json CHANGED
@@ -1,23 +1,23 @@
1
1
  {
2
2
  "name": "@box/unified-share-modal",
3
- "version": "3.6.0",
3
+ "version": "3.6.2",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "peerDependencies": {
6
- "@box/blueprint-web": "^18.3.0",
7
- "@box/blueprint-web-assets": "^5.12.2",
8
- "@box/copy-input": "^2.3.19",
9
- "@box/user-selector": "^3.1.19",
6
+ "@box/blueprint-web": "^18.5.0",
7
+ "@box/blueprint-web-assets": "^5.12.4",
8
+ "@box/copy-input": "^2.3.21",
9
+ "@box/user-selector": "^3.1.21",
10
10
  "lodash": "^4.17.15",
11
11
  "react": "^18.0.0",
12
12
  "react-dom": "^18.0.0",
13
13
  "react-intl": "^6.4.2"
14
14
  },
15
15
  "devDependencies": {
16
- "@box/blueprint-web": "^18.3.0",
17
- "@box/blueprint-web-assets": "^5.12.2",
18
- "@box/copy-input": "^2.3.19",
16
+ "@box/blueprint-web": "^18.5.0",
17
+ "@box/blueprint-web-assets": "^5.12.4",
18
+ "@box/copy-input": "^2.3.21",
19
19
  "@box/eslint-plugin-blueprint": "2.2.29",
20
- "@box/storybook-utils": "1.4.14",
20
+ "@box/storybook-utils": "1.4.16",
21
21
  "react-intl": "^6.4.2"
22
22
  },
23
23
  "publishConfig": {
@@ -1 +0,0 @@
1
- import{useUnifiedShareModalContext}from"./contexts/unified-share-modal-context.js";import{UnifiedShareFormProvider}from"./contexts/unified-share-form-context.js";import{SharedLinkSettingsProvider}from"./contexts/shared-link-settings-context.js";import{t as RemoveCollaboratorModal}from"../../chunks/remove-collaborator-modal.js";import{t as RemoveSharedLinkModal}from"../../chunks/remove-shared-link-modal.js";import{t as SharedLinkSettingsModal}from"../../chunks/shared-link-settings-modal.js";import{t as UnifiedShareFormModal}from"../../chunks/unified-share-form-modal.js";import{ManageAccessListContainer}from"./containers/manage-access-list-container.js";import{Fragment,jsx,jsxs}from"react/jsx-runtime";function UnifiedShareBase({children}){let{isOpen,onOpenChange,setView,view}=useUnifiedShareModalContext();return jsxs(Fragment,{children:[jsx(UnifiedShareFormProvider,{children:jsx(UnifiedShareFormModal,{isOpen:isOpen&&view===`unified-share-form`,onOpenChange,children})}),jsx(SharedLinkSettingsProvider,{children:jsx(SharedLinkSettingsModal,{isOpen:isOpen&&view===`shared-link-settings`,onOpenChange:()=>setView(null)})}),jsx(RemoveSharedLinkModal,{isOpen:isOpen&&view===`remove-shared-link`,onOpenChange:()=>setView(null)}),jsx(RemoveCollaboratorModal,{isOpen:isOpen&&view===`remove-collaborator`,onOpenChange:()=>setView(null)}),jsx(ManageAccessListContainer,{})]})}export{UnifiedShareBase};
@@ -1,5 +0,0 @@
1
- import { ReactElement } from 'react';
2
- export interface UnifiedShareBaseProps {
3
- children?: ReactElement;
4
- }
5
- export declare function UnifiedShareBase({ children }: UnifiedShareBaseProps): import("react/jsx-runtime").JSX.Element;