// --------------------------------------------------------------------------------------------------------------------- //! Imports // --------------------------------------------------------------------------------------------------------------------- // ------------------------------------------------------ React -------------------------------------------------------- import { useEffect, useState } from 'react'; // --------------------------------------------------------------------------------------------------------------------- // ------------------------------------------------ Recoil & Stockage -------------------------------------------------- import localforage from 'localforage'; import { useRecoilState } from 'recoil'; import { gameStateAtom } from '../../contexts/gameState'; // --------------------------------------------------------------------------------------------------------------------- // ------------------------------------------------------ Types -------------------------------------------------------- import { LeaderBoardItem } from '../../types/game'; // --------------------------------------------------------------------------------------------------------------------- // ----------------------------------------------------- Assets -------------------------------------------------------- import CalendarIcon from '../../assets/calendar'; import Replay from '../../assets/replay'; import Settings from '../../assets/settings'; import TimerIcon from '../../assets/timer'; import './styles.scss'; // --------------------------------------------------------------------------------------------------------------------- const store = localforage.createInstance({ name: 'leaderboard', driver: localforage.INDEXEDDB, version: 1.0, storeName: 'leaderboard', description: 'Store 10 best game time', }); const LeaderBoard = () => { const [, setGameState] = useRecoilState(gameStateAtom); const [data, setData] = useState([]); useEffect(() => { const getData = async () => { const storeData = await store.getItem('leaderboard'); if (storeData) { setData(storeData); } }; if (data.length === 0) { getData(); } }, [data.length]); return ( <>

Time Leaderboard

#

Date

Time

{data.map((item, index) => { return (
{index + 1} {item.date} {item.time}
); })}
); }; export default LeaderBoard;