@mantine/form
Version:
Mantine form management library
57 lines (56 loc) • 2.48 kB
JavaScript
"use client";
require("../../_virtual/_rolldown/runtime.cjs");
const require_change_error_indices = require("../../lists/change-error-indices.cjs");
const require_reorder_errors = require("../../lists/reorder-errors.cjs");
const require_reorder_path = require("../../paths/reorder-path.cjs");
const require_insert_path = require("../../paths/insert-path.cjs");
const require_remove_path = require("../../paths/remove-path.cjs");
const require_replace_path = require("../../paths/replace-path.cjs");
let react = require("react");
//#region packages/@mantine/form/src/hooks/use-form-list/use-form-list.ts
function useFormList({ $values, $errors, $status, $watch }) {
return {
reorderListItem: (0, react.useCallback)((path, payload) => {
const previousValues = $values.refValues.current;
$status.clearFieldDirty(path);
$errors.setErrors((errs) => require_reorder_errors.reorderErrors(path, payload, errs));
$values.setValues({
values: require_reorder_path.reorderPath(path, payload, $values.refValues.current),
updateState: true
});
$watch.notifyWatchSubscribers(previousValues);
}, []),
removeListItem: (0, react.useCallback)((path, index) => {
const previousValues = $values.refValues.current;
$status.clearFieldDirty(path);
$errors.setErrors((errs) => require_change_error_indices.changeErrorIndices(path, index, errs, -1));
$values.setValues({
values: require_remove_path.removePath(path, index, $values.refValues.current),
updateState: true
});
$watch.notifyWatchSubscribers(previousValues);
}, []),
insertListItem: (0, react.useCallback)((path, item, index) => {
const previousValues = $values.refValues.current;
$status.clearFieldDirty(path);
$errors.setErrors((errs) => require_change_error_indices.changeErrorIndices(path, index, errs, 1));
$values.setValues({
values: require_insert_path.insertPath(path, item, index, $values.refValues.current),
updateState: true
});
$watch.notifyWatchSubscribers(previousValues);
}, []),
replaceListItem: (0, react.useCallback)((path, index, item) => {
const previousValues = $values.refValues.current;
$status.clearFieldDirty(path);
$values.setValues({
values: require_replace_path.replacePath(path, item, index, $values.refValues.current),
updateState: true
});
$watch.notifyWatchSubscribers(previousValues);
}, [])
};
}
//#endregion
exports.useFormList = useFormList;
//# sourceMappingURL=use-form-list.cjs.map