import { useCallback } from "react"; interface ReadingTrackerData { chapterPage: { [chapterId: number]: number }; } export const useReadingTracker = () => { const setCurrentChapterPage = useCallback( (id: number, pageNumber: number) => { const jsonString = localStorage.getItem("readingTrackerData"); let readingTrackerData: ReadingTrackerData; try { readingTrackerData = jsonString ? JSON.parse(jsonString) : { chapterPage: {} }; } catch (error) { console.error("Error parsing reading tracker data:", error); readingTrackerData = { chapterPage: {} }; } const updatedData = { ...readingTrackerData, chapterPage: { ...readingTrackerData.chapterPage, [id]: pageNumber, }, }; localStorage.setItem("readingTrackerData", JSON.stringify(updatedData)); }, [], ); const getCurrentChapterPage = useCallback( (id: number): number | undefined => { const jsonString = localStorage.getItem("readingTrackerData"); if (!jsonString) return undefined; try { const readingTrackerData: ReadingTrackerData = JSON.parse(jsonString); return readingTrackerData.chapterPage[id]; } catch (error) { console.error("Error parsing reading tracker data:", error); return undefined; } }, [], ); return { setCurrentChapterPage, getCurrentChapterPage }; };