beamer 1.0.0 beamer: ^1.0.0 copied to clipboard
A routing package that lets you navigate through guarded page stacks and URLs using the Router and Navigator's Pages API, aka "Navigator 2.0".
1.0.0 #
- BREAKING: "top-level state", the one in
BeamerDelegate
is nowRouteInformation
instead ofBeamState
BeamerDelegate.state
doesn't exist anymore and is replaced withBeamerDelegate.configuration
which isRouteInformation
and notBeamState
locationBuilder
now works withRouteInformation
andBeamConfiguration
instead ofBeamState
super()
constructor onBeamLocation
now takes optionalRouteInformation
instead ofBeamState
- in order to continue using custom
BeamLocation
s withBeamState
state, generic type has to be specified;class MyBeamLocation extends BeamLocation<BeamState>
- BREAKING:
pathBlueprints
is renamed topathPatterns
BeamLocation.pathPatterns
isList<Pattern>
BeamState.pathBlueprintSegments
renamed toBeamState.pathPatternSegments
BeamGuard.pathBlueprints
renamed toBeamGuard.pathPatterns
- BREAKING:
SimpleLocationBuilder
is renamed toRoutesLocationBuilder
- also the
SimpleBeamLocation
is renamed toRoutesBeamLocation
routes
values now additionally receivedata
- also the
- BREAKING:
beamStateHistory
andbeamLocationHistory
have been replaced withbeamingHistory
that is aList<BeamLocation>
and eachBeamLocation
hashistory
that isList<HistoryElement>
whereHistoryElement
holdsRouteInformation
andBeamParameters
. - BREAKING:
BeamerDelegate.listener
has been renamed toBeamerDelegate.routeListener
- BREAKING: The property
pageRouteBuilder
inBeamPage
is replaced with a new propertyrouteBuilder
which works with anyRouteBuilder
not justPageRouteBuilder
. - BREAKING:
BeamGuard
beamTo
receives the origin and targetBeamLocation
s alongsideBuildContext
. - BREAKING:
BeamGuard
beamToNamed
is now a function that receives the origin and targetBeamLocation
s and returns aString
. - Add: guard_riverpod example
- Add: firebase_core example
- Add: firebase_auth example
- Add: change_notifier_custom_state example
- Add:
BeamerBackButtonDispatcher.alwaysBeamBack
to make Android back button always go to previous route, even if it canpop
. - Add:
BeamPage.routePop
that can be used foronPopPage
instead of defaultpathsegmentPop
- Add:
BeamerDelegate.buildListener
, which is called after the pages are built. - Add:
fullScreenDialog
property toBeamPage
- Add: flutter_lints
- Add: a presentation resource about beamer
- Fix: clearing history range when using
popToNamed
- Fix: passing
BeamPage.title
toCupertinoPageRoute
s
0.14.1 #
- Add:
updateParent
(defaulttrue
) toBeamerDelegate
- Fix: ignoring query on initial path
0.14.0 #
- BREAKING:
routes
inSimpleLocationBuilder
now also bring thestate
- Add: support for
RegExp
inpathBlueprints
(in bothBeamGuard
s andBeamLocation
s) - Add: updating nested
Beamer
s on parent navigation - Add:
onBack
toBeamerbackButtonDispatcher
- Add:
navigator
getter toBeamerDelegate
- Add:
beamStateHistory
andBeamLocationHistory
tocontext
extension methods - Add:
data
parameter tobeamBack
- Change:
BeamPage.pageRouteBuilder
return type to be a superclass - Fix: removing last
BeamState
from history on defaultpop
- Fix:
BeamGuard
behavior on query parameters - Fix: ignoring trailing
/
in URIs - Fix: keeping
data
as long as possible when beaming - Improved Android back button behavior
- Improved bottom navigation examples
- Improved README
0.13.3 #
- Add: authentication_riverpod example
- Add: "Tips and Common Issues" to README
- Fix: Drawer pop
- Fix:
beamBackOnPop:true
while beaming - Make
beamStateHistory
andbeamLocationHistory
public
0.13.2 #
- Add:
BeamerDelegate.notFoundRedirectNamed
- Add: public static
BeamPage.defaultOnPopPage
- Fix: top-level guard updating URL
- Improved guards example
- Improved README Quick Start
0.13.1 #
- Fix: correctly updating delegate after applying guards
0.13.0 #
- BREAKING: renamed
BeamerRouterDelegate
toBeamerDelegate
- BREAKING: renamed
BeamerRouteInformationParser
toBeamerParser
- BREAKING: renamed
pagesBuilder
tobuildPages
- BREAKING: renamed
Beamer.of(context).currentLocation
toBeamer.of(context).currentBeamLocation
- Add:
BeamPage.popToNamed
andBeamPage.onPopPage
for fine control of popping - Add:
BeamPage.title
for setting the browser tab title - Add:
SimpleLocationBuilder
can now mixBeamPage
s andWidget
s - Add:
BeamerParser.onParse
for intercepting the parsed state on app load - Add: encoding the
data
into browser history - Add: blocking capability to
BeamGuard
s - Add: slide and scale transitions to
BeamPageType
- Add: optional
transitionDelegate
for beaming - Fix: cascade guarding
- Fix: delegate listener not being called always
- All examples improved and migrated to null-safety
- Improved documentation
0.12.4 #
- Add
Beamer.setPathUrlStrategy()
for removing#
from URL - Add persistent auth state on browser refresh in authentication_bloc example
- Fix detection of
NotFound
when usingSimpleLocationBuilder
- Fix updating route on guard actions
- Fix not pushing
BeamState
in history if it's on top - Fix taking
currentLocation
on setting initial path
0.12.3 #
- Add authentication_bloc example
- Fix
SimpleBeamLocation
ignoring query - Fix updating delegate state on location state change
0.12.2 #
- Add
listener
attribute toBeamerRouterDelegate
- Add
root
attribute toBeamerRouterDelegate
and{bool root = false}
attribute toBeamer.of
- Add
canHandle(Uri uri)
method toBeamLocation
- Fix Updating parent on nested navigation
- Fix README typos
0.12.1 #
- Fix updating browser history
0.12.0 #
- BREAKING: There's no
RootRouterDelegate
any more. Just rename it toBeamerRouterDelegate
. If you were using itshomeBuilder
, useSimpleLocationBuilder
and thenroutes: {'/': (context) => HomeScreen()}
- BREAKING: Behavior of
beamBack()
was changed to go to previousBeamState
, notBeamLocation
. If this is not what you want, usepopBeamLocation()
that has the same behavior as oldbeamback()
- Fix: Important bug while using multiple sibling
Beamer
s
0.11.4 #
- Fix
currentLocation
without listener after guard beam
0.11.3 #
- Add
beamBackTransitionDelegate
toBeamerRouterDelegate
- Add
transition_delegates.dart
with some useful transition delegates - Tweak deep_location example to show this more clearly
0.11.2 #
- Fix lost
navigationNotifier
on rebuilds with nestedBeamer
s
0.11.1 #
- Fix possibly null
_currentLocation
0.11.0+1 #
- add missing ToC titles
0.11.0 #
- migrated to null safety
- BREAKING:
Beamer
now takesrouterDelegate
, notbeamLocations
directly - BREAKING:
BeamerRouterDelegate.beamLocations
is nowlocationBuilder
- BREAKING:
pagesBuilder
now also bringsstate
- Add
beamToNamed
toBeamGuard
- Add various
LocationBuilder
s - Add
transitionDelegate
toBeamLocation
andBeamerRouterDelegate
- Add
type
andpageRouteBuilder
toBeamPage
, for transition control - Add
initialPath
toBeamerRouterDelegate
- Add
popTo
/popToNamed
options for beaming - Add
onPopPage
toBeamLocation
0.10.5 #
- Remove
NavigationNotifier.currentLocation
(not needed)
0.10.4 #
- Add
BeamGuard.beamToNamed
0.10.2 #
- Fix non-existent state if not set explicitly
- (slight) Change to a signature of
BeamLocation.createState
, but hopefully no one has used it yet to be affected :)
0.10.1 #
- Fix creation of a custom
BeamState
- Add tests and doc comments for
BeamState
0.10.0 #
- BREAKING Removed most attributes from
BeamLocation
and put them intoBeamLocation.state
- BREAKING Changed
BeamLocation
constructor to take onlystate
. - Add
RootRouterDelegate
for nested navigation - Add
BeamState
for more declarative experience
0.9.3 #
- Add
replaceCurrent
attribute (defaultfalse
) to beaming function - Fix old information at Guards section in README
0.9.2 #
- Fix removing last path segment from possibly unmodifiable List
0.9.1 #
- Fix removing the last empty path segment when it's the only one
0.9.0+1 #
- Fix formatting
0.9.0 #
- Add removing duplicates in
beamHistory
+BeamerRouterDelegate.removeDuplicateHistory
- Add implicit updates of current location +
BeamerRouterDelegate.preferUpdate
- Add more Beamer extensions to
BuildContext
- Remove the need for
back_button_interceptor
package (not that it's not good, but we realized it can be implemented more naturally)
0.8.2 #
- Add optional
notFoundRedirect
toBeamerRouterDelegate
- Fix parsing URIs in the form
/path/
the same as/path
0.8.1+1 #
- Fix README ToC links and typos
0.8.1 #
- Remove dart:io
0.8.0 #
- BREAKING:
BeamLocation.pages
is nowBeamLocation.pagesBuilder
- BREAKING:
BeamerRouterDelegate
now takesbeamLocations
andBeamerRouteInformationParser
nothing - NEW FEATURE:
beamToNamed
- NEW FEATURE:
canBeamBack
andbeamBackLocation
helpers - NEW FEATURE:
BeamGuard.onCheckFailed
- NEW FEATURE:
stacked
parameter for beaming - Add: back_button_interceptor package automatic
beamBack
on Android back button - Add more details to README: Key Concepts
- Add invite to Discord community for beamer help/discussion/chat
0.7.0 #
- BREAKING:
BeamerRouterDelegate.notFoundPage
is nowBeamPage
instead ofWidget
- BREAKING:
BeamGuard.showPage
is nowBeamPage
instead ofWidget
- NEW FEATURE:
beamBack
now goes back throughbeamHistory
- NEW FEATURE:
beamTo
can take an optionalbeamBackOnPop
boolean - NEW FEATURE:
BeamLocation.builder
can be used to provide something to the entire location - NEW EXAMPLE: location_builder
- NEW EXAMPLE: animated_rail
- tweaks and improvements to the documentation
0.6.4+1 #
- Add logo image
0.6.4 #
- Fix static analysis (Pana 0.14.10, Flutter 1.22.6, Dart 2.10.5) problem by not using
maybeOf
0.6.3 #
- Add
name
attribute toBeamPage
- Fix
BeamerRouterDelegate
not notifying listeners onsetNewRoutePath
0.6.2 #
- Add
navigatorObservers
attribute toBeamerRouterDelegate
0.6.1 #
- Add
guardNonMatching
attribute toBeamGuard
0.6.0+1 #
- Fix some mistakes in README
0.6.0 #
- NEW FEATURE: Guards
- NEW FEATURE: Beamer as a Widget (see Bottom Navigation example)
- Add
examples/
for every gif in README - Add state to
Beamer
0.5.0 #
- BREAKING:
*App.router
constructor needs to be used - BREAKING:
String pathBlueprint
is nowList<String> pathBlueprints
- BREAKING:
BeamLocation.withParameters
constructor is removed and all parameters are handled with 1 constructor. See example if you needsuper
. - BREAKING:
BeamPage
'spage
renamed tochild
- NEW FEATURE:
BeamLocation
can support multiple and arbitrary long path blueprints - NEW FEATURE:
notFoundPage
- Add more complex books example
- Add more doc comments
- Remove the need for
routerDelegate
to take locations
0.4.1+1 #
- Add some more badges
0.4.1 #
- Update example not to access state (books) from
BeamLocation
0.4.0 #
- BREAKING:
BeamLocation.pages
must beList<BeamPage>
instead ofList<Page>
- Add
keepPathParametersOnPop
toBeamPage
- Fix
_currentPages
toBeamLocation
parsing when page stack is beyond URI path parameter - Update README
- Cleanup
0.3.0 #
- Add
Beamer.of(context)
for convenience - Add recreation of "official" books example
- Update README
- Cleanup
0.2.0 #
- BREAKING: Beamer must be placed in a
Widget
tree - BREAKING: beaming is now only possible with extension methods on
BuildContext
- BREAKING:
BeamPage.identifier
replaced withBeamPage.key
- Remove
BeamLocation.popLocation
- Add "backwards parse" of URI
- Format pedantically
- Update README with new practices and deep location example
0.1.2 #
- Add dartdoc and tests
0.1.1 #
- Remove widgets from export barrel
0.1.0+1 #
- Add more to pub description
0.1.0 #
- Initial release