- π οΈ : FIX A bug has been fixed
- β¨ : NEW New features have been added. Those are non breaking.
- π¨ : BREAKING Some class/attribute/method changed and will break your code. Read comment to know how to migrate.
- π : DEPRECIATED Some class/attribute/method is depreciated. Read the documentation to know how to migrate.
- β¨ : Add
useInheritedMediaQuery
toVRouter
,WidgetsVRouter
andCupertinoVRouter
(thanks @Mitsuroseba !)
- β¨ :
VRouteRedirector.parse
can now be used for complex redirections
- π οΈ : Fix a bug where logs broke hot reload, thanks @doldremus (Fixes lulupointu#169)
- π οΈ : Don't add the
hash
if it is empty intoNamed
- π οΈ : Don't add the
hash
if it is empty
- π οΈ : Hash passed directly to
VRedirector.to
path
will be taken into account - π οΈ : Specify
to
isReplacement
type
- π οΈ : The exception 'Tried to get applicationInstanceId but it has not been set' should no longer appear (Fixes lulupointu#163 and lulupointu#168)
- β¨οΈ : A hash (or fragment) can now be set as part of the url
- β¨ : VAnchor allows you to easily create anchor which change the current hash and scroll to the widget when clicked
- π οΈ : Small refactoring
- π οΈ : Dynamically moving VNester.child around the widget tree could cause popping issues
- π οΈ : Fix VWidgetGuard.onSystemPop in Nav1 pushed routes
- π οΈ : Not putting VNester.widgetBuilder child in the widget tree is now possible
- π οΈ : Redirection on the web now waits for the browser to update before redirecting
- β¨ : New .builder (VWidget.builder and VNester.builder) constructors gives easy access to VRouter data
- β¨ : Wildcard support
- Remove dependency of path_to_regexp
- π οΈ : Update README from
push
toto
API
- π οΈ :
VRedirector.toNamed
was not passing thepathParameters
along, cause any such navigation to fail
- π οΈ : Fix bug when changing
VNester
instances while pages had been pushed (lulupointu#116) - π οΈ : The page transition animation is no longer shown on app start
- π οΈ :
to
with path parameters inpath
is now properly handled (This also caused issue when using the url bar with path parameters). Fixes lulupointu#113
- π οΈ :
toExternal
no longer yield an unexpected null value
- π οΈ : Fix deep-linking on android cold start
- β¨ : Remove dependency on the
js
package
- π οΈ : dartfmt formatted
- π¨ :
VRedirector.to
was renamedVRedirector.toUrl
- π :
VRedirector.from
was renamedVRedirector.fromUrl
- π :
push
should NOT be used anymore. DO useto
instead. - π :
pushReplacement
should NOT be used anymore. DO useto(..., isReplacement: true)
instead. - π :
pushNamed
should NOT be used anymore. DO usetoNamed
instead. - π :
pushReplacementNamed
should NOT be used anymore. DO usetoNamed(..., isReplacement: true)
instead. - π :
pushSegments
should NOT be used anymore. DO usetoSegments
instead. - π :
pushExternal
should NOT be used anymore. DO usetoExternal
instead. - π :
replaceHistoryState
should NOT be used anymore. DO useto(..., historyState: newHistoryState, isReplacement: true)
instead. - β¨ : The new
toX
have even more and better documentation than theirpushX
counterpart - β¨ : vrouter.dev has been updated for the new
toX
API - π¨ :
VRouterData
was renamedVRouterDataNavigator
(this should not impact anyone) - π¨ :
VLocation
was renamedVUrlHistory
(this should not impact anyone) - β¨ :
historyBack()
goes back from 1 in the history - β¨ :
historyForward()
goes forward to 1 in the history - β¨ :
historyGo(int delta)
goes to i (positive or negative) from the history - β¨ :
historyCanBack()
check whether going back from 1 in the history is possible - β¨ :
historyCanForward()
check whether going forward to 1 in the history is possible - β¨ :
historyCanGo(int delta)
check whether going to i (positive or negative) from the history is possible - β¨ : vrouter.dev has documentation and example on the new
history
API - β¨ : VRouter now has logs!
VRouter.logs
can be change to change which logs to show (VLogs.none
,VLogs.info
orVLogs.warning
) - β¨ : vrouter.dev has a new example on
stackedRoutes
- π οΈ : Mobile deep-linking should now work
- π οΈ : Changing
VRouter.navigatorKey
won't produce any flashes anymore (Fixes: lulupointu#89)
- π οΈ : Having a base path for a webapp is now supported. Don't forget to do https://flutter.dev/docs/development/ui/navigation/url-strategies#hosting-a-flutter-app-at-a-non-root-location (not VRouter specific). (Should fix lulupointu#101)
- π οΈ : Making pageTransitionDuration use consistent
- π οΈ : Delaying pop errors so that
VPopHandler
can redirect or stop the pop before the error - π οΈ : Computing the route on the first frame instead of delaying it
- π οΈ : Moving the use of a
context
outside of a callback
- π οΈ : Moving the use of a
context
outside ofaddPostFrameCallback
to avoid error (yes again)
- π οΈ : Moving the use of a
context
outside ofaddPostFrameCallback
to avoid error - β¨ : Improving the warning message if using several packages which all try to setup the url strategy
- π οΈ : Showing then hiding
VNester.widgetBuilder
child
no longer causes an error
- π οΈ : Not using
VNester.widgetBuilder
child
no longer causes an error - β¨ :
VRouter.of(context).names
can now be used to get every names present in the current routes stack
- π οΈ :
initialUrl
now works on the web again (Again ?!) - π οΈ :
navigatorKey
now works (Fixes lulupointu#82)
- π οΈ :
initialUrl
now works on the web again
- π :
appRouterKey
should not be used anymore. If you need to updateroutes
usenavigatorKey
instead - π οΈ : Correcting expression to catch unknown path in
UnknownUrlVError
- β¨ :
navigatorKey
can now be specified manually
- π οΈ : Correct
VRoute
toVWidget
inUnknownUrlVError
(thanks evandrmb) - π οΈ : Deep-linking is no longer broken
- π οΈ : Solved issues which might have erased when the url was modified manually (1. Broken browser navigation control, 2. Bad path restoration after hot restart)
- β¨ : The
path
can now be accessed withVRouter.of(context).path
- π οΈ : Renaming
VRouterScopeDuplicateException
to_VRouterScopeDuplicateError
since this is an error - π οΈ : Postponing some initialization until
build
. This should fix issues with easy_localization package (lulupointu#60)
- π οΈ : Replace a remaining
VStacked
byVWidget
in README
- π οΈ : Remove duplicate
queryParameters
in pop and systemPop
- π¨ :
VRouterScope
now holds avRouterMode
attribute andVRouterDelegate
does not - π οΈ : On the web, the url is stable on hot restart
- π¨ :
VRouterScope
should now be put at the top of the widget tree. If you are using...App.router
, you must insertVRouterScope
on top of...App.router
. - π οΈ : VRouter does not use the singleton which was introduced in
1.1.3+2
anymore - β¨ : Use
appRouterKey
or change...App.key
to recompute theroutes
, see the documentation for more details
- π οΈ : VRouter can now be used with different keys without losing url state
- π οΈ : Fix null error on web
- π οΈ : Navigator observers will no longer throw error with VNester
- π οΈ :
WidgetsBinding.instance
is replaced withWidgetsFlutterBinding.ensureInitialized()
to avoid null errors (Closes lulupointu#67) - β¨ :
Navigator.push
pages are now popped when using android back button (Closes lulupointu#63) - β¨ :
Navigator.push
pages are now popped when using browser back button (Closes lulupointu#63)
- π οΈ : Exporting helpers (such as VMaterialApp)
- π οΈ : Update discord invite link to not expire
- π οΈ : Import typo prevented web compilation
- π οΈ : Refactor to re-enable IDEs autocompletion
Refactor to re-enable
- π οΈ :
pathParameters
are now all passed toVNester.subroutes
- π οΈ :
AppBar
now displays aBackButton
innestedRoutes
if it can pop
- π οΈ : Fix pushSegments: it was missing a '/' at the start of the url given to push
- β¨ : Adding pushSegments which encodes the different part of the url for you
- π οΈ : pub.dev like count shield was not disposed properly on package updates
- π οΈ :
VWidgetGuard
was not disposed properly - β¨ : Redesigned README: more readable and added
VRouteElementBuilder
info
- π οΈ :
pathParameters
will be passed properly inVNester
- π οΈ : A edge in
onPop
ofVNesterPageBase
has been solved
- π οΈ :
onSystemPop
will now pop by also looking in nestedRoutes - β¨ :
VNester
now supportsnavigatorKey
, see the documentation for more details
- π : Please use
VDefaultPage
instead ofVBasePage
- β¨ : Add
fullscreenDialog
option toVWidget
andVWidgetBase
- π οΈ :
onPop
andonSystemPop
are now called when needed, even if deeply nested
- π οΈ : Remove
scrollBehavior
fromCupertinoVRouter
- π οΈ : Make
VRouteInformationParser
andVBackButtonDispatcher
visible
- π¨ :
onPop
andonSystemPop
are not called ONLY when theVRouteElement
are popped (not as long as they are in the route) - π¨ :
pageBuilder
now gives you aname
parameter that you can give to yourPage
. Change(key, child) => YourPage(key, child)
to(key, child, name) => YourPage(key, child, name)
- π οΈ :
VWidgetGuard
is now disposed properly when it is no longer in the route - π οΈ :
VWidgetGuard.beforeUpdate
is now called properly - β¨ : Support for extending
VRouteElementBuilder
to create customVRouteElement
- β¨ :
VPath
which only constrains the path, without the need to given a widget or a page - β¨ :
VPageBase
which is the same asVPage
without the argument relative to the path - β¨ :
VWidgetBase
which is the same asVWidget
without the argument relative to the path - β¨ :
VNesterBase
which is the same asVNester
without the argument relative to the path - β¨ :
VNesterPageBase
which is the same asVNesterPage
without the argument relative to the path - β¨ :
MaterialApp.router
CupertinoApp.router
orWidgetApp.router
can now be used usingVRouterDelegate
,VRouteInformationParser
andVBackButtonDispatcher
- β¨ :
navigatorObservers
can now be passed toVRouter
and will be passed to everyNavigator
- Refactor to use the new
VRouteElementBuilder
- Removed dependency on SimpleUrlHandler
- Remove prints
- β¨ :
pop
andpushNamed
now return errors when needed
- π¨ : Changing
pop
andsystemPop
default behaviour to include previous path parameters
- π οΈ :
VRouter.of
error when called fromVRouter.builder
- π οΈ : stackedRoute in VNested which did not built VNester widget
- π οΈ : vRedirector use in onPop and onSystemPop which was only stopping the redirection
- π οΈ : last onPop on MacOS, Linux and Windows
- π οΈ : initialUrl breaking deep-linking
- π οΈ : default pop onto path parameters
- Add more migration doc
- π οΈ : default Page key value
- π οΈ : pop forming path when parent path end with '/'
- β¨ : Provide customizable key argument for VRouteElement with
widget
argument
- Solve pop issue when calling setState before popping
- Remove prints
- π οΈ : url sync in edge case redirection situations
- Code formatting using dartfmt
- π¨ : Adding LocalKey to VPage.buildPage, helping animations
- Code formatting using dartfmt
- Change import to support desktop yet again
- Update readme
- Change import to support desktop
- Change dependency constraints for null safety
- π¨ : VRouteData should not be used anymore, use VRouterData to access the current route data
- π¨ : VRouterData should not be used to get the navigation methods (push, ...), use VRouter instead
- π¨ : Navigation control methods inside VRouteElement (beforeLeave, beforeEnter, ...) are now called even if the VRouteElement is not the last element of the route
- β¨ : New description in classes comment, example of class uses can now be found there
- β¨ : Use VRouterData to access route information (url, path params, ...)
- β¨ : Use VRouter to access navigation methods (push, ...)
- β¨ : Use context.VRouter instead of VRouter.of(context)
- β¨ : Use context.VRouterData instead of VRouterData.of(context)
- β¨ : Use context.VRouteElementData instead of VRouteElementData.of(context)
- β¨ : You can now set a initial url using VRouter.initialUrl and the InitialUrl class
- β¨ : VRouteElements now have beforeUpdate method called when the route changes but it remains in the route
- β¨ : widgetBuilder (from VChild and VStack) have a new attribute which gives you access to the current vChild in its stackedRoutes if any
See the migration guide at the end of the README to migrate!
- β¨ : Enable access to VRouterState to enable navigation without context
- Update README
- Change import to display web badge on pub.dev
- β¨ : Enable CupertinoPage when on IOS (lulupointu#3)
- π οΈ : Map type error (lulupointu#4)
- Path parameters given in pushNamed are now encoded
- β¨ : pushNamed will now also search in aliases and pick the right path depending on the given pathParameters
- Minor correction in the default pop event
- β¨ : give a vRedirector when handling pop events
- π¨ : pop events don't have (context, from to). See VRedirector for the new argument
- Correcting CHANGELOG
- β¨ : widgetBuilder to VChild and VStack
- β¨ : add vRouteData in beforeLeave and beforeEnter
- π οΈ : error when replacing path parameters in pushNamed
- π οΈ : error with pushReplace on the web
- π οΈ :Fix error when pushing a url which does not start with '/'
- Formatting with dartfmt
- Remove unnecessary statements
- Remove unnecessary statements
- Add package description in pubspec.yaml
- Initial nullsafe release