UNPKG

1.44 kBJavaScriptView Raw
1import * as React from 'react';
2import { jsx as _jsx } from "react/jsx-runtime";
3var defaultContextValue = {
4 disableDefaultClasses: false
5};
6var ClassNameConfiguratorContext = /*#__PURE__*/React.createContext(defaultContextValue);
7/**
8 * @ignore - internal hook.
9 *
10 * Wraps the `generateUtilityClass` function and controls how the classes are generated.
11 * Currently it only affects whether the classes are applied or not.
12 *
13 * @returns Function to be called with the `generateUtilityClass` function specific to a component to generate the classes.
14 */
15export function useClassNamesOverride(generateUtilityClass) {
16 var _React$useContext = React.useContext(ClassNameConfiguratorContext),
17 disableDefaultClasses = _React$useContext.disableDefaultClasses;
18 return function (slot) {
19 if (disableDefaultClasses) {
20 return '';
21 }
22 return generateUtilityClass(slot);
23 };
24}
25
26/**
27 * Allows to configure the components within to not apply any built-in classes.
28 */
29export default function ClassNameConfigurator(props) {
30 var disableDefaultClasses = props.disableDefaultClasses,
31 children = props.children;
32 var contextValue = React.useMemo(function () {
33 return {
34 disableDefaultClasses: disableDefaultClasses != null ? disableDefaultClasses : false
35 };
36 }, [disableDefaultClasses]);
37 return /*#__PURE__*/_jsx(ClassNameConfiguratorContext.Provider, {
38 value: contextValue,
39 children: children
40 });
41}
\No newline at end of file