Server IP : 192.158.238.246 / Your IP : 18.220.244.188 Web Server : LiteSpeed System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64 User : jenniferflocom ( 1321) PHP Version : 8.1.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/7779/task/7779/cwd/plugins/give/src/Views/Components/ListTable/hooks/ |
Upload File : |
import {useRef, useEffect, useCallback} from 'react'; // SWR middleware for keeping the data even if key changes. export default function lagData(useSWRNext) { return (key, fetcher, config) => { // Use a ref to store previous returned data. const laggyDataRef = useRef(); // Actual SWR hook. const swr = useSWRNext(key, fetcher, config); useEffect(() => { // Update ref if data is not undefined. if (swr.data !== undefined) { laggyDataRef.current = swr.data; } }, [swr.data]); // Expose a method to clear the laggy data, if any. const resetLaggy = useCallback(() => { laggyDataRef.current = undefined; }, []); // Fallback to previous data if the current data is undefined. const dataOrLaggyData = swr.data === undefined ? laggyDataRef.current : swr.data; // Is it showing previous data? const isLagging = swr.data === undefined && laggyDataRef.current !== undefined; // Also add a `isLagging` field to SWR. return Object.assign({}, swr, { data: dataOrLaggyData, isLagging, resetLaggy, }); }; }