5180 fichiers 38.5 Mo 0 téléchargements 221 vues mis à jour il y a 5 heures ui
nitro-v36-with-renderer-v36 / src / common / utils / FriendlyTimeView.tsx
FriendlyTimeView.tsx 923 o Télécharger le fichier
import { FC, useEffect, useMemo, useState } from 'react';
import { FriendlyTime } from '../../api';
import { Base, BaseProps } from '../Base';

interface FriendlyTimeViewProps extends BaseProps<HTMLDivElement> {
    seconds: number;
    isShort?: boolean;
}

export const FriendlyTimeView: FC<FriendlyTimeViewProps> = (props) => {
    const { seconds = 0, isShort = false, children = null, ...rest } = props;
    const [updateId, setUpdateId] = useState(-1);

    const getStartSeconds = useMemo(() => Math.round(new Date().getSeconds()) - seconds, [seconds]);

    useEffect(() => {
        const interval = setInterval(() => setUpdateId((prevValue) => prevValue + 1), 10000);

        return () => clearInterval(interval);
    }, []);

    const value = Math.round(new Date().getSeconds()) - getStartSeconds;

    return <Base {...rest}>{isShort ? FriendlyTime.shortFormat(value) : FriendlyTime.format(value)}</Base>;
};
15Sujets
1Dépôts
20Membres
2En 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