ant-design/.dumi/theme/builtins/Previewer/Previewer.tsx

39 lines
923 B
TypeScript
Raw Normal View History

import React from 'react';
2023-08-21 14:38:22 +08:00
import type { IPreviewerProps } from 'dumi';
import { LiveProvider, useTabMeta } from 'dumi';
2023-08-21 14:38:22 +08:00
import CodePreviewer from './CodePreviewer';
import DesignPreviewer from './DesignPreviewer';
export interface AntdPreviewerProps extends IPreviewerProps {
originDebug?: IPreviewerProps['debug'];
}
const Previewer: React.FC<AntdPreviewerProps> = (props) => {
const tab = useTabMeta();
if (tab?.frontmatter.title === 'Design') {
return <DesignPreviewer {...props} />;
}
const codePreviewer = <CodePreviewer {...props} />;
if (props.live === false || props.iframe) {
return codePreviewer;
}
return (
<LiveProvider
initialCode={
Object.entries(props.asset.dependencies).filter(([, { type }]) => type === 'FILE')[0][1]
.value
}
demoId={props.asset.id}
>
{codePreviewer}
</LiveProvider>
);
2023-08-21 14:38:22 +08:00
};
export default Previewer;