@mantine/hooks
Version:
A collection of 50+ hooks for state and UI management
24 lines (23 loc) • 792 B
JavaScript
"use client";
import { useState } from "react";
//#region packages/@mantine/hooks/src/use-validated-state/use-validated-state.ts
function useValidatedState(initialValue, validate, initialValidationState) {
const [value, setValue] = useState(initialValue);
const [lastValidValue, setLastValidValue] = useState(validate(initialValue) ? initialValue : void 0);
const [valid, setValid] = useState(typeof initialValidationState === "boolean" ? initialValidationState : validate(initialValue));
const onChange = (val) => {
if (validate(val)) {
setLastValidValue(val);
setValid(true);
} else setValid(false);
setValue(val);
};
return [{
value,
lastValidValue,
valid
}, onChange];
}
//#endregion
export { useValidatedState };
//# sourceMappingURL=use-validated-state.mjs.map