import type { Plugin } from '@modern-js/runtime-core'; import React, { useContext } from 'react'; export const DesignTokenContext = React.createContext({}); export const useDesignTokens = (): IDesignTokens => useContext(DesignTokenContext); export default ( options: { token?: Record; useStyledComponentsThemeProvider?: boolean; useDesignTokenContext?: boolean; } = {}, ): Plugin => ({ name: '@modern-js/plugin-design-token', setup: () => ({ hoc({ App }, next) { return next({ App: (props: any) => { const { token = {}, useStyledComponentsThemeProvider = false, useDesignTokenContext = false, } = options; if (useStyledComponentsThemeProvider && useDesignTokenContext) { const { ThemeProvider } = require('@modern-js/runtime-core/styled'); return ( ); } else if (useStyledComponentsThemeProvider) { const { ThemeProvider } = require('@modern-js/runtime-core/styled'); return ( ); } else if (useDesignTokenContext) { return ( ); } else { return ; } }, }); }, }), });