mirror of
https://github.com/infiniflow/ragflow.git
synced 2025-12-08 20:42:30 +08:00
* feat: set chat configuration to backend * feat: exclude unEnabled variables * feat: delete chat dialog * feat: fetch conversation
35 lines
755 B
TypeScript
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();
|
|
}
|
|
};
|
|
}, []);
|
|
};
|