@box/unified-share-modal 3.7.3 → 3.7.4

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.
@@ -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,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
+ 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({isActive,isOpen,onOpenChange}){let{formatMessage}=useIntl(),{eventService,isSubmitting,variant}=useUnifiedShareModalContext(),{onSharedLinkSettingsClose,onSharedLinkSettingsLoad}=eventService,canInitialize=isActive??isOpen,isDesktop=variant===`desktop`,{resetForm,setContainerRef,submitForm}=useSharedLinkSettingsContext(),[isLoading,setIsLoading]=useState(!!onSharedLinkSettingsLoad);useEffect(()=>{(async()=>{onSharedLinkSettingsLoad&&(canInitialize&&await onSharedLinkSettingsLoad(),setIsLoading(!canInitialize))})()},[canInitialize,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{OTP_MODE}from"../../constants.js";import{useUnifiedShareModalContext}from"../../contexts/unified-share-modal-context.js";import{useAccessLevels}from"../../hooks/use-access-levels.js";import{useSharedLinkSettingsContext}from"../../contexts/shared-link-settings-context.js";import messages from"./messages.js";import{DownloadSection}from"./download-section.js";import{ExpirationSection}from"./expiration-section.js";import{t as OtpSection}from"../../../../chunks/otp-section.js";import{PasswordSection}from"./password-section.js";import{VanitySection}from"./vanity-section.js";import{useMemo}from"react";import{useIntl}from"react-intl";import{InlineNotice,Link,Text}from"@box/blueprint-web";import{Fragment,jsx,jsxs}from"react/jsx-runtime";function SharedLinkSettings(){let{formatMessage}=useIntl(),{eventService,isSubmitting,setView,sharedLink}=useUnifiedShareModalContext(),{settings={},vanityDomain=``}=sharedLink,{canChangeDownload,canChangeExpiration,canChangeOtp,canChangePassword,canChangeVanityName,isDownloadAvailable,isOtpAvailable,isPasswordAvailable,isVanityNameAvailable,otpAccessEntries,otpAllowlistItemCount=0}=settings,{onOtpAllowlistConfigure}=eventService,otpAccessCount=otpAccessEntries?otpAccessEntries.length:otpAllowlistItemCount,{selectedAccess}=useAccessLevels(),{errors,formData,initialFormData,setFieldError,setFieldValue,validatePassword}=useSharedLinkSettingsContext(),accessNoticeMessage=useMemo(()=>{if(!selectedAccess)return null;switch(selectedAccess.id){case`collaborators`:return messages.subtitleCollaborators;case`open`:{let subtitleOpenMessage=formData.isDownloadEnabled?messages.subtitleOpenDownload:messages.subtitleOpenView,subtitleOtpMessage=formData.isDownloadEnabled?messages.subtitleOtpDownload:messages.subtitleOtpView;return formData.isOtpEnabled?subtitleOtpMessage:subtitleOpenMessage}case`company`:return formData.isDownloadEnabled?messages.subtitleCompanyDownload:messages.subtitleCompanyView;default:return null}},[formData.isDownloadEnabled,formData.isOtpEnabled,selectedAccess]),handleExpirationToggle=nextChecked=>{setFieldError(`expiration`,void 0),setFieldValue(`isExpirationEnabled`,nextChecked)},handleExpirationChange=value=>{setFieldError(`expiration`,void 0),setFieldValue(`expiration`,value)},handleVanityToggle=nextChecked=>{setFieldError(`vanityName`,void 0),setFieldValue(`isVanityNameEnabled`,nextChecked)},handleVanityNameChange=event=>{setFieldError(`vanityName`,void 0),setFieldValue(`vanityName`,event.target.value)},isOtpSectionVisible=!!isOtpAvailable&&selectedAccess?.id===`open`,isPasswordSectionVisible=!!isPasswordAvailable&&selectedAccess?.id===`open`,canTogglePassword=!!canChangePassword&&!(formData.isOtpEnabled&&!canChangeOtp),canToggleOtp=!!canChangeOtp&&!(formData.isPasswordEnabled&&!canChangePassword),handlePasswordToggle=nextChecked=>{setFieldError(`password`,void 0),setFieldValue(`isPasswordEnabled`,nextChecked),nextChecked&&isOtpSectionVisible&&canChangeOtp&&setFieldValue(`isOtpEnabled`,!1)},handleOtpToggle=nextChecked=>{setFieldValue(`isOtpEnabled`,nextChecked),nextChecked&&formData.otpMode===OTP_MODE.NONE&&setFieldValue(`otpMode`,OTP_MODE.OPEN),nextChecked&&isPasswordSectionVisible&&canChangePassword&&(setFieldValue(`isPasswordEnabled`,!1),setFieldValue(`password`,``),setFieldError(`password`,void 0))},handleOtpModeChange=mode=>{setFieldValue(`otpMode`,mode)},handleOtpConfigureClick=()=>{if(onOtpAllowlistConfigure){onOtpAllowlistConfigure();return}setView(`manage-access-list`)},handlePasswordChange=event=>{setFieldError(`password`,void 0),setFieldValue(`password`,event.target.value)},handleDownloadToggle=nextChecked=>{setFieldValue(`isDownloadEnabled`,nextChecked)},handlePasswordBlur=event=>{let isSubmitFocused=document.getElementById(`usm-SharedLinkSettingsModal-primaryButton`)?.contains(event.relatedTarget);initialFormData.isPasswordEnabled&&!formData.password||isSubmitFocused||validatePassword(formData.password)},canChangeAllSettings=canChangeDownload&&canChangeExpiration&&(!isOtpSectionVisible||canChangeOtp)&&(!isPasswordSectionVisible||canChangePassword)&&canChangeVanityName,passwordSection=jsx(PasswordSection,{canChange:canTogglePassword,error:errors.password,isAvailable:isPasswordSectionVisible,isChecked:formData.isPasswordEnabled,isDefaultChecked:initialFormData.isPasswordEnabled,isDisabled:isSubmitting,onBlur:handlePasswordBlur,onChange:handlePasswordChange,onFocus:()=>setFieldError(`password`,void 0),onToggle:handlePasswordToggle,password:formData.password});return jsxs(Fragment,{children:[!canChangeAllSettings&&jsx(InlineNotice,{variant:`warning`,variantIconAriaLabel:formatMessage(messages.warningNoticeIconAriaLabel),children:formatMessage(messages.inaccessibleSettingsNotice)}),accessNoticeMessage&&jsx(Text,{as:`p`,color:`textOnLightSecondary`,children:formatMessage(accessNoticeMessage,{learnSharedLinkSettingsLink:jsx(Link,{href:`https://support.box.com/hc/en-us/articles/360043697554-Configuring-Individual-Shared-Link-Settings`,rel:`noreferrer`,target:`_blank`,children:formatMessage(messages.learnSharedLinkSettingsLink)})})}),jsx(ExpirationSection,{canChange:!!canChangeExpiration,error:errors.expiration,expiration:formData.expiration,isChecked:formData.isExpirationEnabled,isDisabled:isSubmitting,onChange:handleExpirationChange,onToggle:handleExpirationToggle}),jsx(OtpSection,{accessCount:otpAccessCount,canChange:canToggleOtp,isAvailable:isOtpSectionVisible,isChecked:formData.isOtpEnabled,isDisabled:isSubmitting,onConfigureClick:handleOtpConfigureClick,onModeChange:handleOtpModeChange,onToggle:handleOtpToggle,otpMode:formData.otpMode}),!isOtpAvailable&&passwordSection,jsx(VanitySection,{canChange:!!canChangeVanityName,error:errors.vanityName,isAvailable:!!isVanityNameAvailable,isChecked:formData.isVanityNameEnabled,isDisabled:isSubmitting,onChange:handleVanityNameChange,onToggle:handleVanityToggle,vanityDomain,vanityName:formData.vanityName}),jsx(DownloadSection,{canChange:!!canChangeDownload,isAvailable:!!isDownloadAvailable,isChecked:formData.isDownloadEnabled,isDisabled:isSubmitting,onToggle:handleDownloadToggle}),isOtpAvailable&&passwordSection]})}export{SharedLinkSettings};
1
+ import{OTP_MODE}from"../../constants.js";import{useUnifiedShareModalContext}from"../../contexts/unified-share-modal-context.js";import{useAccessLevels}from"../../hooks/use-access-levels.js";import{useSharedLinkSettingsContext}from"../../contexts/shared-link-settings-context.js";import messages from"./messages.js";import{DownloadSection}from"./download-section.js";import{ExpirationSection}from"./expiration-section.js";import{t as OtpSection}from"../../../../chunks/otp-section.js";import{PasswordSection}from"./password-section.js";import{VanitySection}from"./vanity-section.js";import{useMemo}from"react";import{useIntl}from"react-intl";import{InlineNotice,Link,Text}from"@box/blueprint-web";import{Fragment,jsx,jsxs}from"react/jsx-runtime";function SharedLinkSettings(){let{formatMessage}=useIntl(),{eventService,isSubmitting,setView,sharedLink}=useUnifiedShareModalContext(),{settings={},vanityDomain=``}=sharedLink,{canChangeDownload,canChangeExpiration,canChangeOtp,canChangePassword,canChangeVanityName,isDownloadAvailable,isOtpAvailable,isPasswordAvailable,isVanityNameAvailable,otpAccessEntries,otpAllowlistItemCount=0}=settings,{onOtpAllowlistConfigure}=eventService,otpAccessCount=otpAccessEntries?otpAccessEntries.length:otpAllowlistItemCount,{selectedAccess}=useAccessLevels(),{currentForm,errors,initialForm,setFieldError,setFieldValue,validatePassword}=useSharedLinkSettingsContext(),accessNoticeMessage=useMemo(()=>{if(!selectedAccess)return null;switch(selectedAccess.id){case`collaborators`:return messages.subtitleCollaborators;case`open`:{let subtitleOpenMessage=currentForm.isDownloadEnabled?messages.subtitleOpenDownload:messages.subtitleOpenView,subtitleOtpMessage=currentForm.isDownloadEnabled?messages.subtitleOtpDownload:messages.subtitleOtpView;return currentForm.isOtpEnabled?subtitleOtpMessage:subtitleOpenMessage}case`company`:return currentForm.isDownloadEnabled?messages.subtitleCompanyDownload:messages.subtitleCompanyView;default:return null}},[currentForm.isDownloadEnabled,currentForm.isOtpEnabled,selectedAccess]),handleExpirationToggle=nextChecked=>{setFieldError(`expiration`,void 0),setFieldValue(`isExpirationEnabled`,nextChecked)},handleExpirationChange=value=>{setFieldError(`expiration`,void 0),setFieldValue(`expiration`,value)},handleVanityToggle=nextChecked=>{setFieldError(`vanityName`,void 0),setFieldValue(`isVanityNameEnabled`,nextChecked)},handleVanityNameChange=event=>{setFieldError(`vanityName`,void 0),setFieldValue(`vanityName`,event.target.value)},isOtpSectionVisible=!!isOtpAvailable&&selectedAccess?.id===`open`,isPasswordSectionVisible=!!isPasswordAvailable&&selectedAccess?.id===`open`,canTogglePassword=!!canChangePassword&&!(currentForm.isOtpEnabled&&!canChangeOtp),canToggleOtp=!!canChangeOtp&&!(currentForm.isPasswordEnabled&&!canChangePassword),handlePasswordToggle=nextChecked=>{setFieldError(`password`,void 0),setFieldValue(`isPasswordEnabled`,nextChecked),nextChecked&&isOtpSectionVisible&&canChangeOtp&&setFieldValue(`isOtpEnabled`,!1)},handleOtpToggle=nextChecked=>{setFieldValue(`isOtpEnabled`,nextChecked),nextChecked&&currentForm.otpMode===OTP_MODE.NONE&&setFieldValue(`otpMode`,OTP_MODE.OPEN),nextChecked&&isPasswordSectionVisible&&canChangePassword&&(setFieldValue(`isPasswordEnabled`,!1),setFieldValue(`password`,``),setFieldError(`password`,void 0))},handleOtpModeChange=mode=>{setFieldValue(`otpMode`,mode)},handleOtpConfigureClick=()=>{if(onOtpAllowlistConfigure){onOtpAllowlistConfigure();return}setView(`manage-access-list`)},handlePasswordChange=event=>{setFieldError(`password`,void 0),setFieldValue(`password`,event.target.value)},handleDownloadToggle=nextChecked=>{setFieldValue(`isDownloadEnabled`,nextChecked)},handlePasswordBlur=event=>{let isSubmitFocused=document.getElementById(`usm-SharedLinkSettingsModal-primaryButton`)?.contains(event.relatedTarget);initialForm.isPasswordEnabled&&!currentForm.password||isSubmitFocused||validatePassword(currentForm.password)},canChangeAllSettings=canChangeDownload&&canChangeExpiration&&(!isOtpSectionVisible||canChangeOtp)&&(!isPasswordSectionVisible||canChangePassword)&&canChangeVanityName,passwordSection=jsx(PasswordSection,{canChange:canTogglePassword,error:errors.password,isAvailable:isPasswordSectionVisible,isChecked:currentForm.isPasswordEnabled,isDefaultChecked:initialForm.isPasswordEnabled,isDisabled:isSubmitting,onBlur:handlePasswordBlur,onChange:handlePasswordChange,onFocus:()=>setFieldError(`password`,void 0),onToggle:handlePasswordToggle,password:currentForm.password});return jsxs(Fragment,{children:[!canChangeAllSettings&&jsx(InlineNotice,{variant:`warning`,variantIconAriaLabel:formatMessage(messages.warningNoticeIconAriaLabel),children:formatMessage(messages.inaccessibleSettingsNotice)}),accessNoticeMessage&&jsx(Text,{as:`p`,color:`textOnLightSecondary`,children:formatMessage(accessNoticeMessage,{learnSharedLinkSettingsLink:jsx(Link,{href:`https://support.box.com/hc/en-us/articles/360043697554-Configuring-Individual-Shared-Link-Settings`,rel:`noreferrer`,target:`_blank`,children:formatMessage(messages.learnSharedLinkSettingsLink)})})}),jsx(ExpirationSection,{canChange:!!canChangeExpiration,error:errors.expiration,expiration:currentForm.expiration,isChecked:currentForm.isExpirationEnabled,isDisabled:isSubmitting,onChange:handleExpirationChange,onToggle:handleExpirationToggle}),jsx(OtpSection,{accessCount:otpAccessCount,canChange:canToggleOtp,isAvailable:isOtpSectionVisible,isChecked:currentForm.isOtpEnabled,isDisabled:isSubmitting,onConfigureClick:handleOtpConfigureClick,onModeChange:handleOtpModeChange,onToggle:handleOtpToggle,otpMode:currentForm.otpMode}),!isOtpAvailable&&passwordSection,jsx(VanitySection,{canChange:!!canChangeVanityName,error:errors.vanityName,isAvailable:!!isVanityNameAvailable,isChecked:currentForm.isVanityNameEnabled,isDisabled:isSubmitting,onChange:handleVanityNameChange,onToggle:handleVanityToggle,vanityDomain,vanityName:currentForm.vanityName}),jsx(DownloadSection,{canChange:!!canChangeDownload,isAvailable:!!isDownloadAvailable,isChecked:currentForm.isDownloadEnabled,isDisabled:isSubmitting,onToggle:handleDownloadToggle}),isOtpAvailable&&passwordSection]})}export{SharedLinkSettings};
@@ -1 +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};
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,views}=useUnifiedShareModalContext();return jsx(SharedLinkSettingsProvider,{children:jsx(SharedLinkSettingsModal,{isActive:views.includes(`shared-link-settings`),isOpen:isOpen&&view===`shared-link-settings`,onOpenChange:()=>setView(null)})})}export{SharedLinkSettingsContainer};
@@ -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(()=>({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
+ 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),initialForm=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]),{currentForm,errors,onFormReset,onFormSubmit,setFieldError,setFieldValue,validatePassword}=useLinkSettingsForm(initialForm),contextValue=useMemo(()=>({containerRef,currentForm,errors,initialForm,resetForm:onFormReset,setContainerRef,setFieldError,setFieldValue,submitForm:onFormSubmit,validatePassword}),[containerRef,currentForm,errors,initialForm,onFormReset,onFormSubmit,setFieldError,setFieldValue,validatePassword]);return jsx(SharedLinkSettingsContext.Provider,{value:contextValue,children})};export{SharedLinkSettingsContext,SharedLinkSettingsProvider,useSharedLinkSettingsContext};
@@ -1 +1 @@
1
- import{parseEmails}from"../utils/email.js";import{useUnifiedShareModalContext}from"../contexts/unified-share-modal-context.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,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]),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]),handleFormReset=()=>{setUserContacts([]),setContactValue(``),setMessageValue(``),setFieldError(`userContacts`,``)};return{errors,onFormReset:handleFormReset,onFormSubmit: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},onSelectedUsersChange:handleSelectedUsersChange,onUserSelectorBlur:handleUserSelectorBlur,updateContactValue}};export{useCollaborationForm};
1
+ import{parseEmails}from"../utils/email.js";import{useUnifiedShareModalContext}from"../contexts/unified-share-modal-context.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,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]),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]),handleFormReset=()=>{setUserContacts([]),setContactValue(``),setMessageValue(``),setFieldError(`userContacts`,``)};return{errors,onFormReset:handleFormReset,onFormSubmit:async()=>{if(errors.userContacts||validateUserSelector(userContacts))return!0;let collaborationForm={contacts:userContacts,message:messageValue};return form===`invite`&&(collaborationForm.role=collaborationRole.id),shieldRestriction.isJustificationAllowed&&(collaborationForm.justificationReason=shieldRestriction.justificationReason,collaborationForm.classificationId=shieldRestriction.classificationId),await onFormSubmit(collaborationForm),handleFormReset(),!1},onSelectedUsersChange:handleSelectedUsersChange,onUserSelectorBlur:handleUserSelectorBlur,updateContactValue}};export{useCollaborationForm};
@@ -1 +1 @@
1
- import{getUpdatedLinkSettingsFormData}from"../utils/form.js";import{useUnifiedShareModalContext}from"../contexts/unified-share-modal-context.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 initialFormDataRef=useRef(initialFormData),[formData,setFormData]=useState(initialFormData),{errors,setErrors,setFieldError,validateExpiration,validatePassword,validateVanityName}=useFormValidation(),{sharingService}=useUnifiedShareModalContext(),{updateSharedLink}=sharingService,{onAction:onUpdate}=useSharingAction(updateSharedLink,`update-shared-link`);useEffect(()=>{isEqual(initialFormData,initialFormDataRef.current)||(setFormData(initialFormData),setErrors({}),initialFormDataRef.current=initialFormData)},[initialFormData,setErrors]);let setFieldValue=useCallback((field,value)=>{setFormData(prev=>({...prev,[field]:value}))},[]);return{errors,formData,onFormReset:useCallback(()=>{setFormData(initialFormDataRef.current),setErrors({})},[setErrors]),onFormSubmit: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
+ import{getUpdatedLinkSettingsForm}from"../utils/form.js";import{useUnifiedShareModalContext}from"../contexts/unified-share-modal-context.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=initialForm=>{let initialFormRef=useRef(initialForm),[currentForm,setCurrentForm]=useState(initialForm),{errors,setErrors,setFieldError,validateExpiration,validatePassword,validateVanityName}=useFormValidation(),{sharingService}=useUnifiedShareModalContext(),{updateSharedLink}=sharingService,{onAction:onUpdate}=useSharingAction(updateSharedLink,`update-shared-link`);useEffect(()=>{isEqual(initialForm,initialFormRef.current)||(setCurrentForm(initialForm),setErrors({}),initialFormRef.current=initialForm)},[initialForm,setErrors]);let setFieldValue=useCallback((field,value)=>{setCurrentForm(prev=>({...prev,[field]:value}))},[]);return{currentForm,errors,onFormReset:useCallback(()=>{setCurrentForm(initialFormRef.current),setErrors({})},[setErrors]),onFormSubmit:useCallback(async()=>{let updatedForm=getUpdatedLinkSettingsForm(currentForm,initialForm),{expiration,isExpirationEnabled,isPasswordEnabled,isVanityNameEnabled,password,vanityName}=updatedForm,hasExpirationError=isExpirationEnabled&&validateExpiration(expiration),hasPasswordError=isPasswordEnabled&&validatePassword(password),hasVanityNameError=isVanityNameEnabled&&validateVanityName(vanityName);if(hasExpirationError||hasPasswordError||hasVanityNameError)return!0;try{await onUpdate({...initialForm,...updatedForm})}catch(_error){return Object.entries(_error).forEach(([field,value])=>setFieldError(field,value)),!0}return!1},[currentForm,initialForm,onUpdate,setFieldError,validateExpiration,validatePassword,validateVanityName]),setFieldError,setFieldValue,validatePassword}};export{useLinkSettingsForm};
@@ -1 +1 @@
1
- import{DateFormatter,fromAbsolute,getLocalTimeZone,toCalendarDate}from"@box/blueprint-web";var MILLISECONDS_PER_DAY=1440*60*1e3,formatDateFromTimestampToCalendarDate=timestamp=>toCalendarDate(fromAbsolute(timestamp,getLocalTimeZone())),formatDateFromTimestampToDateString=timestamp=>{let userLocale=navigator.language||`en-US`,date=formatDateFromTimestampToCalendarDate(timestamp).toDate(getLocalTimeZone());return new DateFormatter(userLocale,{day:`numeric`,month:`long`,year:`numeric`}).format(date)},formatTomorrowDateToCalendarDate=()=>toCalendarDate(fromAbsolute(Date.now()+MILLISECONDS_PER_DAY,getLocalTimeZone()));export{formatDateFromTimestampToCalendarDate,formatDateFromTimestampToDateString,formatTomorrowDateToCalendarDate};
1
+ import{DateFormatter,fromAbsolute,getLocalTimeZone,toCalendarDate}from"@box/blueprint-web";var formatDateFromTimestampToCalendarDate=timestamp=>toCalendarDate(fromAbsolute(timestamp,getLocalTimeZone())),formatDateFromTimestampToDateString=timestamp=>{let userLocale=navigator.language||`en-US`,date=formatDateFromTimestampToCalendarDate(timestamp).toDate(getLocalTimeZone());return new DateFormatter(userLocale,{day:`numeric`,month:`long`,year:`numeric`}).format(date)},formatTomorrowDateToCalendarDate=()=>formatDateFromTimestampToCalendarDate(Date.now()).add({days:1});export{formatDateFromTimestampToCalendarDate,formatDateFromTimestampToDateString,formatTomorrowDateToCalendarDate};
@@ -1 +1 @@
1
- import{OTP_MODE}from"../constants.js";var getUpdatedLinkSettingsFormData=(nextData,prevData)=>{let{expiration,isDownloadEnabled,isExpirationEnabled,isOtpEnabled,isPasswordEnabled,isVanityNameEnabled,otpMode,password,vanityName}=nextData,updatedData={};return isDownloadEnabled!==prevData.isDownloadEnabled&&(updatedData.isDownloadEnabled=isDownloadEnabled),(isExpirationEnabled!==prevData.isExpirationEnabled||expiration?.toString()!==prevData.expiration?.toString())&&(updatedData.isExpirationEnabled=isExpirationEnabled,updatedData.expiration=isExpirationEnabled?expiration:null),(isPasswordEnabled!==prevData.isPasswordEnabled||password!==prevData.password)&&(updatedData.isPasswordEnabled=isPasswordEnabled,updatedData.password=isPasswordEnabled?password:null),(isOtpEnabled!==prevData.isOtpEnabled||otpMode!==prevData.otpMode)&&(updatedData.isOtpEnabled=isOtpEnabled,updatedData.otpMode=isOtpEnabled?otpMode:OTP_MODE.NONE),(isVanityNameEnabled!==prevData.isVanityNameEnabled||vanityName!==prevData.vanityName)&&(updatedData.isVanityNameEnabled=isVanityNameEnabled,updatedData.vanityName=isVanityNameEnabled?vanityName:null),updatedData};export{getUpdatedLinkSettingsFormData};
1
+ import{OTP_MODE}from"../constants.js";var getUpdatedLinkSettingsForm=(nextForm,prevForm)=>{let{expiration,isDownloadEnabled,isExpirationEnabled,isOtpEnabled,isPasswordEnabled,isVanityNameEnabled,otpMode,password,vanityName}=nextForm,updatedForm={};return isDownloadEnabled!==prevForm.isDownloadEnabled&&(updatedForm.isDownloadEnabled=isDownloadEnabled),(isExpirationEnabled!==prevForm.isExpirationEnabled||expiration?.toString()!==prevForm.expiration?.toString())&&(updatedForm.isExpirationEnabled=isExpirationEnabled,updatedForm.expiration=isExpirationEnabled?expiration:null),(isPasswordEnabled!==prevForm.isPasswordEnabled||password!==prevForm.password)&&(updatedForm.isPasswordEnabled=isPasswordEnabled,updatedForm.password=isPasswordEnabled?password:null),(isOtpEnabled!==prevForm.isOtpEnabled||otpMode!==prevForm.otpMode)&&(updatedForm.isOtpEnabled=isOtpEnabled,updatedForm.otpMode=isOtpEnabled?otpMode:OTP_MODE.NONE),(isVanityNameEnabled!==prevForm.isVanityNameEnabled||vanityName!==prevForm.vanityName)&&(updatedForm.isVanityNameEnabled=isVanityNameEnabled,updatedForm.vanityName=isVanityNameEnabled?vanityName:null),updatedForm};export{getUpdatedLinkSettingsForm};
@@ -1 +1 @@
1
- import{getAvatarBadgeSize,getDefaultCollaborationRole,getFirstInitial,isCollaboratorRestricted,isCollaboratorRoleSupported,isInvitationRoleSupported}from"./collaborator.js";import{formatDateFromTimestampToCalendarDate,formatDateFromTimestampToDateString,formatTomorrowDateToCalendarDate}from"./date.js";import{doesPasswordContainInvalidCharacter,doesPasswordContainLetter,doesPasswordContainMinCharacters,doesPasswordContainMixedCase,doesPasswordContainNumber,doesPasswordContainSymbol,isDomainValid,isEmailValid,isVanityNameValid}from"./validation.js";import{parseEmails}from"./email.js";import{callOnKeyboardEvent}from"./event.js";import{getUpdatedLinkSettingsFormData}from"./form.js";import{getNotificationArgs,getNotificationMessage}from"./notification.js";import{getAllowedAccessLevels,getAllowedPermissionLevels}from"./permission.js";export{callOnKeyboardEvent,doesPasswordContainInvalidCharacter,doesPasswordContainLetter,doesPasswordContainMinCharacters,doesPasswordContainMixedCase,doesPasswordContainNumber,doesPasswordContainSymbol,formatDateFromTimestampToCalendarDate,formatDateFromTimestampToDateString,formatTomorrowDateToCalendarDate,getAllowedAccessLevels,getAllowedPermissionLevels,getAvatarBadgeSize,getDefaultCollaborationRole,getFirstInitial,getNotificationArgs,getNotificationMessage,getUpdatedLinkSettingsFormData,isCollaboratorRestricted,isCollaboratorRoleSupported,isDomainValid,isEmailValid,isInvitationRoleSupported,isVanityNameValid,parseEmails};
1
+ import{getAvatarBadgeSize,getDefaultCollaborationRole,getFirstInitial,isCollaboratorRestricted,isCollaboratorRoleSupported,isInvitationRoleSupported}from"./collaborator.js";import{formatDateFromTimestampToCalendarDate,formatDateFromTimestampToDateString,formatTomorrowDateToCalendarDate}from"./date.js";import{doesPasswordContainInvalidCharacter,doesPasswordContainLetter,doesPasswordContainMinCharacters,doesPasswordContainMixedCase,doesPasswordContainNumber,doesPasswordContainSymbol,isDomainValid,isEmailValid,isVanityNameValid}from"./validation.js";import{parseEmails}from"./email.js";import{callOnKeyboardEvent}from"./event.js";import{getUpdatedLinkSettingsForm}from"./form.js";import{getNotificationArgs,getNotificationMessage}from"./notification.js";import{getAllowedAccessLevels,getAllowedPermissionLevels}from"./permission.js";export{callOnKeyboardEvent,doesPasswordContainInvalidCharacter,doesPasswordContainLetter,doesPasswordContainMinCharacters,doesPasswordContainMixedCase,doesPasswordContainNumber,doesPasswordContainSymbol,formatDateFromTimestampToCalendarDate,formatDateFromTimestampToDateString,formatTomorrowDateToCalendarDate,getAllowedAccessLevels,getAllowedPermissionLevels,getAvatarBadgeSize,getDefaultCollaborationRole,getFirstInitial,getNotificationArgs,getNotificationMessage,getUpdatedLinkSettingsForm,isCollaboratorRestricted,isCollaboratorRoleSupported,isDomainValid,isEmailValid,isInvitationRoleSupported,isVanityNameValid,parseEmails};
@@ -1,5 +1,6 @@
1
1
  export interface SharedLinkSettingsModalProps {
2
+ isActive?: boolean;
2
3
  isOpen: boolean;
3
4
  onOpenChange: (open: boolean) => void;
4
5
  }
5
- export declare function SharedLinkSettingsModal({ isOpen, onOpenChange }: SharedLinkSettingsModalProps): import("react/jsx-runtime").JSX.Element;
6
+ export declare function SharedLinkSettingsModal({ isActive, isOpen, onOpenChange }: SharedLinkSettingsModalProps): import("react/jsx-runtime").JSX.Element;
@@ -1,11 +1,11 @@
1
1
  import { Dispatch, ReactNode, SetStateAction } from 'react';
2
2
  import { FieldError, FormErrors } from '../hooks';
3
- import { LinkSettingsFormData } from '../types';
3
+ import { LinkSettingsForm } from '../types';
4
4
  export interface SharedLinkSettingsContextValue {
5
5
  containerRef: HTMLDivElement | null;
6
+ currentForm: LinkSettingsForm;
6
7
  errors: FormErrors;
7
- formData: LinkSettingsFormData;
8
- initialFormData: LinkSettingsFormData;
8
+ initialForm: LinkSettingsForm;
9
9
  resetForm: () => void;
10
10
  setContainerRef: Dispatch<SetStateAction<HTMLDivElement | null>>;
11
11
  setFieldError: (field: string, error: FieldError) => void;
@@ -1,7 +1,7 @@
1
- import { LinkSettingsFormData } from '../types';
2
- export declare const useLinkSettingsForm: (initialFormData: LinkSettingsFormData) => {
1
+ import { LinkSettingsForm } from '../types';
2
+ export declare const useLinkSettingsForm: (initialForm: LinkSettingsForm) => {
3
+ currentForm: LinkSettingsForm;
3
4
  errors: import('./use-form-validation').FormErrors;
4
- formData: LinkSettingsFormData;
5
5
  onFormReset: () => void;
6
6
  onFormSubmit: () => Promise<boolean>;
7
7
  setFieldError: (field: string, error: import('./use-form-validation').FieldError) => void;
@@ -494,7 +494,7 @@ export interface SharingService {
494
494
  *
495
495
  * Called when the user clicks "Send" on the invite view of the sharing form.
496
496
  */
497
- sendInvitations?: (data: CollaborationFormData) => Promise<SharingResponse | void>;
497
+ sendInvitations?: (data: CollaborationForm) => Promise<SharingResponse | void>;
498
498
  /**
499
499
  * Function to remove an existing collaborator on the item.
500
500
  *
@@ -506,7 +506,7 @@ export interface SharingService {
506
506
  *
507
507
  * Called when the user clicks "Send" on the email view of the sharing form.
508
508
  */
509
- sendSharedLink?: (data: CollaborationFormData) => Promise<SharingResponse | void>;
509
+ sendSharedLink?: (data: CollaborationForm) => Promise<SharingResponse | void>;
510
510
  /**
511
511
  * Function to create a shared link for the item.
512
512
  *
@@ -524,7 +524,7 @@ export interface SharingService {
524
524
  *
525
525
  * Called when the user saves changes to the shared link settings.
526
526
  */
527
- updateSharedLink?: (data: LinkSettingsFormData) => Promise<SharingResponse | void>;
527
+ updateSharedLink?: (data: LinkSettingsForm) => Promise<SharingResponse | void>;
528
528
  /**
529
529
  * Function to change the access level of the shared link.
530
530
  *
@@ -578,7 +578,7 @@ export interface SharingError {
578
578
  /**
579
579
  * Form data structure for the collaboration form in the Unified Share Modal.
580
580
  */
581
- export interface CollaborationFormData {
581
+ export interface CollaborationForm {
582
582
  /**
583
583
  * The classification ID of the item for inviting restricted collaborators.
584
584
  */
@@ -607,7 +607,7 @@ export interface CollaborationFormData {
607
607
  /**
608
608
  * Form data structure for the link settings form in the Unified Share Modal.
609
609
  */
610
- export interface LinkSettingsFormData {
610
+ export interface LinkSettingsForm {
611
611
  /**
612
612
  * The selected calendar date when the item will be unshared.
613
613
  */
@@ -1,3 +1,3 @@
1
- import { LinkSettingsFormData } from '../types';
2
- declare const getUpdatedLinkSettingsFormData: (nextData: LinkSettingsFormData, prevData: LinkSettingsFormData) => Partial<LinkSettingsFormData>;
3
- export { getUpdatedLinkSettingsFormData };
1
+ import { LinkSettingsForm } from '../types';
2
+ declare const getUpdatedLinkSettingsForm: (nextForm: LinkSettingsForm, prevForm: LinkSettingsForm) => Partial<LinkSettingsForm>;
3
+ export { getUpdatedLinkSettingsForm };
package/package.json CHANGED
@@ -1,23 +1,23 @@
1
1
  {
2
2
  "name": "@box/unified-share-modal",
3
- "version": "3.7.3",
3
+ "version": "3.7.4",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "peerDependencies": {
6
- "@box/blueprint-web": "^18.5.6",
7
- "@box/blueprint-web-assets": "^5.13.3",
8
- "@box/copy-input": "^2.3.27",
9
- "@box/user-selector": "^3.1.27",
6
+ "@box/blueprint-web": "^18.6.0",
7
+ "@box/blueprint-web-assets": "^5.13.4",
8
+ "@box/copy-input": "^2.3.28",
9
+ "@box/user-selector": "^3.1.28",
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.5.6",
17
- "@box/blueprint-web-assets": "^5.13.3",
18
- "@box/copy-input": "^2.3.27",
16
+ "@box/blueprint-web": "^18.6.0",
17
+ "@box/blueprint-web-assets": "^5.13.4",
18
+ "@box/copy-input": "^2.3.28",
19
19
  "@box/eslint-plugin-blueprint": "2.3.0",
20
- "@box/storybook-utils": "1.4.22",
20
+ "@box/storybook-utils": "1.4.23",
21
21
  "react-intl": "^6.4.2"
22
22
  },
23
23
  "publishConfig": {