// @flow import * as React from 'react'; import { IntlProvider } from 'react-intl'; import { State, Store } from '@sambego/storybook-state'; import { boolean } from '@storybook/addon-knobs'; import Button from '../../components/button/Button'; import SharedLinkSettingsModal from './SharedLinkSettingsModal'; import notes from './SharedLinkSettingsModal.stories.md'; export const basic = () => { const componentStore = new Store({ isOpen: false, submitting: false, }); const fakeRequest = () => { componentStore.set({ submitting: true }); return new Promise(resolve => { setTimeout(() => { componentStore.set({ submitting: false }); resolve(); }, 500); }); }; return ( {state => (
{state.isOpen && ( componentStore.set({ isOpen: false })} onSubmit={fakeRequest} serverURL="https://box.com/v/" submitting={state.submitting} vanityName="vanity" canChangePassword isPasswordAvailable isPasswordEnabled={boolean('isPasswordEnabled', false)} canChangeExpiration isDownloadAvailable canChangeDownload isDownloadEnabled={boolean('isDownloadEnabled', false)} directLink="https://box.com/download/path" isDirectLinkAvailable isDirectLinkUnavailableDueToDownloadSettings={boolean( 'isDirectLinkUnavailableDueToDownloadSettings', false, )} isDirectLinkUnavailableDueToAccessPolicy vanityNameInputProps={{ 'data-resin-target': 'test' }} passwordCheckboxProps={{ 'data-resin-target': 'test' }} passwordInputProps={{ 'data-resin-target': 'test' }} expirationCheckboxProps={{ 'data-resin-target': 'test' }} expirationInputProps={{ 'data-resin-target': 'test' }} downloadCheckboxProps={{ 'data-resin-target': 'test' }} directLinkInputProps={{ 'data-resin-target': 'test' }} saveButtonProps={{ 'data-resin-target': 'test' }} cancelButtonProps={{ 'data-resin-target': 'test' }} modalProps={{ 'data-resin-feature': 'test' }} warnOnPublic={state.isPublic} /> )}
)}
); }; export default { title: 'Features|SharedLinkSettingsModal', component: SharedLinkSettingsModal, parameters: { notes, }, };