mirror of
				https://github.com/immich-app/immich.git
				synced 2025-10-30 10:12:33 -04:00 
			
		
		
		
	Added toast message component
This commit is contained in:
		
							parent
							
								
									6141888d3e
								
							
						
					
					
						commit
						55cba8aa5f
					
				
							
								
								
									
										
											BIN
										
									
								
								design/immich-logo-no-outline.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								design/immich-logo-no-outline.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 144 KiB | 
| @ -2,6 +2,9 @@ PODS: | ||||
|   - device_info_plus (0.0.1): | ||||
|     - Flutter | ||||
|   - Flutter (1.0.0) | ||||
|   - fluttertoast (0.0.2): | ||||
|     - Flutter | ||||
|     - Toast | ||||
|   - FMDB (2.7.5): | ||||
|     - FMDB/standard (= 2.7.5) | ||||
|   - FMDB/standard (2.7.5) | ||||
| @ -13,10 +16,12 @@ PODS: | ||||
|   - sqflite (0.0.2): | ||||
|     - Flutter | ||||
|     - FMDB (>= 2.7.5) | ||||
|   - Toast (4.0.0) | ||||
| 
 | ||||
| DEPENDENCIES: | ||||
|   - device_info_plus (from `.symlinks/plugins/device_info_plus/ios`) | ||||
|   - Flutter (from `Flutter`) | ||||
|   - fluttertoast (from `.symlinks/plugins/fluttertoast/ios`) | ||||
|   - path_provider_ios (from `.symlinks/plugins/path_provider_ios/ios`) | ||||
|   - photo_manager (from `.symlinks/plugins/photo_manager/ios`) | ||||
|   - sqflite (from `.symlinks/plugins/sqflite/ios`) | ||||
| @ -24,12 +29,15 @@ DEPENDENCIES: | ||||
| SPEC REPOS: | ||||
|   trunk: | ||||
|     - FMDB | ||||
|     - Toast | ||||
| 
 | ||||
| EXTERNAL SOURCES: | ||||
|   device_info_plus: | ||||
|     :path: ".symlinks/plugins/device_info_plus/ios" | ||||
|   Flutter: | ||||
|     :path: Flutter | ||||
|   fluttertoast: | ||||
|     :path: ".symlinks/plugins/fluttertoast/ios" | ||||
|   path_provider_ios: | ||||
|     :path: ".symlinks/plugins/path_provider_ios/ios" | ||||
|   photo_manager: | ||||
| @ -40,10 +48,12 @@ EXTERNAL SOURCES: | ||||
| SPEC CHECKSUMS: | ||||
|   device_info_plus: e5c5da33f982a436e103237c0c85f9031142abed | ||||
|   Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a | ||||
|   fluttertoast: 6122fa75143e992b1d3470f61000f591a798cc58 | ||||
|   FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a | ||||
|   path_provider_ios: 7d7ce634493af4477d156294792024ec3485acd5 | ||||
|   photo_manager: 84fa94fbeb82e607333ea9a13c43b58e0903a463 | ||||
|   sqflite: 6d358c025f5b867b29ed92fc697fd34924e11904 | ||||
|   Toast: 91b396c56ee72a5790816f40d3a94dd357abc196 | ||||
| 
 | ||||
| PODFILE CHECKSUM: aafe91acc616949ddb318b77800a7f51bffa2a4c | ||||
| 
 | ||||
|  | ||||
| @ -9,7 +9,6 @@ import 'package:immich_mobile/shared/services/backup.service.dart'; | ||||
| import 'package:immich_mobile/shared/services/device_info.service.dart'; | ||||
| import 'package:immich_mobile/shared/services/network.service.dart'; | ||||
| import 'package:immich_mobile/shared/models/device_info.model.dart'; | ||||
| import 'package:immich_mobile/utils/dio_http_interceptor.dart'; | ||||
| 
 | ||||
| class AuthenticationNotifier extends StateNotifier<AuthenticationState> { | ||||
|   AuthenticationNotifier() | ||||
| @ -45,10 +44,14 @@ class AuthenticationNotifier extends StateNotifier<AuthenticationState> { | ||||
|       Hive.box(userInfoBox).put(serverEndpointKey, serverEndpoint); | ||||
|     } | ||||
| 
 | ||||
|     try { | ||||
|       bool isServerEndpointVerified = await _networkService.pingServer(); | ||||
|       if (!isServerEndpointVerified) { | ||||
|         return false; | ||||
|       } | ||||
|     } catch (e) { | ||||
|       return false; | ||||
|     } | ||||
| 
 | ||||
|     // Store device id to local storage | ||||
|     var deviceInfo = await _deviceInfoService.getDeviceInfo(); | ||||
|  | ||||
| @ -4,6 +4,7 @@ import 'package:flutter_hooks/flutter_hooks.dart'; | ||||
| import 'package:google_fonts/google_fonts.dart'; | ||||
| import 'package:hooks_riverpod/hooks_riverpod.dart'; | ||||
| import 'package:immich_mobile/modules/login/providers/authentication.provider.dart'; | ||||
| import 'package:immich_mobile/shared/ui/immich_toast.dart'; | ||||
| 
 | ||||
| class LoginForm extends HookConsumerWidget { | ||||
|   const LoginForm({Key? key}) : super(key: key); | ||||
| @ -116,7 +117,10 @@ class LoginButton extends ConsumerWidget { | ||||
|           if (isAuthenicated) { | ||||
|             AutoRouter.of(context).pushNamed("/home-page"); | ||||
|           } else { | ||||
|             debugPrint("BAD LOGIN TRY AGAIN - Show UI Here"); | ||||
|             ImmichToast.show( | ||||
|                 context: context, | ||||
|                 msg: "Error logging you in, check server url, emald and password!", | ||||
|                 toastType: ToastType.error); | ||||
|           } | ||||
|         }, | ||||
|         child: const Text("Login")); | ||||
|  | ||||
							
								
								
									
										69
									
								
								mobile/lib/shared/ui/immich_toast.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								mobile/lib/shared/ui/immich_toast.dart
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,69 @@ | ||||
| import 'package:flutter/material.dart'; | ||||
| import 'package:fluttertoast/fluttertoast.dart'; | ||||
| 
 | ||||
| enum ToastType { info, success, error } | ||||
| 
 | ||||
| class ImmichToast { | ||||
|   static show({ | ||||
|     required BuildContext context, | ||||
|     required String msg, | ||||
|     ToastType toastType = ToastType.info, | ||||
|   }) { | ||||
|     FToast fToast; | ||||
| 
 | ||||
|     fToast = FToast(); | ||||
|     fToast.init(context); | ||||
| 
 | ||||
|     fToast.showToast( | ||||
|       child: Container( | ||||
|         padding: const EdgeInsets.symmetric(horizontal: 24.0, vertical: 12.0), | ||||
|         decoration: BoxDecoration( | ||||
|           borderRadius: BorderRadius.circular(5.0), | ||||
|           color: Colors.grey[50], | ||||
|           border: Border.all( | ||||
|             color: Colors.black12, | ||||
|             width: 1, | ||||
|           ), | ||||
|         ), | ||||
|         child: Row( | ||||
|           mainAxisSize: MainAxisSize.min, | ||||
|           children: [ | ||||
|             (toastType == ToastType.info) | ||||
|                 ? Icon( | ||||
|                     Icons.info_outline_rounded, | ||||
|                     color: Theme.of(context).primaryColor, | ||||
|                   ) | ||||
|                 : Container(), | ||||
|             (toastType == ToastType.success) | ||||
|                 ? const Icon( | ||||
|                     Icons.check, | ||||
|                     color: Color.fromARGB(255, 104, 248, 140), | ||||
|                   ) | ||||
|                 : Container(), | ||||
|             (toastType == ToastType.error) | ||||
|                 ? const Icon( | ||||
|                     Icons.error_outline_rounded, | ||||
|                     color: Color.fromARGB(255, 240, 162, 156), | ||||
|                   ) | ||||
|                 : Container(), | ||||
|             const SizedBox( | ||||
|               width: 12.0, | ||||
|             ), | ||||
|             Flexible( | ||||
|               child: Text( | ||||
|                 msg, | ||||
|                 style: TextStyle( | ||||
|                   color: Theme.of(context).primaryColor, | ||||
|                   fontWeight: FontWeight.bold, | ||||
|                   fontSize: 15, | ||||
|                 ), | ||||
|               ), | ||||
|             ), | ||||
|           ], | ||||
|         ), | ||||
|       ), | ||||
|       gravity: ToastGravity.TOP, | ||||
|       toastDuration: const Duration(seconds: 2), | ||||
|     ); | ||||
|   } | ||||
| } | ||||
| @ -359,6 +359,13 @@ packages: | ||||
|     description: flutter | ||||
|     source: sdk | ||||
|     version: "0.0.0" | ||||
|   fluttertoast: | ||||
|     dependency: "direct main" | ||||
|     description: | ||||
|       name: fluttertoast | ||||
|       url: "https://pub.dartlang.org" | ||||
|     source: hosted | ||||
|     version: "8.0.8" | ||||
|   frontend_server_client: | ||||
|     dependency: transitive | ||||
|     description: | ||||
|  | ||||
| @ -27,6 +27,7 @@ dependencies: | ||||
|   transparent_image: ^2.0.0 | ||||
|   visibility_detector: ^0.2.2 | ||||
|   flutter_launcher_icons: "^0.9.2" | ||||
|   fluttertoast: ^8.0.8 | ||||
| 
 | ||||
| dev_dependencies: | ||||
|   flutter_test: | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user