rsuite
Version:
A suite of react components
17 lines • 461 B
JavaScript
'use client';
import { useRef, useEffect } from 'react';
import { useFormContext } from "../../Form/FormContext.js";
export function useRegisterModel(name, rule) {
const {
pushFieldRule,
removeFieldRule
} = useFormContext() || {};
const refRule = useRef(rule);
refRule.current = rule;
useEffect(() => {
pushFieldRule?.(name, refRule);
return () => {
removeFieldRule?.(name);
};
}, [name, pushFieldRule, removeFieldRule]);
}