fix: show error message when not enough data for practice
This commit is contained in:
parent
573ee4dddd
commit
da8b99b78b
2 changed files with 12 additions and 1 deletions
|
|
@ -15,6 +15,8 @@ import 'package:fluffychat/pangea/practice_activities/message_activity_request.d
|
|||
import 'package:fluffychat/pangea/practice_activities/practice_target.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
class InsufficientDataException implements Exception {}
|
||||
|
||||
class AnalyticsPracticeSessionRepo {
|
||||
static Future<AnalyticsPracticeSessionModel> get(
|
||||
ConstructTypeEnum type,
|
||||
|
|
@ -67,6 +69,10 @@ class AnalyticsPracticeSessionRepo {
|
|||
}
|
||||
}
|
||||
|
||||
if (targets.isEmpty) {
|
||||
throw InsufficientDataException();
|
||||
}
|
||||
|
||||
final session = AnalyticsPracticeSessionModel(
|
||||
userL1: MatrixState.pangeaController.userController.userL1!.langCode,
|
||||
userL2: MatrixState.pangeaController.userController.userL2!.langCode,
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import 'package:fluffychat/l10n/l10n.dart';
|
|||
import 'package:fluffychat/pangea/analytics_misc/construct_type_enum.dart';
|
||||
import 'package:fluffychat/pangea/analytics_practice/analytics_practice_page.dart';
|
||||
import 'package:fluffychat/pangea/analytics_practice/analytics_practice_session_model.dart';
|
||||
import 'package:fluffychat/pangea/analytics_practice/analytics_practice_session_repo.dart';
|
||||
import 'package:fluffychat/pangea/analytics_practice/choice_cards/audio_choice_card.dart';
|
||||
import 'package:fluffychat/pangea/analytics_practice/choice_cards/game_choice_card.dart';
|
||||
import 'package:fluffychat/pangea/analytics_practice/choice_cards/grammar_choice_card.dart';
|
||||
|
|
@ -84,7 +85,11 @@ class AnalyticsPracticeView extends StatelessWidget {
|
|||
builder: (context, state, __) {
|
||||
return switch (state) {
|
||||
AsyncError<AnalyticsPracticeSessionModel>(:final error) =>
|
||||
ErrorIndicator(message: error.toString()),
|
||||
ErrorIndicator(
|
||||
message: error is InsufficientDataException
|
||||
? L10n.of(context).notEnoughToPractice
|
||||
: error.toString(),
|
||||
),
|
||||
AsyncLoaded<AnalyticsPracticeSessionModel>(:final value) =>
|
||||
value.isComplete
|
||||
? CompletedActivitySessionView(state.value, controller)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue