Skip to content

Commit 4cc64e3

Browse files
committed
feat(main): 修复review问题
1 parent a81b7ae commit 4cc64e3

2 files changed

Lines changed: 39 additions & 88 deletions

File tree

apps/web/src/pages/review/components/sr-quiz.tsx

Lines changed: 39 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -60,89 +60,47 @@ const SRQuizContent = () => {
6060
</div>
6161
)}
6262

63-
{/* Flip Card */}
64-
<div className="bg-white dark:bg-dark-800 rounded-xl shadow-sm border border-gray-200 dark:border-dark-700 p-6">
65-
<div className="perspective-1000">
66-
<div
67-
className={`transition-transform duration-400 ease-in-out transform-style-3d ${
68-
service.srCardFlipped ? 'rotate-y-180' : ''
69-
}`}
70-
style={{
71-
transformStyle: 'preserve-3d',
72-
transform: service.srCardFlipped ? 'rotateY(180deg)' : 'rotateY(0deg)',
73-
}}
74-
>
75-
{/* Card Front */}
76-
<div className="backface-hidden" style={{ backfaceVisibility: 'hidden' }}>
77-
<h3 className="text-xl font-semibold text-gray-900 dark:text-gray-50 mb-3">
78-
{currentCard?.memo.title}
79-
</h3>
80-
<div className="prose prose-sm dark:prose-invert max-w-none">
81-
<p className="text-gray-600 dark:text-gray-400 whitespace-pre-wrap">
82-
{currentCard?.memo.content.slice(0, 200)}
83-
{currentCard && currentCard.memo.content.length > 200 ? '...' : ''}
84-
</p>
85-
</div>
86-
87-
<div className="mt-6">
88-
<button
89-
onClick={() => service.flipSRCard()}
90-
className="w-full px-4 py-3 bg-primary-600 hover:bg-primary-700 text-white font-medium rounded-lg transition-colors"
91-
>
92-
显示答案
93-
</button>
94-
</div>
95-
</div>
63+
{/* Card */}
64+
<div className="bg-white dark:bg-dark-800 rounded-xl shadow-sm border border-gray-200 dark:border-dark-700 p-6 overflow-hidden">
65+
<h3 className="text-xl font-semibold text-gray-900 dark:text-gray-50 mb-3">
66+
{currentCard?.memo.title}
67+
</h3>
9668

97-
{/* Card Back */}
98-
<div
99-
className="backface-hidden absolute inset-0"
100-
style={{
101-
backfaceVisibility: 'hidden',
102-
transform: 'rotateY(180deg)',
103-
}}
104-
>
105-
<h3 className="text-xl font-semibold text-gray-900 dark:text-gray-50 mb-3">
106-
{currentCard?.memo.title}
107-
</h3>
108-
<div className="prose prose-sm dark:prose-invert max-w-none">
109-
<p className="text-gray-600 dark:text-gray-400 whitespace-pre-wrap">
110-
{currentCard?.memo.content}
111-
</p>
112-
</div>
69+
<div className="rounded-lg bg-gray-50 dark:bg-dark-700/50 p-4 max-h-[52vh] overflow-y-auto">
70+
<p className="text-gray-700 dark:text-gray-300 whitespace-pre-wrap break-words leading-7">
71+
{currentCard?.memo.content}
72+
</p>
73+
</div>
11374

114-
<div className="mt-6 grid grid-cols-2 gap-2">
115-
<button
116-
onClick={() => service.reviewSRCard('mastered' as SRQuality)}
117-
disabled={service.srLoading}
118-
className="px-3 py-3 bg-purple-600 text-white font-medium rounded-lg hover:bg-purple-700 transition-colors text-sm disabled:opacity-50"
119-
>
120-
完全记住
121-
</button>
122-
<button
123-
onClick={() => service.reviewSRCard('remembered' as SRQuality)}
124-
disabled={service.srLoading}
125-
className="px-3 py-3 bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-400 font-medium rounded-lg hover:bg-green-200 dark:hover:bg-green-900/50 transition-colors text-sm disabled:opacity-50"
126-
>
127-
记住了
128-
</button>
129-
<button
130-
onClick={() => service.reviewSRCard('fuzzy' as SRQuality)}
131-
disabled={service.srLoading}
132-
className="px-3 py-3 bg-yellow-100 dark:bg-yellow-900/30 text-yellow-700 dark:text-yellow-400 font-medium rounded-lg hover:bg-yellow-200 dark:hover:bg-yellow-900/50 transition-colors text-sm disabled:opacity-50"
133-
>
134-
模糊
135-
</button>
136-
<button
137-
onClick={() => service.reviewSRCard('forgot' as SRQuality)}
138-
disabled={service.srLoading}
139-
className="px-3 py-3 bg-red-100 dark:bg-red-900/30 text-red-700 dark:text-red-400 font-medium rounded-lg hover:bg-red-200 dark:hover:bg-red-900/50 transition-colors text-sm disabled:opacity-50"
140-
>
141-
忘记了
142-
</button>
143-
</div>
144-
</div>
145-
</div>
75+
<div className="mt-6 grid grid-cols-2 gap-2">
76+
<button
77+
onClick={() => service.reviewSRCard('mastered' as SRQuality)}
78+
disabled={service.srLoading}
79+
className="px-3 py-3 bg-purple-600 text-white font-medium rounded-lg hover:bg-purple-700 transition-colors text-sm disabled:opacity-50"
80+
>
81+
完全记住
82+
</button>
83+
<button
84+
onClick={() => service.reviewSRCard('remembered' as SRQuality)}
85+
disabled={service.srLoading}
86+
className="px-3 py-3 bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-400 font-medium rounded-lg hover:bg-green-200 dark:hover:bg-green-900/50 transition-colors text-sm disabled:opacity-50"
87+
>
88+
记住了
89+
</button>
90+
<button
91+
onClick={() => service.reviewSRCard('fuzzy' as SRQuality)}
92+
disabled={service.srLoading}
93+
className="px-3 py-3 bg-yellow-100 dark:bg-yellow-900/30 text-yellow-700 dark:text-yellow-400 font-medium rounded-lg hover:bg-yellow-200 dark:hover:bg-yellow-900/50 transition-colors text-sm disabled:opacity-50"
94+
>
95+
模糊
96+
</button>
97+
<button
98+
onClick={() => service.reviewSRCard('forgot' as SRQuality)}
99+
disabled={service.srLoading}
100+
className="px-3 py-3 bg-red-100 dark:bg-red-900/30 text-red-700 dark:text-red-400 font-medium rounded-lg hover:bg-red-200 dark:hover:bg-red-900/50 transition-colors text-sm disabled:opacity-50"
101+
>
102+
忘记了
103+
</button>
146104
</div>
147105
</div>
148106
</div>

apps/web/src/pages/review/review.service.ts

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ export class ReviewService extends Service {
5353
// ========== Spaced Repetition State ==========
5454
srCards: SRCard[] = [];
5555
srCurrentIndex = 0;
56-
srCardFlipped = false;
5756
skippedCards: SRCard[] = [];
5857
srLoading = false;
5958
srStats: SRStats = {
@@ -132,7 +131,6 @@ export class ReviewService extends Service {
132131
// Reset SR states
133132
this.srCards = [];
134133
this.srCurrentIndex = 0;
135-
this.srCardFlipped = false;
136134
this.skippedCards = [];
137135
this.srStats = { mastered: 0, remembered: 0, fuzzy: 0, forgot: 0 };
138136

@@ -548,10 +546,6 @@ export class ReviewService extends Service {
548546
}
549547
}
550548

551-
flipSRCard(): void {
552-
this.srCardFlipped = true;
553-
}
554-
555549
async reviewSRCard(quality: SRQuality): Promise<void> {
556550
if (this.srCurrentIndex >= this.srCards.length) return;
557551

@@ -585,7 +579,6 @@ export class ReviewService extends Service {
585579
}
586580

587581
private moveToNextSR(): void {
588-
this.srCardFlipped = false;
589582
const remainingCards = this.srCards.length - this.srCurrentIndex - 1;
590583
const totalSkipped = this.skippedCards.length;
591584

0 commit comments

Comments
 (0)