From a45378a094006364d41ca379da9ff3793e43c117 Mon Sep 17 00:00:00 2001 From: RafayAhmad7548 Date: Sun, 10 Aug 2025 07:10:30 +0500 Subject: [PATCH] make error snack bar fn global --- lib/main.dart | 14 ++++++++++++++ lib/sftp_explorer.dart | 20 ++++---------------- lib/widgets/operation_buttons.dart | 5 ++++- 3 files changed, 22 insertions(+), 17 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index cc30c25..ffdfa68 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -28,3 +28,17 @@ class MainApp extends StatelessWidget { ); } } + +SnackBar buildErrorSnackBar(BuildContext context, String error) { + return SnackBar( + backgroundColor: Theme.of(context).colorScheme.secondaryContainer, + behavior: SnackBarBehavior.floating, + content: Row( + spacing: 10, + children: [ + Icon(Icons.error, color: Colors.red,), + Text(error, style: TextStyle(color: Theme.of(context).colorScheme.onSecondaryContainer),), + ], + ) + ); +} diff --git a/lib/sftp_explorer.dart b/lib/sftp_explorer.dart index 6fbe64a..49f6e53 100644 --- a/lib/sftp_explorer.dart +++ b/lib/sftp_explorer.dart @@ -4,6 +4,7 @@ import 'package:dartssh2/dartssh2.dart'; import 'package:file_picker/file_picker.dart'; import 'package:file_selector/file_selector.dart'; import 'package:flutter/material.dart'; +import 'package:fluxcloud/main.dart'; import 'package:fluxcloud/sftp_worker.dart'; import 'widgets/operation_buttons.dart'; @@ -39,7 +40,7 @@ class _SftpExplorerState extends State { } catch (e) { if (mounted) { - ScaffoldMessenger.of(context).showSnackBar(_buildErrorSnackBar(context, e.toString())); + ScaffoldMessenger.of(context).showSnackBar(buildErrorSnackBar(context, e.toString())); } } setState(() => _isLoading = false); @@ -168,7 +169,7 @@ class _SftpExplorerState extends State { } catch (e) { if (context.mounted) { - ScaffoldMessenger.of(context).showSnackBar(_buildErrorSnackBar(context, e.toString())); + ScaffoldMessenger.of(context).showSnackBar(buildErrorSnackBar(context, e.toString())); } } if (context.mounted) { @@ -202,7 +203,7 @@ class _SftpExplorerState extends State { } catch (e) { if (context.mounted) { - ScaffoldMessenger.of(context).showSnackBar(_buildErrorSnackBar(context, e.toString())); + ScaffoldMessenger.of(context).showSnackBar(buildErrorSnackBar(context, e.toString())); } } setState(() => _progress = null); @@ -214,17 +215,4 @@ class _SftpExplorerState extends State { ); } - SnackBar _buildErrorSnackBar(BuildContext context, String error) { - return SnackBar( - backgroundColor: Theme.of(context).colorScheme.secondaryContainer, - behavior: SnackBarBehavior.floating, - content: Row( - spacing: 10, - children: [ - Icon(Icons.error, color: Colors.red,), - Text(error, style: TextStyle(color: Theme.of(context).colorScheme.onSecondaryContainer),), - ], - ) - ); - } } diff --git a/lib/widgets/operation_buttons.dart b/lib/widgets/operation_buttons.dart index 9584762..f6d157e 100644 --- a/lib/widgets/operation_buttons.dart +++ b/lib/widgets/operation_buttons.dart @@ -1,5 +1,6 @@ import 'package:dartssh2/dartssh2.dart'; import 'package:flutter/material.dart'; +import 'package:fluxcloud/main.dart'; import 'package:fluxcloud/sftp_worker.dart'; class OperationButtons extends StatelessWidget { @@ -97,7 +98,9 @@ class OperationButtons extends StatelessWidget { await sftpWorker.remove(dirEntry, path); } catch (e) { - print(e.toString()); + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar(buildErrorSnackBar(context, e.toString())); + } } listDir(); if (context.mounted) {