wix-storybook-utils
Version:
Utilities for automated component documentation within Storybook
33 lines • 2.18 kB
JavaScript
import * as React from 'react';
import Markdown from '../Markdown';
import { FieldsDocumentation } from './fields-documentation';
import { Code } from '../Sections/views/import-example/Code';
import { flatten } from './flatten';
import { makeImportCode } from './make-import-code';
var extractNested = function (descriptors) {
return descriptors.reduce(function (acc, descriptor) {
descriptor.type === 'object'
? acc.nested.push(descriptor)
: acc.flat.push(descriptor);
return acc;
}, { flat: [], nested: [] });
};
export var DriverDocumentation = function (_a) {
var dataHook = _a.dataHook, descriptor = _a.descriptor, metadata = _a.metadata, testkitConfig = _a.testkitConfig, title = _a.title, unidriver = _a.unidriver, hideImport = _a.hideImport;
var _b = extractNested(descriptor), nested = _b.nested, flat = _b.flat;
return (React.createElement("div", { "data-hook": dataHook },
React.createElement("h2", { "data-hook": "auto-testkit-driver-name" }, title),
testkitConfig && !hideImport && (React.createElement(Code, { dataHook: "auto-testkit-driver-import-code" }, makeImportCode({ testkit: testkitConfig, metadata: metadata }))),
unidriver && (React.createElement(Markdown, { source: "> **NOTE**: All UniDriver methods are asynchronous, use them with `async`/`await`!" })),
flat.length > 0 && (React.createElement("div", { "data-hook": "auto-testkit-driver-descriptor" },
React.createElement(FieldsDocumentation, { units: flat }))),
nested.length > 0 && (React.createElement("div", null,
React.createElement("h4", null, "This Testkit has nested API"),
nested.map(function (_a) {
var name = _a.name, props = _a.props;
return (React.createElement("div", { key: props, "data-hook": "auto-testkit-driver-descriptor" },
React.createElement(Markdown, { source: "Access these methods through `".concat(name, "` namespace ") }),
React.createElement(FieldsDocumentation, { units: flatten(props, name) })));
})))));
};
//# sourceMappingURL=driver-documentation.js.map