https://github.com/abdushakoor12/easy_nav
https://github.com/abdushakoor12/easy_nav
dart dialogs flutter navigator no-context
Last synced: 4 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/abdushakoor12/easy_nav
- Owner: abdushakoor12
- License: mit
- Created: 2022-01-17T07:21:23.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-03-27T16:21:17.000Z (about 1 year ago)
- Last Synced: 2024-11-15T06:43:18.570Z (7 months ago)
- Topics: dart, dialogs, flutter, navigator, no-context
- Language: Dart
- Homepage:
- Size: 21.5 KB
- Stars: 3
- Watchers: 1
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
## EasyNav
[pub package](https://img.shields.io/pub/v/easy_nav.svg?label=easy_nav&color=blue)](https://pub.dartlang.org/packages/easy_nav)
Just a simple wrapper around flutter navigator, dialogs and snackbar to do those things without context.
Don't forget to do add the navigator key:
```dart
@override
Widget build(BuildContext context, WidgetRef ref) {
return MaterialApp(
...
navigatorKey: EasyNav.navigatorKey,
...
);
}
```### Navigation
Initialize NavManager in your viewmodel or pass it via constructor.
```dart
class HomeViewModel extends ChangeNotifier{
final navManager = NavManager();
...
...
...
}
```And navigate from there
```dart
// Naviagte to widgets
navManager.goTo(HomePage());navManager.replace(HomePage());
navManager.goToAndRemoveUntil(HomePage(), (route) => false);
// Named Routes
navManager.goToNamed("/homepage");navManager.replaceNamed("/homepage");
navManager.goToNamedAndRemoveUntil("/homepage", ((route) => false));
// Full Screen Dialogs
navManager.goTo(AddContactPage(), fullScreenDialog: true);
```### Dialogs
Initialize DialogManager in your viewmodel or pass it via constructor.
```dart
class HomeViewModel extends ChangeNotifier{
final dialogManager = DialogManager();
...
...
...
}
```Show dialogs from viewModel
```dart
dialogManager.showEasyDialog(builder: (context){
return YourWidget();
});dialogManager.showEasyDatePicker(initialDate: DateTime.now(),
firstDate: DateTime.now().subtract(const Duration(hours: 24 * 365)),
lastDate: DateTime.now().subtract(const Duration(hours: 24 * 365)),
);dialogManager.showEasyGeneralDialog(pageBuilder: ((context, animation, secondaryAnimation) {
return YourWidget();
}));
```### Bottom Sheets
Initialize BottomSheetManager in your viewmodel or pass it via constructor.
```dart
class HomeViewModel extends ChangeNotifier{
final bottomSheetManager = BottomSheetManager();
...
...
...
}
```Show Bottom Sheets from viewModel
```dart
bottomSheetManager.showEasyBottomSheet(builder: (context){
return YourWidget();
});bottomSheetManager.showEasyModalBottomSheet(builder: (context){
return YourWidget();
});
```### Snackbars
Initialize SnackBarManager in your viewmodel or pass it via constructor.
```dart
class HomeViewModel extends ChangeNotifier{
final snackBarManager = SnackBarManager();
...
...
...
}
```Show Snackbars from viewModel
```dart
snackBarManager.showEasySnackbar(const SnackBar(content: Text("Item Deleted")));snackBarManager.clearAllSnacks();
snackBarManager.hideCurrentSnackBar();
snackBarManager.removeCurrentSnackBar();
```