mirror of
https://github.com/storybookjs/storybook.git
synced 2025-04-08 07:52:07 +08:00
28 lines
630 B
TypeScript
28 lines
630 B
TypeScript
import { ReactElement } from 'react';
|
|
import { Channel } from '@storybook/channels';
|
|
|
|
import { API } from './index';
|
|
import Store from './store';
|
|
|
|
export interface Provider {
|
|
channel?: Channel;
|
|
renderPreview?: () => ReactElement;
|
|
handleAPI(api: API): void;
|
|
[key: string]: any;
|
|
}
|
|
|
|
export interface SubAPI {
|
|
renderPreview?: Provider['renderPreview'];
|
|
}
|
|
|
|
export default ({ provider, api }: { provider: Provider; api: API; store: Store }) => {
|
|
provider.handleAPI(api);
|
|
|
|
if (provider.renderPreview) {
|
|
// eslint-disable-next-line no-param-reassign
|
|
api.renderPreview = provider.renderPreview;
|
|
}
|
|
|
|
return api;
|
|
};
|