import type { ReactNode } from 'react'; import React, { Suspense } from 'react'; import { useSearchParams, useServerInsertedHTML } from 'dumi'; import { createStyles } from 'antd-style'; import { getSandpackCssText } from '@codesandbox/sandpack-react'; import { Skeleton } from 'antd'; const OriginSandpack = React.lazy(() => import('./Sandpack')); const setup = { dependencies: { react: '^18.0.0', 'react-dom': '^18.0.0', antd: '^5.0.0', }, devDependencies: { '@types/react': '^18.0.0', '@types/react-dom': '^18.0.0', typescript: '^5', }, entry: 'index.tsx', }; const options = { activeFile: 'app.tsx' as never, visibleFiles: ['index.tsx', 'app.tsx', 'package.json'] as any, showLineNumbers: true, editorHeight: '500px', }; const indexContent = `import React from 'react'; import { createRoot } from 'react-dom/client'; import App from './app'; const root = createRoot(document.getElementById("root")); root.render(); `; const useStyle = createStyles(({ token, css }) => ({ fallback: css` width: 100%; > * { width: 100% !important; border-radius: 8px; } `, placeholder: css` color: ${token.colorTextDescription}; font-size: 16px; `, })); const SandpackFallback = () => { const { styles } = useStyle(); return (
Loading Demo...
); }; const Sandpack = ({ children }: { children: ReactNode }) => { const [searchParams] = useSearchParams(); useServerInsertedHTML(() => (