Skip to content

Commit c38d1d0

Browse files
Nirajn2311Sembauke
andauthored
fix: v6 bugs (#1663)
* fix: ios errors * feat: update authentication service and pass widget to handle motivational quotes --------- Co-authored-by: sembauke <[email protected]>
1 parent 838d536 commit c38d1d0

File tree

3 files changed

+21
-5
lines changed

3 files changed

+21
-5
lines changed

mobile-app/lib/ui/views/learn/challenge/challenge_viewmodel.dart

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -712,7 +712,8 @@ class ChallengeViewModel extends BaseViewModel {
712712
);
713713
if (evalResult != null && evalResult.error != null) {
714714
setUserConsoleMessages = [
715-
...userConsoleMessages.sublist(0, userConsoleMessages.length - 1),
715+
if (userConsoleMessages.isNotEmpty)
716+
...userConsoleMessages.sublist(0, userConsoleMessages.length - 1),
716717
'<p>${evalResult.error}</p>',
717718
];
718719
}
@@ -745,13 +746,16 @@ class ChallengeViewModel extends BaseViewModel {
745746
'testStr': test.javaScript,
746747
},
747748
);
748-
if (testRes?.value['pass'] == null) {
749-
log('TEST FAILED: ${test.instruction} - ${test.javaScript} - ${testRes?.value['err']}');
749+
if (testRes != null && testRes.value['pass'] == null) {
750+
log('TEST FAILED: ${test.instruction} - ${test.javaScript} - ${testRes.value['err']}');
750751
failedTest = failedTest ?? test;
751-
failedTestErr = failedTestErr ?? testRes?.value['err'] as Map;
752+
failedTestErr = failedTestErr ?? testRes.value['err'] as Map;
752753
failedTestsConsole.add(
753754
'<li>${replacePlaceholders(test.instruction, failedTestErr)}</li>',
754755
);
756+
} else if (testRes == null) {
757+
log('TEST RESULT NULL: $testRes');
758+
throw Exception('Test result is null ${testRes.toString()}');
755759
}
756760
}
757761

mobile-app/lib/ui/views/learn/widgets/pass/pass_widget_model.dart

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,17 @@ import 'package:stacked/stacked.dart';
1515
class PassWidgetModel extends BaseViewModel {
1616
final AuthenticationService auth = locator<AuthenticationService>();
1717

18+
Future<MotivationalQuote>? quoteFuture;
19+
20+
set setQuoteFuture(Future<MotivationalQuote> value) {
21+
quoteFuture = value;
22+
notifyListeners();
23+
}
24+
25+
void initQuoute() {
26+
setQuoteFuture = retrieveNewQuote();
27+
}
28+
1829
Future<int> numCompletedChallenges(ChallengeViewModel challengeModel) async {
1930
FccUserModel? user = await auth.userModel;
2031
if (user != null) {

mobile-app/lib/ui/views/learn/widgets/pass/pass_widget_view.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ class PassWidgetView extends StatelessWidget {
2222
Widget build(BuildContext context) {
2323
return ViewModelBuilder<PassWidgetModel>.reactive(
2424
viewModelBuilder: () => PassWidgetModel(),
25+
onViewModelReady: (model) => model.initQuoute(),
2526
builder: (context, model, child) => SafeArea(
2627
child: Column(
2728
children: [
@@ -48,7 +49,7 @@ class PassWidgetView extends StatelessWidget {
4849
crossAxisAlignment: CrossAxisAlignment.start,
4950
children: [
5051
FutureBuilder(
51-
future: model.retrieveNewQuote(),
52+
future: model.quoteFuture,
5253
builder: (context, snapshot) {
5354
if (snapshot.hasData) {
5455
MotivationalQuote quote =

0 commit comments

Comments
 (0)