@knine-sdk/react
Version:
React helpers for Knine Finance projects. Part of Knine JS SDK
24 lines (21 loc) • 658 B
JavaScript
import { useRef, useState, useEffect, useCallback } from 'react';
const useMountedState = (initialState) => {
const mountedRef = useRef(false);
const [state, setState] = useState(initialState);
useEffect(() => {
mountedRef.current = true;
return () => {
mountedRef.current = false;
};
}, []);
useEffect(() => {
setState(initialState);
}, [initialState]);
const setMountedState = useCallback((...args) => {
if (!mountedRef.current)
return;
setState(...args);
}, []);
return [state, setMountedState];
};
export { useMountedState };