box-ui-elements-mlh
Version:
99 lines (92 loc) • 4.45 kB
JavaScript
// @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 store={componentStore}>
{state => (
<IntlProvider locale="en">
<div>
{state.isOpen && (
<SharedLinkSettingsModal
accessLevel="peopleWithTheLink"
canChangeVanityName
item={{
bannerPolicy: {
body: 'test',
},
classification: 'internal',
grantedPermissions: {
itemShare: true,
},
hideCollaborators: false,
id: 12345,
name: 'My Example Folder',
type: 'folder',
typedID: 'd_12345',
}}
isOpen
onRequestClose={() => 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}
/>
)}
<Button onClick={() => componentStore.set({ isOpen: true })}>Shared Link Settings Modal</Button>
</div>
</IntlProvider>
)}
</State>
);
};
export default {
title: 'Features|SharedLinkSettingsModal',
component: SharedLinkSettingsModal,
parameters: {
notes,
},
};