Files
ragflow/web/src/hooks/commonHooks.ts
balibabu 5a0f1d2b84 feat: fetch conversation and delete chat dialog (#69)
* feat: set chat configuration to backend

* feat: exclude unEnabled variables

* feat: delete chat dialog

* feat: fetch conversation
2024-02-22 17:14:25 +08:00

35 lines
755 B
TypeScript

import isEqual from 'lodash/isEqual';
import { useEffect, useRef, useState } from 'react';
export const useSetModalState = () => {
const [visible, setVisible] = useState(false);
const showModal = () => {
setVisible(true);
};
const hideModal = () => {
setVisible(false);
};
return { visible, showModal, hideModal };
};
export const useDeepCompareEffect = (
effect: React.EffectCallback,
deps: React.DependencyList,
) => {
const ref = useRef<React.DependencyList>();
let callback: ReturnType<React.EffectCallback> = () => {};
if (!isEqual(deps, ref.current)) {
callback = effect();
ref.current = deps;
}
useEffect(() => {
return () => {
if (callback) {
callback();
}
};
}, []);
};