Improved snackbars
This commit is contained in:
@@ -3,8 +3,9 @@ import 'package:flutter/material.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
import 'package:linkdy/providers/snackbar.provider.dart';
|
||||
import 'package:linkdy/utils/snackbar.dart';
|
||||
import 'package:linkdy/i18n/strings.g.dart';
|
||||
import 'package:linkdy/constants/global_keys.dart';
|
||||
import 'package:linkdy/providers/server_instances.provider.dart';
|
||||
import 'package:linkdy/router/routes.dart';
|
||||
import 'package:linkdy/router/paths.dart';
|
||||
@@ -23,7 +24,7 @@ InterceptorsWrapper dioInterceptor(DioInterceptorRef ref) {
|
||||
GoRouter.of(rootNavigatorKey.currentContext!).pushReplacement(RoutesPaths.onboarding);
|
||||
ref.read(apiClientProvider.notifier).disconnectApiClient();
|
||||
ref.read(serverInstancesProvider.notifier).removeServerInstances();
|
||||
ref.read(snackbarProvider.notifier).showSnacbkar(label: t.generic.authTokenNotValid, color: Colors.red);
|
||||
showSnackbar(key: ScaffoldMessengerKeys.root, label: t.generic.authTokenNotValid, color: Colors.red);
|
||||
}
|
||||
handler.next(error);
|
||||
},
|
||||
|
||||
@@ -6,7 +6,7 @@ part of 'dio_interceptor.provider.dart';
|
||||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$dioInterceptorHash() => r'15186eb74bde12048a96b1d38f1c9308c9f435a8';
|
||||
String _$dioInterceptorHash() => r'16ba03ce5f4547c91566a38f348cf85df73fbfca';
|
||||
|
||||
/// See also [dioInterceptor].
|
||||
@ProviderFor(dioInterceptor)
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
import 'package:linkdy/constants/global_keys.dart';
|
||||
import 'package:linkdy/models/providers_models/snackbar_status.model.dart';
|
||||
|
||||
part 'snackbar.provider.g.dart';
|
||||
|
||||
@Riverpod(keepAlive: true)
|
||||
class Snackbar extends _$Snackbar {
|
||||
@override
|
||||
SnackbarStatusModel build() {
|
||||
return SnackbarStatusModel();
|
||||
}
|
||||
|
||||
void showSnacbkar({
|
||||
required String label,
|
||||
required Color color,
|
||||
Color? labelColor,
|
||||
GlobalKey<ScaffoldMessengerState>? key,
|
||||
}) async {
|
||||
final GlobalKey<ScaffoldMessengerState> scaffoldKey = key ?? scaffoldMessengerGlobalKey;
|
||||
if (state.visible == true) {
|
||||
scaffoldKey.currentState?.clearSnackBars();
|
||||
await Future.delayed(const Duration(milliseconds: 500));
|
||||
}
|
||||
state.visible = true;
|
||||
ref.notifyListeners();
|
||||
|
||||
final snackBar = SnackBar(
|
||||
content: Text(
|
||||
label,
|
||||
style: TextStyle(color: labelColor ?? Colors.white),
|
||||
),
|
||||
backgroundColor: color,
|
||||
);
|
||||
scaffoldKey.currentState?.showSnackBar(snackBar).closed.then((value) {
|
||||
state.visible = false;
|
||||
ref.notifyListeners();
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'snackbar.provider.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$snackbarHash() => r'2522a7ebc0bdd891cea5cb342bd1ff2419473a00';
|
||||
|
||||
/// See also [Snackbar].
|
||||
@ProviderFor(Snackbar)
|
||||
final snackbarProvider =
|
||||
NotifierProvider<Snackbar, SnackbarStatusModel>.internal(
|
||||
Snackbar.new,
|
||||
name: r'snackbarProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product') ? null : _$snackbarHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
typedef _$Snackbar = Notifier<SnackbarStatusModel>;
|
||||
// ignore_for_file: type=lint
|
||||
// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member
|
||||
Reference in New Issue
Block a user