Skip to content

Commit

Permalink
Fixes PalisadoesFoundation#1437 Utilize TalawaErrorWidget Throughout …
Browse files Browse the repository at this point in the history
…App (PalisadoesFoundation#1562)

* Fixes PalisadoesFoundation#1483 showSnackBar error: showing snackbar before screen is built

* Make the Dialog box functionable

* Fixes PalisadoesFoundation#1437 Utilize TalawaErrorWidget Throughout App

* Added test for the same

* Resolved the conflicts and changed the mocks
  • Loading branch information
Ayush0Chaudhary authored Feb 24, 2023
1 parent 74b5154 commit 510d92d
Show file tree
Hide file tree
Showing 34 changed files with 1,479 additions and 490 deletions.
3 changes: 3 additions & 0 deletions assets/icons/Info.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions assets/images/Vector.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 7 additions & 1 deletion lang/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -151,5 +151,11 @@
"Are you sure you want to logout?": "Möchten Sie sich wirklich abmelden?",
"Logout": "Ausloggen",
"Settings": "Einstellungen",
"Dark Theme": "Dunkles Thema"
"Dark Theme": "Dunkles Thema",

"Error": "Fout",
"Warning": "Waarschuwing",
"Information": "Informatie",
"No account registered with this email":"Server werkt niet/verkeerde url",
"Dismiss": "afwijzen"
}
6 changes: 6 additions & 0 deletions lang/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,12 @@
"Request Sent to": "Request Sent to",
"Log out": "Log out",


"Error": "Error",
"Warning": "Warning",
"Information": "Information",
"No account registered with this email":"No account registered with this email",
"Dismiss": "Dismiss",
"Join": "Join",
"and": "and",
"Collaborate": "Collaborate",
Expand Down
7 changes: 6 additions & 1 deletion lang/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -151,5 +151,10 @@
"Are you sure you want to logout?": "¿Estás segura de que quieres cerrar sesión?",
"Logout": "Cerrar sesión",
"Settings": "Ajustes",
"Dark Theme": "Tema oscuro"
"Dark Theme": "Tema oscuro",
"Error": "Error",
"Warning": "Advertencia",
"Information": "Información",
"No account registered with this email":"El servidor no se está ejecutando/url",
"Dismiss": "despedir"
}
6 changes: 5 additions & 1 deletion lang/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,11 @@
"Collaborate": "collaborez",
"with your": "avec vos",
"Organizations": "organisations",

"Error": "Erreur",
"Warning": "Avertissement",
"Information": "Information",
"No account registered with this email":"Le serveur ne fonctionne pas/mauvaise URL",
"Dismiss": "Rejeter",
"Title from the viewMode GSoC branch": "Titre de la branche viewMode GSoC",
"Please verify URL first": "Veuillez d'abord vérifier l'URL",
"Enter a valid URL": "Saisissez une URL valide",
Expand Down
7 changes: 6 additions & 1 deletion lang/hi.json
Original file line number Diff line number Diff line change
Expand Up @@ -151,5 +151,10 @@
"Are you sure you want to logout?": "क्या आप वाकई लॉगआउट करना चाहते हैं?",
"Logout": "लॉगआउट",
"Settings": "अपनी सेटिंग्स बदलें",
"Dark Theme": "डार्क थीम"
"Dark Theme": "डार्क थीम",
"Error": "गलती",
"Warning": "चेतावनी",
"Information": "जानकारी",
"No account registered with this email":"सर्वर नहीं चल रहा/गलत url",
"Dismiss": "नकार"
}
7 changes: 6 additions & 1 deletion lang/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -153,5 +153,10 @@
"Are you sure you want to logout?": "ログアウトしてもよろしいですか?",
"Logout": "ログアウト",
"Settings": "設定",
"Dark Theme": "暗いテーマ"
"Dark Theme": "暗いテーマ",
"Error": "エラー",
"Warning": "警告",
"Information": "情報",
"No account registered with this email":"サーバーが実行されていない/間違った URL",
"Dismiss": "解散"
}
7 changes: 6 additions & 1 deletion lang/pt.json
Original file line number Diff line number Diff line change
Expand Up @@ -151,5 +151,10 @@
"Are you sure you want to logout?": "Tem certeza que deseja sair?",
"Logout": "Sair",
"Settings": "Definições",
"Dark Theme": "Tema escuro"
"Dark Theme": "Tema escuro",
"Error": "Erro",
"Warning": "Aviso",
"Information": "Informação",
"No account registered with this email":"Servidor não está em execução/url errado",
"Dismiss": "liberar"
}
7 changes: 6 additions & 1 deletion lang/zh.json
Original file line number Diff line number Diff line change
Expand Up @@ -151,5 +151,10 @@
"Are you sure you want to logout?": "您确定要退出吗?",
"Logout": "登出",
"Settings": "设置",
"Dark Theme": "黑暗主题"
"Dark Theme": "黑暗主题",
"Error": "错误",
"Warning": "警告",
"Information": "信息",
"No account registered with this email":"服务器未运行/网址错误",
"Dismiss": "解雇"
}
3 changes: 3 additions & 0 deletions lib/enums/enums.dart
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ enum ChatState { initial, loading, complete }
/// Represents the type of the tile
enum TileType { user, org, option }

/// Represents the type of the Message
enum MessageType { error, warning, info, random }

enum CallFor { login, signup, joinPublicOrg }

enum ModalSheet { donation, invite }
42 changes: 28 additions & 14 deletions lib/services/database_mutation_functions.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'dart:async';

import 'package:flutter/material.dart';
import 'package:graphql_flutter/graphql_flutter.dart';
import 'package:talawa/enums/enums.dart';
import 'package:talawa/locator.dart';
import 'package:talawa/models/organization/org_info.dart';
import 'package:talawa/utils/queries.dart';
Expand Down Expand Up @@ -51,16 +51,17 @@ class DataBaseMutationFunctions {
}) {
// if server link is wrong.
if (exception.linkException != null) {
debugPrint(exception.linkException.toString());
// debugPrint(exception.linkException.toString());
if (showSnackBar) {
WidgetsBinding.instance.addPostFrameCallback(
(_) => navigationService
.showTalawaErrorDialog("Server not running/wrong url"),
(_) => navigationService.showTalawaErrorSnackBar(
"Server not running/wrong url",
MessageType.info,
),
);
}
return false;
}

// looping through graphQL errors.
debugPrint(exception.graphqlErrors.toString());
for (int i = 0; i < exception.graphqlErrors.length; i++) {
Expand Down Expand Up @@ -90,8 +91,10 @@ class DataBaseMutationFunctions {
if (exception.graphqlErrors[i].message == userNotFound.message) {
if (showSnackBar) {
WidgetsBinding.instance.addPostFrameCallback(
(_) => navigationService
.showTalawaErrorDialog("No account registered with this email"),
(_) => navigationService.showTalawaErrorDialog(
"No account registered with this email",
MessageType.error,
),
);
}
return false;
Expand All @@ -100,8 +103,10 @@ class DataBaseMutationFunctions {
if (exception.graphqlErrors[i].message == memberRequestExist.message) {
if (showSnackBar) {
WidgetsBinding.instance.addPostFrameCallback(
(_) => navigationService
.showTalawaErrorDialog("Membership request already exist"),
(_) => navigationService.showTalawaErrorDialog(
"Membership request already exist",
MessageType.error,
),
);
}
return false;
Expand All @@ -110,8 +115,10 @@ class DataBaseMutationFunctions {
if (exception.graphqlErrors[i].message == wrongCredentials.message) {
if (showSnackBar) {
WidgetsBinding.instance.addPostFrameCallback(
(_) => navigationService
.showTalawaErrorDialog("Enter a valid password"),
(_) => navigationService.showTalawaErrorDialog(
"Enter a valid password",
MessageType.error,
),
);
}
return false;
Expand All @@ -120,8 +127,10 @@ class DataBaseMutationFunctions {
if (exception.graphqlErrors[i].message == organizationNotFound.message) {
if (showSnackBar) {
WidgetsBinding.instance.addPostFrameCallback(
(_) => navigationService
.showTalawaErrorDialog("Organization Not Found"),
(_) => navigationService.showTalawaErrorDialog(
"Organization Not Found",
MessageType.error,
),
);
}
return false;
Expand All @@ -132,15 +141,20 @@ class DataBaseMutationFunctions {
WidgetsBinding.instance.addPostFrameCallback(
(_) => navigationService.showTalawaErrorDialog(
"Account with this email already registered",
MessageType.error,
),
);
}
return false;
}
}
// if the error is unknown

WidgetsBinding.instance.addPostFrameCallback(
(_) => navigationService.showTalawaErrorDialog("Something went wrong!"),
(_) => navigationService.showTalawaErrorDialog(
"Something went wrong!",
MessageType.error,
),
);
return false;
}
Expand Down
20 changes: 12 additions & 8 deletions lib/services/navigation_service.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'package:flutter/material.dart';

import 'package:talawa/enums/enums.dart';
import 'package:talawa/widgets/talawa_error_dialog.dart';
import 'package:talawa/widgets/talawa_error_widget.dart';
import 'package:talawa/widgets/talawa_error_snackbar.dart';

/// NavigationService class provides different functions as service in the context of navigation.
///
Expand Down Expand Up @@ -96,29 +96,33 @@ class NavigationService {
);
}

void showTalawaErrorWidget(
String errorMessage, {
void showTalawaErrorSnackBar(
String errorMessage,
MessageType messageType, {
Duration duration = const Duration(seconds: 2),
}) {
ScaffoldMessenger.of(navigatorKey.currentContext!).showSnackBar(
SnackBar(
padding: EdgeInsets.zero,
content: TalawaErrorWidget(
content: TalawaErrorSnackBar(
messageType: messageType,
errorMessage: errorMessage,
),
// backgroundColor: Colors.grey,
backgroundColor: const Color.fromRGBO(65, 65, 66, 1),
),
);
}

void showTalawaErrorDialog(String errorMessage) {
void showTalawaErrorDialog(String errorMessage, MessageType messageType) {
showDialog(
context: navigatorKey.currentContext!,
barrierColor: Colors.transparent,
barrierDismissible: false,
builder: (BuildContext context) {
return TalawaErrorDialog(errorMessage);
return TalawaErrorDialog(
errorMessage,
messageType: messageType,
);
},
);
}
Expand Down
6 changes: 5 additions & 1 deletion lib/services/user_config.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import 'dart:async';
import 'package:flutter/material.dart';
import 'package:graphql_flutter/graphql_flutter.dart';
import 'package:hive/hive.dart';
import 'package:talawa/enums/enums.dart';
import 'package:talawa/locator.dart';
import 'package:talawa/models/organization/org_info.dart';
import 'package:talawa/models/user/user_info.dart';
Expand Down Expand Up @@ -79,7 +80,10 @@ class UserConfig {
return true;
} on Exception catch (e) {
print(e);
navigationService.showSnackBar("Couldn't update User details");
navigationService.showTalawaErrorSnackBar(
"Couldn't update User details",
MessageType.error,
);
}
});
return true;
Expand Down
9 changes: 6 additions & 3 deletions lib/splash_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:talawa/constants/routing_constants.dart';
import 'package:talawa/custom_painters/talawa_logo.dart';
import 'package:talawa/enums/enums.dart';
import 'package:talawa/locator.dart';
import 'package:talawa/models/events/event_model.dart';
import 'package:talawa/models/mainscreen_navigation_args.dart';
Expand Down Expand Up @@ -81,7 +82,7 @@ class _SplashScreenState extends State<SplashScreen> {
final values = _initialUri!.queryParameters.values;

final fromInviteLink = navigationService.fromInviteLink;
final showSnackBar = navigationService.showSnackBar;
final showSnackBar = navigationService.showTalawaErrorSnackBar;
final pushReplacementScreen = navigationService.pushReplacementScreen;

final orgURI = GraphqlConfig.orgURI!;
Expand All @@ -101,12 +102,13 @@ class _SplashScreenState extends State<SplashScreen> {
if (setUrl.compareTo(orgURI) != 0) {
showSnackBar(
'Organisation on different server! Logout and open link again',
MessageType.error,
);
return;
}

if (keys.last.compareTo('selectOrg') != 0) {
showSnackBar('Invalid url');
showSnackBar('Invalid url', MessageType.error);
return;
}

Expand Down Expand Up @@ -135,6 +137,7 @@ class _SplashScreenState extends State<SplashScreen> {
Clipboard.setData(ClipboardData(text: setUrl));
showSnackBar(
'Organisation on different server! Url copied to clipboard.',
MessageType.error,
);
pushReplacementScreen(
Routes.mainScreen,
Expand Down Expand Up @@ -164,7 +167,7 @@ class _SplashScreenState extends State<SplashScreen> {
}

if (event == null) {
showSnackBar('Event not found');
showSnackBar('Event not found', MessageType.error);
pushReplacementScreen(
Routes.mainScreen,
arguments: mainScreenArgs,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import 'dart:io';

import 'package:flutter/material.dart';
import 'package:talawa/enums/enums.dart';
import 'package:talawa/locator.dart';
import 'package:talawa/models/organization/org_info.dart';
import 'package:talawa/models/user/user_info.dart';
Expand Down Expand Up @@ -55,7 +56,10 @@ class AddPostViewModel extends BaseModel {
void uploadPost() {
removeImage();
_controller.text = "";
_navigationService.showSnackBar("Post is uploaded");
_navigationService.showTalawaErrorSnackBar(
"Post is uploaded",
MessageType.info,
);
}

/// This function removes the image selected.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -304,6 +304,6 @@ class ProfilePageViewModel extends BaseModel {

// show message on Snack Bar.
showSnackBar(String message) {
_navigationService.showSnackBar(message);
_navigationService.showTalawaErrorDialog(message, MessageType.error);
}
}
Loading

0 comments on commit 510d92d

Please sign in to comment.