@acrsolutions/chat-components
Version:
Un set di componenti per la creazione di un'applicazione di messaggistica
21 lines (20 loc) • 1.28 kB
JavaScript
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 }) }) }) }));
};