{"id":25856499,"url":"https://github.com/abdushakoor12/easy_nav","last_synced_at":"2025-10-18T18:59:16.463Z","repository":{"id":56828311,"uuid":"448791757","full_name":"abdushakoor12/easy_nav","owner":"abdushakoor12","description":null,"archived":false,"fork":false,"pushed_at":"2024-03-27T16:21:17.000Z","size":22,"stargazers_count":3,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-15T06:43:18.570Z","etag":null,"topics":["dart","dialogs","flutter","navigator","no-context"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/abdushakoor12.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-01-17T07:21:23.000Z","updated_at":"2024-05-09T04:27:11.000Z","dependencies_parsed_at":"2022-08-29T02:40:55.115Z","dependency_job_id":null,"html_url":"https://github.com/abdushakoor12/easy_nav","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abdushakoor12%2Feasy_nav","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abdushakoor12%2Feasy_nav/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abdushakoor12%2Feasy_nav/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abdushakoor12%2Feasy_nav/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/abdushakoor12","download_url":"https://codeload.github.com/abdushakoor12/easy_nav/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241404451,"owners_count":19957659,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dart","dialogs","flutter","navigator","no-context"],"created_at":"2025-03-01T18:18:41.812Z","updated_at":"2025-10-18T18:59:16.370Z","avatar_url":"https://github.com/abdushakoor12.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"## EasyNav\n\n[pub package](https://img.shields.io/pub/v/easy_nav.svg?label=easy_nav\u0026color=blue)](https://pub.dartlang.org/packages/easy_nav)\n\nJust a simple wrapper around flutter navigator, dialogs and snackbar to do those things without context.\n\nDon't forget to do add the navigator key:\n\n```dart\n @override\n  Widget build(BuildContext context, WidgetRef ref) {\n    return MaterialApp(\n      \n      ...\n      navigatorKey: EasyNav.navigatorKey,\n      ...\n    );\n  }\n```\n\n### Navigation\n\nInitialize NavManager in your viewmodel or pass it via constructor.\n\n```dart\nclass HomeViewModel extends ChangeNotifier{\n  final navManager = NavManager();\n  \n  ...\n  ...\n  ...\n}\n```\n\nAnd navigate from there\n```dart\n  // Naviagte to widgets\n  navManager.goTo(HomePage());\n\n  navManager.replace(HomePage());\n\n  navManager.goToAndRemoveUntil(HomePage(), (route) =\u003e false);\n\n  // Named Routes\n  navManager.goToNamed(\"/homepage\");\n\n  navManager.replaceNamed(\"/homepage\");\n\n  navManager.goToNamedAndRemoveUntil(\"/homepage\", ((route) =\u003e false));\n\n  // Full Screen Dialogs\n    navManager.goTo(AddContactPage(), fullScreenDialog: true);\n```\n\n### Dialogs\n\nInitialize DialogManager in your viewmodel or pass it via constructor.\n\n```dart\nclass HomeViewModel extends ChangeNotifier{\n  final dialogManager = DialogManager();\n  \n  ...\n  ...\n  ...\n}\n```\n\nShow dialogs from viewModel\n```dart\n  dialogManager.showEasyDialog(builder: (context){\n      return YourWidget();\n  });\n\n  dialogManager.showEasyDatePicker(initialDate: DateTime.now(),\n     firstDate: DateTime.now().subtract(const Duration(hours: 24 * 365)),\n      lastDate: DateTime.now().subtract(const Duration(hours: 24 * 365)),\n  );\n\n  dialogManager.showEasyGeneralDialog(pageBuilder: ((context, animation, secondaryAnimation) {\n    return YourWidget();\n  }));\n```\n\n### Bottom Sheets\n\nInitialize BottomSheetManager in your viewmodel or pass it via constructor.\n\n```dart\nclass HomeViewModel extends ChangeNotifier{\n  final bottomSheetManager = BottomSheetManager();\n  \n  ...\n  ...\n  ...\n}\n```\n\nShow Bottom Sheets from viewModel\n```dart\n  bottomSheetManager.showEasyBottomSheet(builder: (context){\n      return YourWidget();\n  });\n\n  bottomSheetManager.showEasyModalBottomSheet(builder: (context){\n    return YourWidget();\n  });\n```\n\n### Snackbars\n\nInitialize SnackBarManager in your viewmodel or pass it via constructor.\n\n```dart\nclass HomeViewModel extends ChangeNotifier{\n  final snackBarManager = SnackBarManager();\n  \n  ...\n  ...\n  ...\n}\n```\n\nShow Snackbars from viewModel\n```dart\n  snackBarManager.showEasySnackbar(const SnackBar(content: Text(\"Item Deleted\")));\n\n  snackBarManager.clearAllSnacks();\n\n  snackBarManager.hideCurrentSnackBar();\n  \n  snackBarManager.removeCurrentSnackBar();\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabdushakoor12%2Feasy_nav","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabdushakoor12%2Feasy_nav","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabdushakoor12%2Feasy_nav/lists"}