Fixed duplicated snackbar desktop

This commit is contained in:
Juan Gilsanz Polo 2024-01-29 15:04:52 +01:00
parent a4e8694cc1
commit 02b9bd034f
3 changed files with 223 additions and 228 deletions

View file

@ -9,10 +9,12 @@ void showSnacbkar({
required AppConfigProvider appConfigProvider, required AppConfigProvider appConfigProvider,
required String label, required String label,
required Color color, required Color color,
Color? labelColor Color? labelColor,
GlobalKey<ScaffoldMessengerState>? key,
}) async { }) async {
final GlobalKey<ScaffoldMessengerState> scaffoldKey = key ?? scaffoldMessengerKey;
if (appConfigProvider.showingSnackbar == true) { if (appConfigProvider.showingSnackbar == true) {
scaffoldMessengerKey.currentState?.clearSnackBars(); scaffoldKey.currentState?.clearSnackBars();
await Future.delayed(const Duration(milliseconds: 500)); await Future.delayed(const Duration(milliseconds: 500));
} }
appConfigProvider.setShowingSnackbar(true); appConfigProvider.setShowingSnackbar(true);
@ -26,7 +28,7 @@ void showSnacbkar({
), ),
backgroundColor: color, backgroundColor: color,
); );
scaffoldMessengerKey.currentState?.showSnackBar(snackBar).closed.then( scaffoldKey.currentState?.showSnackBar(snackBar).closed.then(
(value) => appConfigProvider.setShowingSnackbar(false) (value) => appConfigProvider.setShowingSnackbar(false)
); );
} }

View file

@ -1,5 +1,6 @@
import 'dart:io'; import 'dart:io';
import 'package:adguard_home_manager/config/globals.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
@ -101,7 +102,9 @@ class _SettingsWidgetState extends State<_SettingsWidget> {
appConfigProvider.setSelectedSettingsScreen(screen: null); appConfigProvider.setSelectedSettingsScreen(screen: null);
} }
return Scaffold( return ScaffoldMessenger(
key: widget.twoColumns ? GlobalKey() : null,
child: Scaffold(
body: NestedScrollView( body: NestedScrollView(
headerSliverBuilder: (context, innerBoxIsScrolled) => [ headerSliverBuilder: (context, innerBoxIsScrolled) => [
SliverOverlapAbsorber( SliverOverlapAbsorber(
@ -309,6 +312,7 @@ class _SettingsWidgetState extends State<_SettingsWidget> {
), ),
), ),
) )
),
); );
} }
} }

View file

@ -4,38 +4,33 @@ PODS:
- dynamic_color (0.0.2): - dynamic_color (0.0.2):
- FlutterMacOS - FlutterMacOS
- FlutterMacOS (1.0.0) - FlutterMacOS (1.0.0)
- FMDB (2.7.5):
- FMDB/standard (= 2.7.5)
- FMDB/standard (2.7.5)
- package_info_plus (0.0.1): - package_info_plus (0.0.1):
- FlutterMacOS - FlutterMacOS
- Sentry/HybridSDK (8.17.2): - Sentry/HybridSDK (8.18.0):
- SentryPrivate (= 8.17.2) - SentryPrivate (= 8.18.0)
- sentry_flutter (0.0.1): - sentry_flutter (0.0.1):
- Flutter - Flutter
- FlutterMacOS - FlutterMacOS
- Sentry/HybridSDK (= 8.17.2) - Sentry/HybridSDK (= 8.18.0)
- SentryPrivate (8.17.2) - SentryPrivate (8.18.0)
- sqflite (0.0.2): - sqflite (0.0.3):
- Flutter
- FlutterMacOS - FlutterMacOS
- FMDB (>= 2.7.5) - sqlite3 (3.45.0):
- sqlite3 (3.44.0): - sqlite3/common (= 3.45.0)
- sqlite3/common (= 3.44.0) - sqlite3/common (3.45.0)
- sqlite3/common (3.44.0) - sqlite3/fts5 (3.45.0):
- sqlite3/fts5 (3.44.0):
- sqlite3/common - sqlite3/common
- sqlite3/perf-threadsafe (3.44.0): - sqlite3/perf-threadsafe (3.45.0):
- sqlite3/common - sqlite3/common
- sqlite3/rtree (3.44.0): - sqlite3/rtree (3.45.0):
- sqlite3/common - sqlite3/common
- sqlite3_flutter_libs (0.0.1): - sqlite3_flutter_libs (0.0.1):
- FlutterMacOS - FlutterMacOS
- sqlite3 (~> 3.44.0) - sqlite3 (~> 3.45.0)
- sqlite3/fts5 - sqlite3/fts5
- sqlite3/perf-threadsafe - sqlite3/perf-threadsafe
- sqlite3/rtree - sqlite3/rtree
- url_launcher_macos (0.0.1):
- FlutterMacOS
- window_size (0.0.2): - window_size (0.0.2):
- FlutterMacOS - FlutterMacOS
@ -45,14 +40,12 @@ DEPENDENCIES:
- FlutterMacOS (from `Flutter/ephemeral`) - FlutterMacOS (from `Flutter/ephemeral`)
- package_info_plus (from `Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos`) - package_info_plus (from `Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos`)
- sentry_flutter (from `Flutter/ephemeral/.symlinks/plugins/sentry_flutter/macos`) - sentry_flutter (from `Flutter/ephemeral/.symlinks/plugins/sentry_flutter/macos`)
- sqflite (from `Flutter/ephemeral/.symlinks/plugins/sqflite/macos`) - sqflite (from `Flutter/ephemeral/.symlinks/plugins/sqflite/darwin`)
- sqlite3_flutter_libs (from `Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/macos`) - sqlite3_flutter_libs (from `Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/macos`)
- url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`)
- window_size (from `Flutter/ephemeral/.symlinks/plugins/window_size/macos`) - window_size (from `Flutter/ephemeral/.symlinks/plugins/window_size/macos`)
SPEC REPOS: SPEC REPOS:
trunk: trunk:
- FMDB
- Sentry - Sentry
- SentryPrivate - SentryPrivate
- sqlite3 - sqlite3
@ -69,11 +62,9 @@ EXTERNAL SOURCES:
sentry_flutter: sentry_flutter:
:path: Flutter/ephemeral/.symlinks/plugins/sentry_flutter/macos :path: Flutter/ephemeral/.symlinks/plugins/sentry_flutter/macos
sqflite: sqflite:
:path: Flutter/ephemeral/.symlinks/plugins/sqflite/macos :path: Flutter/ephemeral/.symlinks/plugins/sqflite/darwin
sqlite3_flutter_libs: sqlite3_flutter_libs:
:path: Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/macos :path: Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/macos
url_launcher_macos:
:path: Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos
window_size: window_size:
:path: Flutter/ephemeral/.symlinks/plugins/window_size/macos :path: Flutter/ephemeral/.symlinks/plugins/window_size/macos
@ -81,15 +72,13 @@ SPEC CHECKSUMS:
device_info_plus: 5401765fde0b8d062a2f8eb65510fb17e77cf07f device_info_plus: 5401765fde0b8d062a2f8eb65510fb17e77cf07f
dynamic_color: 2eaa27267de1ca20d879fbd6e01259773fb1670f dynamic_color: 2eaa27267de1ca20d879fbd6e01259773fb1670f
FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24
FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
package_info_plus: 02d7a575e80f194102bef286361c6c326e4c29ce package_info_plus: 02d7a575e80f194102bef286361c6c326e4c29ce
Sentry: 64a9f9c3637af913adcf53deced05bbe452d1410 Sentry: 8984a4ffb2b9bd2894d74fb36e6f5833865bc18e
sentry_flutter: 57912cf425e09398bdf47f38842a1fcb9836f1be sentry_flutter: c87a0556eeb6cbf7f9f924d30e878bdedf22d364
SentryPrivate: 024c6fed507ac39ae98e6d087034160f942920d5 SentryPrivate: 2f0c9ba4c3fc993f70eab6ca95673509561e0085
sqflite: a5789cceda41d54d23f31d6de539d65bb14100ea sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec
sqlite3: 6e2d4a4879854d0ec86b476bf3c3e30870bac273 sqlite3: f307b6291c4db7b5086c38d6237446b98a738581
sqlite3_flutter_libs: a25f3a0f522fdcd8fef6a4a50a3d681dd43d8dea sqlite3_flutter_libs: 6b9913d8fbb718e5ebf23658aa6934a0fb509c0f
url_launcher_macos: d2691c7dd33ed713bf3544850a623080ec693d95
window_size: 339dafa0b27a95a62a843042038fa6c3c48de195 window_size: 339dafa0b27a95a62a843042038fa6c3c48de195
PODFILE CHECKSUM: 353c8bcc5d5b0994e508d035b5431cfe18c1dea7 PODFILE CHECKSUM: 353c8bcc5d5b0994e508d035b5431cfe18c1dea7