xph-form
Version:
This is a configurable form component that supports React
31 lines (30 loc) • 980 B
JavaScript
import { useRef } from "react";
const useFormCollapse = (formProps, formItemRefs) => {
const { collapsible, collapseNum } = formProps;
const collapseRef = useRef();
const onClickCollapseToTrue = () => {
formItemRefs.current?.forEach((ref) => {
if (ref.current) {
const { itemIndex } = ref.current;
const flag = itemIndex >= collapseNum && collapsible;
flag && ref.current.setItemCollapse(true);
}
});
};
const onClickCollapseToFalse = () => {
formItemRefs.current?.forEach((ref) => {
if (ref.current) {
const { itemCollapse } = ref.current;
itemCollapse && ref.current.setItemCollapse(false);
}
});
};
return {
collapsible,
collapseNum: collapseNum,
collapseRef,
onClickCollapseToTrue,
onClickCollapseToFalse,
};
};
export default useFormCollapse;