* Add ShellRoute support
* Address code review comments
- fix CHANGELOG
- remove TODO
- Use a Map to make navigator key algorithm O(n)
- rename navigatorKey and shellNavigatorKey to parentNavigatorKey and navigatorKey
- Make navigator key optional in build phase
* Add pageBuilder to ShellRoute
* Add child route to ShellRoute doc comment
* Apply suggestions from code review
Co-authored-by: Loïc Sharma <737941+loic-sharma@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Loïc Sharma <737941+loic-sharma@users.noreply.github.com>
* Remove path and other fields from ShellRoute, disable ShellRoute code
* Make ShellRoute not require a path
* Provide a unique pageKey for ShellRoute
* add copyright header
* Fix GoRouteMatch pageKey for ShellRoute
* Add test, fix sample, add restorationScopeId
* Simplify how pages are added to pagesForOutOfScopeNavigator
* Fix analysis warnings
* add Nested Navigation section to README
* format
* Remove redundant comment
* rename AppScaffold to ScaffoldWithNavBar
* add explanation to shell route example
* Throw error if push() contains a ShellRoute
* Handle pop correctly when there is a ShellRoute with one child.
* Fix popRoute implementation
* Fix conflicts with queryParametersAll feature
* format
* Apply suggestions from code review
* Update comments
* Update packages/go_router/README.md
Co-authored-by: Loïc Sharma <737941+loic-sharma@users.noreply.github.com>
* update README
* Fix analysis issues
* Refactor _buildRecursive to use a Map
Co-authored-by: chunhtai <chunhtai@users.noreply.github.com>
* rename GoRouteMatch back to RouteMatch
* Add link to README
* Share code between buildPage and tryBuild
* use buildPages in tryBuild
* Insert shell route key instead of merging maps
* Throw an exception if child is null
* make buildPageForRoute private
* make callRouteBuilder private
* thow exception instead of error
* Add _PageBuilderForAppType typedef
* make buildErrorNavigator private
* make buildErrorPage private
* make RouteBuilderException and RouteBuilderError private
* use i-=1 instead of i--
* opt out of null safety for navigatorKey.currentState
* Revert rename to GoRouterState subloc and fullpath
* Add ignore: unused_element
* Rename to _debugAssertNotEmpty
* Throw exception if top route is not a GoRoute during redirection
* Move docstring to class
* Use a single sentence for the first line of ShellRoute doc comment
* Add sample code for ShellRoute
* [go_router] Fix named routing when using ShellRoutes
* [go_router] Add `buildPageWithState` (#2444)
* Assert ShellRoute sub-routes are not empty
* Add Android back button test for ShellRoute
* Add canPop tests
* Add configuration test for navigator keys
* fix analysis warnings
* Update pubspec.yaml
* Add link to ShellRoute API documentation
* Remove RouteConfigurationError, use assertions instead
* Add test for empty ShellRoute with empty routes list
* Assert that parentNavigatorKey configuration is correct
* Update canPop and maybePop, add a test
* Use assert for asserting the last route match contains a GoRoute
* use variable for last GoRoute in match list
* format
* Use assert when shellroute has no children
* Move log out of assert
* use assert for configuration checks
* Add test
* remove RedirectionException
* move GoError to separate file
* Add newline
* Update ShellRouteBuilder doc comment
* Update ShellRoutePageBuilder doc comment
* Check that ShellRoute children are a GoRoute and contain parentNavigatorKey
* Remove late keyword
* Add copyright header
* remove RouteMatcher.canPop()
* wrap calls to canPop in an assert
* assert that no GoRoute ancestor has a different parentNavigatorKey
* Fix algorithm for checking parent navigator keys
* Fix valid configuration test
* Fix incorrect parentNavigatorKey in test
* Fix overlapping parentNavigatorKey assertions
* Remove unused variable
Co-authored-by: Loïc Sharma <737941+loic-sharma@users.noreply.github.com>
Co-authored-by: chunhtai <chunhtai@users.noreply.github.com>
Co-authored-by: Jonathan Friesen <jonathanfriesen@gmail.com>
Co-authored-by: Valentin Vignal <32538273+ValentinVignal@users.noreply.github.com>
* Run scorecards only on pushes to main.
This is to prevent the workflow from failing when running in branches
with no previous data to compare.
It also adds the scorecard badge to the README file.
* Add timeout and run_if to ci_yaml_roller.
* Added SliverGridStaggeredTileLayout and staggered constructor for DynamicGridView
* Added documentation, tests and bug fixes for DynamicSliverGridGeometry and others
* Added simple demo and fixed formating
* Added copyright
* Fixed formatting
* Added const constructor to DynamicSliverGridDelegateWithFixedCrossAxisCount
* Updated tests with new sizes
* Updated readme
* Fixed formatting and documentation
* Modified types and functionality for main axis counts and extents
* Updated readme
* Added test
* Fixed TODO
* Fixed readme
* Added example (needed for code excerpts)
* Added build_runner
* Test excerpts
* Changed sdk version for example
* Changed sdk version again
* Removed example
* Removed assets
* Final rebase
* Formatting
* Formatting
* Fixed test
Co-authored-by: Luis López <davidlopezm@google.com>