5180 fichiers 38.5 Mo 0 téléchargements 124 vues mis à jour il y a 4 heures ui
nitro-v36-with-renderer-v36 / src / hooks / useLiveState.ts
useLiveState.ts 580 o Télécharger le fichier
import { Dispatch, RefObject, SetStateAction, useCallback, useRef, useState } from 'react';

export const useLiveState = <T>(initialValue: T): [T, Dispatch<SetStateAction<T>>, RefObject<T>] => {
    const [value, setValue] = useState<T>(initialValue);
    const liveValue = useRef<T>(initialValue);

    const setLiveValue = useCallback((next: SetStateAction<T>) => {
        liveValue.current = typeof next === 'function' ? (next as (previous: T) => T)(liveValue.current) : next;

        setValue(liveValue.current);
    }, []);

    return [value, setLiveValue, liveValue];
};
15Sujets
1Dépôts
20Membres
7En ligne
Profile
Inscrit
Dernière visite
Messages
0
Votes positifs
0
Votes négatifs
0

Nous utilisons des cookies pour assurer le bon fonctionnement du site et améliorer votre expérience. en savoir plus

Autoriser