@toolpad/core
Version:
Dashboard framework powered by Material UI.
62 lines (59 loc) • 2.34 kB
JavaScript
'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);
}