UNPKG

@toolpad/core

Version:

Dashboard framework powered by Material UI.

62 lines (59 loc) 2.34 kB
'use client'; import * as React from 'react'; import PropTypes from 'prop-types'; import { useTheme } from '@mui/material/styles'; import DEFAULT_LOCALE from "../locales/en.js"; import { jsx as _jsx } from "react/jsx-runtime"; export const LocalizationContext = /*#__PURE__*/React.createContext({}); const LocalizationProvider = function LocalizationProvider(props) { const { localeText: propsLocaleText, children } = props; const theme = useTheme(); // @ts-ignore const themeLocaleText = theme?.components?.MuiLocalizationProvider?.defaultProps?.localeText; const defaultLocaleText = DEFAULT_LOCALE.components.MuiLocalizationProvider.defaultProps.localeText; /* The order of overrides is: * 1. The `localeText` prop of the `AppProvider` supersedes * 2. The localeText provided as an argument to the `createTheme` function, which supersedes * 3. The default locale text */ const localeText = React.useMemo(() => ({ ...defaultLocaleText, ...themeLocaleText, ...propsLocaleText }), [defaultLocaleText, themeLocaleText, propsLocaleText]); return /*#__PURE__*/_jsx(LocalizationContext.Provider, { value: localeText, children: children }); }; process.env.NODE_ENV !== "production" ? LocalizationProvider.propTypes /* remove-proptypes */ = { // ┌────────────────────────────── Warning ──────────────────────────────┐ // │ These PropTypes are generated from the TypeScript type definitions. │ // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │ // └─────────────────────────────────────────────────────────────────────┘ /** * @ignore */ children: PropTypes.node, /** * Locale for components texts */ localeText: PropTypes.object } : void 0; export { LocalizationProvider }; /** * * Demos: * * - [Sign-in Page](https://mui.com/toolpad/core/react-sign-in-page/) * * API: * * - [LocalizationProvider API](https://mui.com/toolpad/core/api/localization-provider) */ export function useLocaleText() { return React.useContext(LocalizationContext); }