UNPKG

@coocoon/react-awesome-query-builder

Version:

User-friendly query builder for React. Demo: https://ukrbublik.github.io/react-awesome-query-builder

94 lines (81 loc) 2.6 kB
import React from "react"; import { ThemeProvider, createTheme } from "@mui/material/styles"; import { ConfirmProvider, useConfirm } from "material-ui-confirm"; import LocalizationProvider from "@mui/lab/LocalizationProvider"; import AdapterMoment from "@mui/lab/AdapterMoment"; // TODO: set moment to dayjs // value widgets import MuiTextWidget from "./value/MuiText"; import MuiTextAreaWidget from "./value/MuiTextArea"; import MuiDateWidget from "./value/MuiDate"; import MuiDateTimeWidget from "./value/MuiDateTime"; import MuiTimeWidget from "./value/MuiTime"; import MuiSelectWidget from "./value/MuiSelect"; import MuiNumberWidget from "./value/MuiNumber"; import MuiSliderWidget from "./value/MuiSlider"; import MuiRangeWidget from "./value/MuiRange"; import MuiBooleanWidget from "./value/MuiBoolean"; import MuiMultiSelectWidget from "./value/MuiMultiSelect"; import MuiAutocompleteWidget from "./value/MuiAutocomplete"; // field select widgets import MuiFieldSelect from "./core/MuiFieldSelect"; import MuiFieldAutocomplete from "./core/MuiFieldAutocomplete"; // core components import MuiButton from "./core/MuiButton"; import MuiButtonGroup from "./core/MuiButtonGroup"; import MuiConjs from "./core/MuiConjs"; import MuiSwitch from "./core/MuiSwitch"; import MuiValueSources from "./core/MuiValueSources"; import MuiConfirm from "./core/MuiConfirm"; // provider const MuiProvider = ({config, children}) => { const settingsTheme = config.settings.theme || {}; const settingsLocale = config.settings.locale || {}; const themeConfig = settingsTheme.mui; const locale = settingsLocale.mui; const theme = createTheme(themeConfig, locale, { palette: { neutral: { main: "#64748B", contrastText: "#fff" }, } }); const base = (<div className="mui">{children}</div>); const withProviders = ( <LocalizationProvider dateAdapter={AdapterMoment} > <ConfirmProvider> {base} </ConfirmProvider> </LocalizationProvider> ); const withTheme = theme ? ( <ThemeProvider theme={theme}> {withProviders} </ThemeProvider> ) : withProviders; return withTheme; }; export default { MuiTextWidget, MuiTextAreaWidget, MuiDateWidget, MuiDateTimeWidget, MuiTimeWidget, MuiSelectWidget, MuiNumberWidget, MuiSliderWidget, MuiRangeWidget, MuiBooleanWidget, MuiMultiSelectWidget, MuiAutocompleteWidget, MuiFieldSelect, MuiFieldAutocomplete, MuiButton, MuiButtonGroup, MuiConjs, MuiSwitch, MuiValueSources, MuiConfirm, MuiUseConfirm: useConfirm, MuiProvider, };