diff --git a/apps/web/src/components/QuestionReview.tsx b/apps/web/src/components/QuestionReview.tsx
index 1fae4d6..3463cfa 100644
--- a/apps/web/src/components/QuestionReview.tsx
+++ b/apps/web/src/components/QuestionReview.tsx
@@ -1,6 +1,6 @@
import CodeBlock from '@/components/CodeBlock'
import Icon from '@/components/Icons'
-import { GRADUATE_BOX, TYPE_META, type Question, type WrongEntryMeta } from '@easylearn/core'
+import { TYPE_META, type Question, type WrongEntryMeta } from '@easylearn/core'
interface QuestionReviewProps {
question: Question
@@ -33,9 +33,6 @@ const QuestionReview = ({ question, saved, onToggleSave, meta }: QuestionReviewP
{meta && (
答錯 {meta.count} 次
-
- 熟練度 {meta.box}/{GRADUATE_BOX}
-
{meta.lastWrong && 最近答錯:{meta.lastWrong}}
)}
diff --git a/apps/web/src/hooks/useProgress.ts b/apps/web/src/hooks/useProgress.ts
index 382dc4d..c5476a5 100644
--- a/apps/web/src/hooks/useProgress.ts
+++ b/apps/web/src/hooks/useProgress.ts
@@ -15,7 +15,8 @@ const defaultProgress: Progress = {
xp: 0,
// { [levelId]: { best: 答對題數, total: 題數 } }
completedLevels: {},
- // 錯題本:{ [questionId]: { count: 答錯次數, lastWrong: 'YYYY-MM-DD', box: 熟練度 1~GRADUATE_BOX } }
+ // 錯題本:{ [questionId]: { count: 答錯次數, lastWrong: 'YYYY-MM-DD', box } }(box 是舊版 Leitner
+ // 盒制留下的欄位,現在答對一次就直接移出錯題本,box 不再影響移出時機,維持型別/DB 相容)
wrongIds: {},
// 收藏題目:{ [questionId]: true }
savedIds: {},
@@ -113,8 +114,7 @@ export const useProgress = () => {
})()
}, [isLoaded, isSignedIn])
- // 每答一題就更新錯題本(Leitner 盒制):
- // 答錯 → 記入/重置回第 1 盒;答對 → 升一盒,超過畢業盒才移出錯題本
+ // 每答一題就更新錯題本:答錯 → 記入/重置錯題紀錄;答對 → 這題若在錯題本裡就直接移出
// 同時累計每日/分科作答統計,供學習數據頁使用
const answerQuestion = (questionId: string, correct: boolean, chapterId?: string) => {
setProgress((p) => applyAnswer(p, questionId, correct, chapterId))
diff --git a/apps/web/src/index.css b/apps/web/src/index.css
index be93932..ce6e57b 100644
--- a/apps/web/src/index.css
+++ b/apps/web/src/index.css
@@ -263,6 +263,13 @@ button {
margin: 24px 0 12px;
}
+.section-hint {
+ margin: -8px 0 12px;
+ font-size: 12px;
+ line-height: 1.6;
+ color: var(--ink-faint);
+}
+
/* ── 首頁 ─────────────────────────── */
.app-title {
font-family: var(--font-mono);
diff --git a/apps/web/src/screens/Profile.tsx b/apps/web/src/screens/Profile.tsx
index 3edcb06..6a858cf 100644
--- a/apps/web/src/screens/Profile.tsx
+++ b/apps/web/src/screens/Profile.tsx
@@ -4,8 +4,7 @@ import AccountHeader from '@/components/AccountHeader'
import GrowthHistory from '@/components/GrowthHistory'
import Mascot from '@/components/Mascot'
import Icon from '@/components/Icons'
-import { getStage, getNextStage } from '@/lib/stages'
-import { chapters, type Progress } from '@easylearn/core'
+import { chapters, getStage, getNextStage, type Progress } from '@easylearn/core'
interface ProfileProps {
progress: Progress
diff --git a/apps/web/src/screens/Quiz.tsx b/apps/web/src/screens/Quiz.tsx
index 045051c..4198c4b 100644
--- a/apps/web/src/screens/Quiz.tsx
+++ b/apps/web/src/screens/Quiz.tsx
@@ -2,8 +2,7 @@ import { useState } from 'react'
import QuestionCard from '@/components/QuestionCard'
import Mascot from '@/components/Mascot'
import Icon from '@/components/Icons'
-import { getStage } from '@/lib/stages'
-import { getChapterIdForQuestion, type Level, type Progress } from '@easylearn/core'
+import { getChapterIdForQuestion, getStage, type Level, type Progress } from '@easylearn/core'
const XP_CORRECT = 10
const XP_WRONG = 2
@@ -100,7 +99,7 @@ const Quiz = ({
{isReview && questions.some((q) => progress.wrongIds[q.id])
- ? '還沒畢業的錯題會留著,繼續練會更熟練!'
+ ? '答對一次就會從錯題本移除,還沒答對的之後可以再挑戰!'
: '你的星球又長大了一點,明天也要回來澆灌它喔!'}