jiti-meet/react/features/base/ui/components/JitsiThemeProvider.web.tsx

47 lines
1.0 KiB
TypeScript
Raw Normal View History

import { ThemeProvider } from '@material-ui/core/styles';
import * as React from 'react';
2022-08-01 07:04:23 +00:00
import { connect } from 'react-redux';
import { IState } from '../../../app/types';
2022-08-01 07:04:23 +00:00
import BaseTheme from './BaseTheme.web';
type Props = {
/**
* The default theme or theme set through advanced branding.
*/
_theme: Object,
2022-08-01 07:04:23 +00:00
/**
* The children of the component.
*/
2022-08-01 07:04:23 +00:00
children: React.ReactNode
}
/**
* The theme provider for the web app.
*
* @param {Object} props - The props of the component.
* @returns {React.ReactNode}
*/
function JitsiThemeProvider(props: Props) {
return <ThemeProvider theme = { props._theme }>{ props.children }</ThemeProvider>;
}
/**
* Maps part of the Redux state to the props of this component.
*
* @param {Object} state - The Redux state.
* @returns {Props}
*/
function _mapStateToProps(state: IState) {
const { muiBrandedTheme } = state['features/dynamic-branding'];
return {
_theme: muiBrandedTheme || BaseTheme
};
}
export default connect(_mapStateToProps)(JitsiThemeProvider);