UNPKG

@plteam/chat-ui

Version:

CUI Kit is a free and open-source library for creating AI assistant chat interfaces, built with React, Material UI, and TypeScript

41 lines (40 loc) 1.48 kB
import * as React from 'react'; import { createTheme, ThemeProvider } from '@mui/material'; import { ThemeProvider as StyledProvider } from '@mui/material/styles'; import { createBreakpoints } from '@mui/system'; import createCache from '@emotion/cache'; import { CacheProvider } from '@emotion/react'; const defaultTheme = createTheme({ breakpoints: createBreakpoints({ values: { xs: 0, sm: 650, md: 900, lg: 1200, xl: 1536, }, }), }); const ChatTheme = ({ children, userTheme, mode = 'light', lightPalette, darkPalette }) => { const emotionCache = React.useMemo(() => { const cache = createCache({ key: 'css', prepend: true }); cache.compat = true; return cache; }, []); const palette = React.useMemo(() => ({ light: { mode: "light", ...lightPalette, }, dark: { mode: "dark", ...darkPalette, }, }), [lightPalette, darkPalette]); const chatTheme = React.useMemo(() => (createTheme({ ...defaultTheme, palette: palette[mode] })), [mode]); const theme = userTheme ?? chatTheme; return (React.createElement(CacheProvider, { value: emotionCache }, React.createElement(ThemeProvider, { theme: theme }, React.createElement(StyledProvider, { theme: theme }, children)))); }; export default React.memo(ChatTheme);