import type { PropsWithChildren } from 'react'; import React, { useMemo } from 'react'; import getTheme from './getTheme'; import { defaultScale, swagSystemPalette, workSystemPalette, jobsSystemPalette, walletSystemPalette, eBensSystemPalette, swagDarkSystemPalette, ehWorkDarkSystemPalette, swagLightSystemPalette, swagLightJobsSystemPalette, } from './global'; import ThemeProvider from './ThemeProvider'; type ThemeName = | 'swag' | 'swagDark' | 'swagLight' | 'work' | 'jobs' | 'wallet' | 'eBens' | 'ehWorkDark' | 'ehWork' | 'ehJobs'; const ThemeSwitcher = ({ name = 'swag', children, }: { name?: ThemeName; children: React.ReactNode; }) => { const theme = useMemo(() => { switch (name) { case 'swag': return getTheme(defaultScale, swagSystemPalette); case 'work': return getTheme(defaultScale, workSystemPalette); case 'jobs': return getTheme(defaultScale, jobsSystemPalette); case 'wallet': return getTheme(defaultScale, walletSystemPalette); case 'eBens': return getTheme(defaultScale, eBensSystemPalette); case 'swagDark': return getTheme(defaultScale, swagDarkSystemPalette); case 'swagLight': case 'ehWork': return getTheme(defaultScale, swagLightSystemPalette); case 'ehWorkDark': return getTheme(defaultScale, ehWorkDarkSystemPalette); case 'ehJobs': return getTheme(defaultScale, swagLightJobsSystemPalette); } }, [name]); return {children}; }; export const withTheme =

>( C: React.ComponentType

, themeName: ThemeName ) => (props: PropsWithChildren

) => { return ( ); }; export default ThemeSwitcher;