@@ -5,17 +5,19 @@ import 'flashcard_model.dart';
55import '../../common/utils/data_provider.dart' ;
66import '../../common/widgets/custom_iconbutton.dart' ;
77
8+ enum CardType { review, dictionary, lesson }
9+
810class Flashcard extends StatefulWidget {
911 const Flashcard ({
1012 super .key,
11- required this .handleIndex,
13+ this .handleIndex,
1214 required this .card,
13- required this .isReview ,
15+ required this .type ,
1416 });
1517
16- final void Function () handleIndex;
18+ final void Function ()? handleIndex;
1719 final FlashcardModel card;
18- final bool isReview ;
20+ final CardType type ;
1921
2022 @override
2123 State <Flashcard > createState () => _FlashcardState ();
@@ -43,13 +45,14 @@ class _FlashcardState extends State<Flashcard> {
4345 Stack (
4446 children: [
4547 _buildImage (),
46- if (! _isImageBlurred && ! isEmptyInstructions)
48+ if ((! _isImageBlurred || widget.type == CardType .dictionary) &&
49+ ! isEmptyInstructions)
4750 _buildInstructionsPopup (context),
4851 ],
4952 ),
5053 // TODO media controls implementation
5154 _buildMediaControls (),
52- _buildFlashcardButtons (),
55+ if (widget.type != CardType .dictionary) _buildFlashcardButtons (),
5356 ],
5457 ),
5558 ),
@@ -67,13 +70,6 @@ class _FlashcardState extends State<Flashcard> {
6770 ),
6871 );
6972
70- Widget _buildDifficultyButton (String text, int quality, Color color) =>
71- TextButton (
72- style: TextButton .styleFrom (foregroundColor: color),
73- onPressed: () => _handleButtonPress (widget.card, quality),
74- child: Text (text),
75- );
76-
7773 Widget _buildMediaControls () => Row (
7874 mainAxisSize: MainAxisSize .min,
7975 children: [
@@ -106,17 +102,15 @@ class _FlashcardState extends State<Flashcard> {
106102 );
107103
108104 Widget _buildImage () => ClipRRect (
109- child: ImageFiltered (
110- enabled: _isImageBlurred,
111- imageFilter: ImageFilter .blur (sigmaX: 48 , sigmaY: 48 ),
112- child: Image .network (widget.card.image)),
105+ child: widget.type == CardType .dictionary
106+ ? Image .network (widget.card.image)
107+ : ImageFiltered (
108+ enabled: _isImageBlurred,
109+ imageFilter: ImageFilter .blur (sigmaX: 48 , sigmaY: 48 ),
110+ child: Image .network (widget.card.image),
111+ ),
113112 );
114113
115- void _handleButtonPress (FlashcardModel flashcard, int quality) {
116- context.read <DataProvider >().updateCardProgress (flashcard, quality);
117- widget.handleIndex ();
118- }
119-
120114 Widget _buildFlashcardButtons () {
121115 if (_isImageBlurred) {
122116 return TextButton (
@@ -125,7 +119,7 @@ class _FlashcardState extends State<Flashcard> {
125119 );
126120 }
127121
128- if (widget.isReview ) {
122+ if (widget.type == CardType .review ) {
129123 return Row (
130124 mainAxisSize: MainAxisSize .min,
131125 children: [
@@ -142,6 +136,18 @@ class _FlashcardState extends State<Flashcard> {
142136 );
143137 }
144138
139+ Widget _buildDifficultyButton (String text, int quality, Color color) =>
140+ TextButton (
141+ style: TextButton .styleFrom (foregroundColor: color),
142+ onPressed: () => _handleButtonPress (widget.card, quality),
143+ child: Text (text),
144+ );
145+
146+ void _handleButtonPress (FlashcardModel flashcard, int quality) {
147+ context.read <DataProvider >().updateCardProgress (flashcard, quality);
148+ widget.handleIndex !();
149+ }
150+
145151 Widget _buildInstructions (height, width) => Card (
146152 child: Padding (
147153 padding: const EdgeInsets .all (8.0 ),
0 commit comments