onAdd method
Implementation
@override
List<AnimatedSnackBar> onAdd(
List<AnimatedSnackBar> snackBars, AnimatedSnackBar self) {
final index = snackBars.indexWhere(
(element) => element.info.key.currentContext != null,
);
if (index != -1) {
bool isDesktop =
MediaQuery.of(snackBars[index].info.key.currentContext!).size.width >
600;
bool shouldRemove(AnimatedSnackBar element) {
bool isMobileAndSamePosition =
(element.mobileSnackBarPosition == self.mobileSnackBarPosition &&
!isDesktop);
bool isDesktopAndSamePosition =
(element.desktopSnackBarPosition == self.desktopSnackBarPosition &&
isDesktop);
return element.info.createdAt.isBefore(self.info.createdAt) &&
(isMobileAndSamePosition || isDesktopAndSamePosition);
}
snackBars
.where(
shouldRemove,
)
.forEach((element) {
element.info.key.currentState?.fadeOut().then(
(value) => element.remove(),
);
});
snackBars.removeWhere(shouldRemove);
return snackBars;
}
return snackBars;
}