import { createFileModalDecorator, mockCreateFileModalFetch, } from './create-file-modal-decorator' import FileTreeModalCreateFile from '../../../js/features/file-tree/components/modals/file-tree-modal-create-file' import useFetchMock from '../../hooks/use-fetch-mock' import { ScopeDecorator } from '../../decorators/scope' import { useScope } from '../../hooks/use-scope' import getMeta from '@/utils/meta' export const MinimalFeatures = args => { useFetchMock(mockCreateFileModalFetch) Object.assign(getMeta('ol-ExposedSettings'), { hasLinkUrlFeature: false, hasLinkedProjectFileFeature: false, hasLinkedProjectOutputFileFeature: false, }) return } MinimalFeatures.decorators = [createFileModalDecorator()] export const WithExtraFeatures = args => { useFetchMock(mockCreateFileModalFetch) getMeta('ol-ExposedSettings').hasLinkUrlFeature = true return } WithExtraFeatures.decorators = [ createFileModalDecorator({ refProviders: { mendeley: true, zotero: true }, }), ] export const ErrorImportingFileFromExternalURL = args => { useFetchMock(fetchMock => { mockCreateFileModalFetch(fetchMock) fetchMock.post('express:/project/:projectId/linked_file', 500, { overwriteRoutes: true, }) }) getMeta('ol-ExposedSettings').hasLinkUrlFeature = true return } ErrorImportingFileFromExternalURL.decorators = [createFileModalDecorator()] export const ErrorImportingFileFromReferenceProvider = args => { useFetchMock(fetchMock => { mockCreateFileModalFetch(fetchMock) fetchMock.post('express:/project/:projectId/linked_file', 500, { overwriteRoutes: true, }) }) return } ErrorImportingFileFromReferenceProvider.decorators = [ createFileModalDecorator({ refProviders: { mendeley: true, zotero: true }, }), ] export const FileLimitReached = args => { useFetchMock(mockCreateFileModalFetch) useScope({ project: { rootFolder: { _id: 'root-folder-id', name: 'rootFolder', docs: Array.from({ length: 10 }, (_, index) => ({ _id: `entity-${index}`, })), fileRefs: [], folders: [], }, }, }) return } FileLimitReached.decorators = [createFileModalDecorator()] export default { title: 'Editor / Modals / Create File', component: FileTreeModalCreateFile, decorators: [ScopeDecorator], }