@wq/material-web
Version:
Web bindings for @wq/material
45 lines (44 loc) • 1.13 kB
JavaScript
import React, { useMemo } from "react";
import { App as DefaultApp, usePlugin } from "@wq/react";
import {
createTheme as createMuiTheme,
ThemeProvider,
CssBaseline,
} from "@mui/material";
export default function App() {
const { theme } = usePlugin("material").config,
muiTheme = useMemo(() => createTheme(theme), [theme]);
return /*#__PURE__*/ React.createElement(
ThemeProvider,
{
theme: muiTheme,
},
/*#__PURE__*/ React.createElement(CssBaseline, null),
/*#__PURE__*/ React.createElement(DefaultApp, null)
);
}
function createTheme(theme) {
const { type, primary, secondary, background } = theme;
const palette = theme.palette || {};
if (type) {
palette.mode = type;
}
if (primary) {
palette.primary = {
main: primary,
};
}
if (secondary) {
palette.secondary = {
main: secondary,
};
}
if (background) {
palette.background = {
paper: background,
};
}
return createMuiTheme({
palette,
});
}