import { useState } from 'react' // 分數狀態接口 interface Score { correct: number total: number } // 進度追蹤狀態接口 interface ProgressTrackerState { score: Score showTaskListModal: boolean } // Hook返回接口 interface UseProgressTrackerReturn extends ProgressTrackerState { updateScore: (isCorrect: boolean) => void resetScore: () => void setShowTaskListModal: (show: boolean) => void getAccuracyPercentage: () => number getProgressPercentage: (completed: number, total: number) => number } export const useProgressTracker = (): UseProgressTrackerReturn => { // 進度追蹤狀態 const [score, setScore] = useState({ correct: 0, total: 0 }) const [showTaskListModal, setShowTaskListModal] = useState(false) // 更新分數 const updateScore = (isCorrect: boolean): void => { setScore(prev => ({ correct: isCorrect ? prev.correct + 1 : prev.correct, total: prev.total + 1 })) } // 重置分數 const resetScore = (): void => { setScore({ correct: 0, total: 0 }) } // 獲取準確率百分比 const getAccuracyPercentage = (): number => { if (score.total === 0) return 0 return Math.round((score.correct / score.total) * 100) } // 獲取進度百分比 const getProgressPercentage = (completed: number, total: number): number => { if (total === 0) return 0 return Math.round((completed / total) * 100) } return { // 狀態 score, showTaskListModal, // 操作函數 updateScore, resetScore, setShowTaskListModal, getAccuracyPercentage, getProgressPercentage } }