beamer 1.7.0
beamer: ^1.7.0 copied to clipboard
A routing package built on top of Router and Navigator's pages API, supporting arbitrary nested navigation, guards and more.
1.7.0 #
- Added: Optional
pathtoBeamPageto offer more natural pop control thanpopToNamed. This will most likely become required in v2
1.6.1 #
1.6.0 #
- Fixed: Usage of deprecated
RouteInformation.location - Improved: Package metadata
1.5.5 #
- Increase SDK upper bound to
<4.0.0
1.5.4 #
- Fixed: Usage of
Object.hash
1.5.3 #
- Fixed: Warning for usage of deprecated
hashValues
1.5.0 #
- Added:
onUpdatemethod toBeamLocationwhich is called afterinitStateand on everyupdate. (#507, #88c8537). See this example that demonstrates its possible usage. - Added:
isEqualToextension method toRouteInformation(intentionally not overriding the equality operator) - Fixed: Possible wrong URL after global rebuild with multiple child Beamers (#523)
- Fixed: Consistency of calls to
BeamLocation.updateState(#484) - Fixed: Resetting
popConfigurationafterpopToNamedparameter has been used in abeamToNamedcall (#521)
Documentation #
- Added explanation of some specific parameters at Nested Navigation section in README (#514)
Examples #
- Improved books_blos example with usage of new
BeamLocation.onUpdate
Ecosystem #
- Added a beam_location brick
- Various improvements on website (devj3ns)
1.4.1+1 #
- Fixed: formatting of
beamer.dartfile
1.4.1 #
- Fixed: Initial guarding browser URL (#501, b2a9f0b)
- Fixed: Deeper routes matching with asterisk (cgaisl, #494, #502)
- Fixed: Nested navigation crash with guards (svsk417, #490)
- Fixed: Breaking out of
popToNamedloop (Goddchen, #500)
Documentation #
- Added website app; a starting point for extensive, self-explanatory Beamer documentation at beamer.dev
- Fixed typos and added doc comment for accessing root Beamer (gazialankus)
1.4.0 #
- Added: Relative beaming, i.e. being able to call
beamToNamed('path')instead ofbeamToNamed('/my/path')if we're already at/my. Important note: This will affect all beaming that is not using the leading/, i.e. it will treat it as relative and append it to current path. - Added: New
BeamPageTypes;slideRightTransition,slideLeftTransitionandslideTopTransition(Shiba-Kar, #477) - Improved: Interactions between nested and sibling Beamers by having children automatically take priority and more carefully handle locally not found cases
- Fixed: Unnecessary update of
ChangeNotifiercustom state (jmysliv, #475) - Fixed:: Target
BeamLocationinitialization duringbeamBack - Fixed: Insufficiently detailed automatic
BeamPage.keyin someRoutesLocationBuilder.routesusage of*
Examples #
- Added a new example: multiple_beamers
- Improved and simplified bottom_navigation_multiple_beamers example
- Fixed updating Beamer in authentication_riverpod example
1.3.0 #
- Added:
strictPathPatternstoBeamLocationwhich will do only exact matches of URI and path pattern (5810c9c) - Added:
updateListenabletoBeamerDelegatewhich will triggerupdatewhen it notifies (f0ccfd7) - Added: Support for replacing the browser history entry when using
beamToReplacement*or specifyingreplaceRouteInformation: true - Added: Support for setting
opaqueproperty onBeamPage(ggirotto, #446) - Added:
initializeFromParentproperty toBeamerDelegateto overcome the limitation ofupdateFromParentand give finer control over parent interaction (340b474) - Fixed: Browser back/forward buttons behavior, i.e. browser history
- Fixed: Initialization of target
BeamLocationwhen beaming back (#463) - Updated: Return values for
beamBackandpopBeamLocationcontext extensions (marcguilera, #461, 1045ab3) - Updated: The entire guarding flow (thanks mat100payette for important feedback and contribution)
Examples #
- Fixed some edge cases in advanced_books example (jpangburn, #451)
- Updated authentication_bloc example guard usage (df194e8)
1.2.0 #
- Fixed: Using the
initialPathinstead of parent's path on nestedBeamerDelegateduring initialization from parent when theupdateFromParentis set tofalse(samdogg7)
Documentation #
- Added a section about Page Keys to README (Goddchen)
- Added a sentence about browser's back button to README
- Fixed and improved grammar in doc comments (ggirotto)
Examples #
- Fixed analyzer warnings (Goddchen)
- Updated authentication_bloc example to bloc v8 (Lorenzohidalgo)
1.1.0 #
Most of this release is matuella's directly and indirectly contributions. Many thanks!
- Add: a link to Medium article for "Migrating" section in README
- Add: lint rules
prefer_single_quotes,always_use_package_imports,omit_local_variable_types,prefer_final_localsandcomment_references. - Fix: disposing histories on
beamBack(#417) - Fix: updating history when setting
statemanually (#420) - Deprecate: unused
BeamerDelegate.preferUpdate - Improve: tests setup (Thanks cedvdb)
1.0.0 #
- BREAKING: "top-level state", the one in
BeamerDelegateis nowRouteInformationinstead ofBeamStateBeamerDelegate.statedoesn't exist anymore and is replaced withBeamerDelegate.configurationwhich isRouteInformationand notBeamStatelocationBuildernow works withRouteInformationandBeamConfigurationinstead ofBeamStatesuper()constructor onBeamLocationnow takes optionalRouteInformationinstead ofBeamState- in order to continue using custom
BeamLocations withBeamStatestate, generic type has to be specified;class MyBeamLocation extends BeamLocation<BeamState>
- BREAKING:
pathBlueprintsis renamed topathPatternsBeamLocation.pathPatternsisList<Pattern>BeamState.pathBlueprintSegmentsrenamed toBeamState.pathPatternSegmentsBeamGuard.pathBlueprintsrenamed toBeamGuard.pathPatterns
- BREAKING:
SimpleLocationBuilderis renamed toRoutesLocationBuilder- also the
SimpleBeamLocationis renamed toRoutesBeamLocation routesvalues now additionally receivedata
- also the
- BREAKING:
beamStateHistoryandbeamLocationHistoryhave been replaced withbeamingHistorythat is aList<BeamLocation>and eachBeamLocationhashistorythat isList<HistoryElement>whereHistoryElementholdsRouteInformationandBeamParameters.clearBeamStateHistoryandclearBeamLocationHistoryhave been removed.
- BREAKING:
BeamerDelegate.listenerhas been renamed toBeamerDelegate.routeListener. - BREAKING: The property
pageRouteBuilderinBeamPageis replaced with a new propertyrouteBuilderwhich works with anyRouteBuildernot justPageRouteBuilder. - BREAKING:
BeamGuardbeamToreceives the origin and targetBeamLocations alongsideBuildContext.replaceCurrentwas removed in favor ofbeamToReplacement.
- BREAKING:
BeamGuardbeamToNamedis now a function that receives the origin and targetBeamLocations and returns aString.replaceCurrentwas removed in favor ofbeamToNamedReplacement.
- Add: guard_riverpod example
- Add: firebase_core example
- Add: firebase_auth example
- Add: change_notifier_custom_state example
- Add:
BeamerBackButtonDispatcher.alwaysBeamBackto make Android back button always go to previous route, even if it canpop. - Add:
BeamPage.routePopthat can be used foronPopPageinstead of defaultpathsegmentPop - Add:
BeamerDelegate.buildListener, which is called after the pages are built. - Add:
fullScreenDialogproperty toBeamPage - Add: flutter_lints
- Add: a presentation resource about beamer
- Fix: clearing history range when using
popToNamed - Fix: passing
BeamPage.titletoCupertinoPageRoutes
0.14.1 #
- Add:
updateParent(defaulttrue) toBeamerDelegate - Fix: ignoring query on initial path
0.14.0 #
- BREAKING:
routesinSimpleLocationBuildernow also bring thestate - Add: support for
RegExpinpathBlueprints(in bothBeamGuards andBeamLocations) - Add: updating nested
Beamers on parent navigation - Add:
onBacktoBeamerbackButtonDispatcher - Add:
navigatorgetter toBeamerDelegate - Add:
beamStateHistoryandBeamLocationHistorytocontextextension methods - Add:
dataparameter tobeamBack - Change:
BeamPage.pageRouteBuilderreturn type to be a superclass - Fix: removing last
BeamStatefrom history on defaultpop - Fix:
BeamGuardbehavior on query parameters - Fix: ignoring trailing
/in URIs - Fix: keeping
dataas 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:truewhile beaming - Make
beamStateHistoryandbeamLocationHistorypublic
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
BeamerRouterDelegatetoBeamerDelegate - BREAKING: renamed
BeamerRouteInformationParsertoBeamerParser - BREAKING: renamed
pagesBuildertobuildPages - BREAKING: renamed
Beamer.of(context).currentLocationtoBeamer.of(context).currentBeamLocation - Add:
BeamPage.popToNamedandBeamPage.onPopPagefor fine control of popping - Add:
BeamPage.titlefor setting the browser tab title - Add:
SimpleLocationBuildercan now mixBeamPages andWidgets - Add:
BeamerParser.onParsefor intercepting the parsed state on app load - Add: encoding the
datainto browser history - Add: blocking capability to
BeamGuards - Add: slide and scale transitions to
BeamPageType - Add: optional
transitionDelegatefor 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
NotFoundwhen usingSimpleLocationBuilder - Fix updating route on guard actions
- Fix not pushing
BeamStatein history if it's on top - Fix taking
currentLocationon setting initial path
0.12.3 #
- Add authentication_bloc example
- Fix
SimpleBeamLocationignoring query - Fix updating delegate state on location state change
0.12.2 #
- Add
listenerattribute toBeamerRouterDelegate - Add
rootattribute toBeamerRouterDelegateand{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
RootRouterDelegateany more. Just rename it toBeamerRouterDelegate. If you were using itshomeBuilder, useSimpleLocationBuilderand 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
Beamers
0.11.4 #
- Fix
currentLocationwithout listener after guard beam
0.11.3 #
- Add
beamBackTransitionDelegatetoBeamerRouterDelegate - Add
transition_delegates.dartwith some useful transition delegates - Tweak deep_location example to show this more clearly
0.11.2 #
- Fix lost
navigationNotifieron rebuilds with nestedBeamers
0.11.1 #
- Fix possibly null
_currentLocation
0.11.0+1 #
- add missing ToC titles
0.11.0 #
- migrated to null safety
- BREAKING:
Beamernow takesrouterDelegate, notbeamLocationsdirectly - BREAKING:
BeamerRouterDelegate.beamLocationsis nowlocationBuilder - BREAKING:
pagesBuildernow also bringsstate - Add
beamToNamedtoBeamGuard - Add various
LocationBuilders - Add
transitionDelegatetoBeamLocationandBeamerRouterDelegate - Add
typeandpageRouteBuildertoBeamPage, for transition control - Add
initialPathtoBeamerRouterDelegate - Add
popTo/popToNamedoptions for beaming - Add
onPopPagetoBeamLocation
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
BeamLocationand put them intoBeamLocation.state - BREAKING Changed
BeamLocationconstructor to take onlystate. - Add
RootRouterDelegatefor nested navigation - Add
BeamStatefor more declarative experience
0.9.3 #
- Add
replaceCurrentattribute (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_interceptorpackage (not that it's not good, but we realized it can be implemented more naturally)
0.8.2 #
- Add optional
notFoundRedirecttoBeamerRouterDelegate - 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.pagesis nowBeamLocation.pagesBuilder - BREAKING:
BeamerRouterDelegatenow takesbeamLocationsandBeamerRouteInformationParsernothing - NEW FEATURE:
beamToNamed - NEW FEATURE:
canBeamBackandbeamBackLocationhelpers - NEW FEATURE:
BeamGuard.onCheckFailed - NEW FEATURE:
stackedparameter for beaming - Add: back_button_interceptor package automatic
beamBackon 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.notFoundPageis nowBeamPageinstead ofWidget - BREAKING:
BeamGuard.showPageis nowBeamPageinstead ofWidget - NEW FEATURE:
beamBacknow goes back throughbeamHistory - NEW FEATURE:
beamTocan take an optionalbeamBackOnPopboolean - NEW FEATURE:
BeamLocation.buildercan 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
nameattribute toBeamPage - Fix
BeamerRouterDelegatenot notifying listeners onsetNewRoutePath
0.6.2 #
- Add
navigatorObserversattribute toBeamerRouterDelegate
0.6.1 #
- Add
guardNonMatchingattribute 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.routerconstructor needs to be used - BREAKING:
String pathBlueprintis nowList<String> pathBlueprints - BREAKING:
BeamLocation.withParametersconstructor is removed and all parameters are handled with 1 constructor. See example if you needsuper. - BREAKING:
BeamPage'spagerenamed tochild - NEW FEATURE:
BeamLocationcan support multiple and arbitrary long path blueprints - NEW FEATURE:
notFoundPage - Add more complex books example
- Add more doc comments
- Remove the need for
routerDelegateto 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.pagesmust beList<BeamPage>instead ofList<Page> - Add
keepPathParametersOnPoptoBeamPage - Fix
_currentPagestoBeamLocationparsing 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
Widgettree - BREAKING: beaming is now only possible with extension methods on
BuildContext - BREAKING:
BeamPage.identifierreplaced 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



