UNPKG

@acrsolutions/chat-components

Version:

Un set di componenti per la creazione di un'applicazione di messaggistica

21 lines (20 loc) 1.28 kB
import { jsx as _jsx } from "react/jsx-runtime"; import merge from 'lodash/fp/merge'; import React, { useMemo } from 'react'; import { ThemeProvider as StyledThemeProvider } from 'styled-components'; import { ThemeProvider as MuiThemeProvider } from '@mui/material'; import { ThemeConfigProvider } from '../../components/ThemeConfigContext'; import { adaptToMuiTheme, adaptToStyledTheme, } from '../theme/styledThemeAdapter'; import { defaultTheme } from './theme'; import { AtomicLayoutFilteringProps } from '../AtomicLayoutFilteringProps'; /** * * @param theme - L'utente può passare un tema personalizzato che sovrascriverà il tema di default. * @param children - I componenti figli che utilizzeranno il tema fornito. */ export const LibThemeProvider = ({ theme, children, }) => { const mergedTheme = useMemo(() => merge(defaultTheme, theme), [theme]); const styledTheme = useMemo(() => adaptToStyledTheme(mergedTheme), [mergedTheme]); const muiTheme = useMemo(() => adaptToMuiTheme(mergedTheme), [mergedTheme]); return (_jsx(AtomicLayoutFilteringProps, { children: _jsx(ThemeConfigProvider, { theme: mergedTheme, children: _jsx(StyledThemeProvider, { theme: styledTheme, children: _jsx(MuiThemeProvider, { theme: muiTheme, children: children }) }) }) })); };