Rise fabs when snackbar is shown

This commit is contained in:
Juan Gilsanz Polo
2024-02-26 11:15:38 +01:00
parent e127f00762
commit 8785334c25
23 changed files with 371 additions and 264 deletions

View File

@@ -0,0 +1,42 @@
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();
});
}
}