import * as React from 'react'; import get from 'lodash/get'; import { Metadata } from '../typings/metadata'; import { StoryConfig } from '../typings/story-config'; import { DriverDocumentation } from './driver-documentation'; import { UnifiedTestkitDocumentation } from './unified-testkit-documentation'; import { isUnidriver, determineTestkit } from './determine-testkit'; import Markdown from '../Markdown'; interface Props { metadata: Metadata; storyConfig: StoryConfig; hideImport?: boolean; } const unidriverFirst = drivers => { const [unidrivers, others] = drivers.reduce( ([uni, rest], driver) => { if (isUnidriver(driver.file)) { uni.push(driver); } else { rest.push(driver); } return [uni, rest]; }, [[], []], ); return [...unidrivers, ...others]; }; const createDriverDocumentation = (metadata, storyConfig, hideImport) => { return unidriverFirst(metadata.drivers) .filter(({ error }) => !error) .map(({ file, descriptor }) => { const { type, title } = determineTestkit({ fileName: file, displayName: metadata.displayName, }); return ( ); }); }; const createUnifiedTestkitDocumentation = ( metadata, storyConfig, hideImport, ) => { return ( ); }; export const AutoTestkit = ({ metadata, storyConfig, hideImport }: Props) => (
{get(storyConfig, 'config.unifiedTestkit') ? (

{metadata.displayName} Testkit

) : (

{metadata.displayName} Testkits

)} {get(storyConfig, 'config.testkitsWarning') && (
)} {get(storyConfig, 'config.unifiedTestkit') ? createUnifiedTestkitDocumentation(metadata, storyConfig, hideImport) : createDriverDocumentation(metadata, storyConfig, hideImport)}
);