paradiego
This commit is contained in:
2
node_modules/@mui/utils/useControlled/index.d.ts
generated
vendored
Normal file
2
node_modules/@mui/utils/useControlled/index.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
export { default } from './useControlled';
|
||||
export * from './useControlled';
|
||||
13
node_modules/@mui/utils/useControlled/index.js
generated
vendored
Normal file
13
node_modules/@mui/utils/useControlled/index.js
generated
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
"use strict";
|
||||
|
||||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
Object.defineProperty(exports, "default", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _useControlled.default;
|
||||
}
|
||||
});
|
||||
var _useControlled = _interopRequireDefault(require("./useControlled"));
|
||||
6
node_modules/@mui/utils/useControlled/package.json
generated
vendored
Normal file
6
node_modules/@mui/utils/useControlled/package.json
generated
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"module": "../esm/useControlled/index.js",
|
||||
"main": "./index.js",
|
||||
"types": "./index.d.ts"
|
||||
}
|
||||
22
node_modules/@mui/utils/useControlled/useControlled.d.ts
generated
vendored
Normal file
22
node_modules/@mui/utils/useControlled/useControlled.d.ts
generated
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
export interface UseControlledProps<T = unknown> {
|
||||
/**
|
||||
* Holds the component value when it's controlled.
|
||||
*/
|
||||
controlled: T | undefined;
|
||||
/**
|
||||
* The default value when uncontrolled.
|
||||
*/
|
||||
default: T | undefined;
|
||||
/**
|
||||
* The component name displayed in warnings.
|
||||
*/
|
||||
name: string;
|
||||
/**
|
||||
* The name of the state variable displayed in warnings.
|
||||
*/
|
||||
state?: string;
|
||||
}
|
||||
|
||||
export default function useControlled<T = unknown>(
|
||||
props: UseControlledProps<T>,
|
||||
): [T, (newValue: T | ((prevValue: T) => T)) => void];
|
||||
47
node_modules/@mui/utils/useControlled/useControlled.js
generated
vendored
Normal file
47
node_modules/@mui/utils/useControlled/useControlled.js
generated
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
"use strict";
|
||||
'use client';
|
||||
|
||||
// TODO: uncomment once we enable eslint-plugin-react-compiler // eslint-disable-next-line react-compiler/react-compiler -- process.env never changes, dependency arrays are intentionally ignored
|
||||
/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */
|
||||
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = useControlled;
|
||||
var React = _interopRequireWildcard(require("react"));
|
||||
function useControlled({
|
||||
controlled,
|
||||
default: defaultProp,
|
||||
name,
|
||||
state = 'value'
|
||||
}) {
|
||||
// isControlled is ignored in the hook dependency lists as it should never change.
|
||||
const {
|
||||
current: isControlled
|
||||
} = React.useRef(controlled !== undefined);
|
||||
const [valueState, setValue] = React.useState(defaultProp);
|
||||
const value = isControlled ? controlled : valueState;
|
||||
if (process.env.NODE_ENV !== 'production') {
|
||||
React.useEffect(() => {
|
||||
if (isControlled !== (controlled !== undefined)) {
|
||||
console.error([`MUI: A component is changing the ${isControlled ? '' : 'un'}controlled ${state} state of ${name} to be ${isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled ${name} ` + 'element for the lifetime of the component.', "The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.", 'More info: https://fb.me/react-controlled-components'].join('\n'));
|
||||
}
|
||||
}, [state, name, controlled]);
|
||||
const {
|
||||
current: defaultValue
|
||||
} = React.useRef(defaultProp);
|
||||
React.useEffect(() => {
|
||||
// Object.is() is not equivalent to the === operator.
|
||||
// See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is for more details.
|
||||
if (!isControlled && !Object.is(defaultValue, defaultProp)) {
|
||||
console.error([`MUI: A component is changing the default ${state} state of an uncontrolled ${name} after being initialized. ` + `To suppress this warning opt to use a controlled ${name}.`].join('\n'));
|
||||
}
|
||||
}, [JSON.stringify(defaultProp)]);
|
||||
}
|
||||
const setValueIfUncontrolled = React.useCallback(newValue => {
|
||||
if (!isControlled) {
|
||||
setValue(newValue);
|
||||
}
|
||||
}, []);
|
||||
return [value, setValueIfUncontrolled];
|
||||
}
|
||||
Reference in New Issue
Block a user