import { ColumnCenter, RowProps } from '@past3lle/components' import { StaticGlobalCssProvider, ThemedGlobalCssProvider } from '@past3lle/theme' import React, { ReactNode, StrictMode, useMemo } from 'react' import { useTheme } from 'styled-components' import { SkillForgeConnectedDataProviders, SkillForgeDisconnectedDataProviders } from '../state' import { CustomStaticGlobalCss, CustomThemeGlobalCss } from '../theme/global' import { SkillForgeWidgetConfig } from '../types/appConfig' import { SkillForge as SkillForgeComponent } from './Board' import { ConnectionInfoButton, InventoryButton, NetworkInfoButton, OpenWeb3ModalButton, ShopExternalLinkButton, ThemeChangerButton } from './Common/Button' import { SkillForgeHeader as SkillForgeConnectedHeader } from './Header' const CssProviders = () => { const { assetsMap } = useTheme() return ( <> ) } interface SkillForgeProps { config: SkillForgeWidgetConfig } /** * @name SkillForge * @description Connected version of the base SkillForge component. Attaches Web3/Wagmi providers * @param SkillForgeProps * @example interface SkillForgeProps: { config: { appName: string appTheme: SkillForgeThemeByModes // --> see type SkillForgeTheme provider: { projectId: string } } } */ function SkillForge({ config, children, ...boxProps }: SkillForgeProps & RowProps & { children?: ReactNode }) { const Provider = useMemo( () => (config.web3.standalone ? SkillForgeDisconnectedDataProviders : SkillForgeConnectedDataProviders), [config.web3.standalone] ) return ( {children} ) } export { // Core comps SkillForge, SkillForgeComponent, SkillForgeConnectedHeader, // Buttons InventoryButton, NetworkInfoButton, ThemeChangerButton, OpenWeb3ModalButton, ConnectionInfoButton, ShopExternalLinkButton, // Types type SkillForgeProps }