Breaking changes in bold.
You can now sponsor Laminar / Airstream / Waypoint development!
- Build: Update URL DSL to 0.6.2
- Fixed a case with
listParam
where matching failed if no query parameters were provided in the URL, whereas it should have matched asNil
. Thanks, @arturaz!
- Fixed a case with
- Build: Update Airstream to 17.0.0, URL DSL to 0.6.1
- Build: Fix source maps URLs
- Misc: Unrouted page exception now includes the exact faulty page in the message
- Build: Update Airstream to 16.0.0
- Build: Update Airstream to 15.0.0, URL DSL to 0.6.0
- Fix:
collectStatic
andcollectStaticStrict
now match pages using==
equality instead of ClassTag. This fixes matching of Scala 3 enum values.
- Build: Update Airstream to 15.0.0-M4
- Build: Update Airstream to 15.0.0-M3
- Build: Update Airstream to 15.0.0-M2
- Build: Update Airstream to 15.0.0-M1, URL-DSL to 0.5.0, etc.
- Naming:
$popStateEvent
->popStateEvents
- Naming:
$currentPage
->currentPageSignal
- Naming:
$view
->signal
- API: Use
Tuplez.unapply
. Fixes this issue. Thanks, @yurique! - API: Non-optional query params now match empty strings, e.g.
url?param=
and evenurl?param
. See this issue. Thanks, @i10416 - New:
collectStaticStrict
for when you want to cache the element.
- Build: Update Airstream to 0.14.0, bump Scala to 2.13.6 and 3.0.2, Scala.js to 1.7.1, uPickle to 1.4.2
- Fix: Work around
location.origin
being"null"
forfile://
URLs in Firefox.
- Do not use – this version is similar to v0.4.2, but there's a typo in one of the error messages
- Fix: When initializing the router, do not update the initial URL to the canonical URL of the initial page
- Keep the original URL with whatever extraneous query params it might have, to give any third party tools you might be using a chance to look at them
- Fix: Respond to
hashChange
events properly - New: Base path and fragment matching
- You can now match routes like
/#/note/123
instead of/note/123
by providingbasePath = Route.fragmentBasePath
to Route constructors - You can also use hash routing on a
file://
URL now
- You can now match routes like
- New: Basic route helpers to match URL fragments (text after
#
)
- New: Routes can match types partially now (thanks, @pbuszka!)
- New route creation methods with PF suffix
route.argsFromPage
returns an Option now
- New: Customizable error handling
- You can now specify fallbacks for URLs and page states that fail to match
- You can now force-render a page without changing URL (useful for rendering full page error screens)
Router
constructor arguments have changed and are now spread across two argument lists, and some arguments have defaults now
- New: ContextRouteBuilder (thanks, @pbuszka!)
- Provides a convenient way to encode URL params like "lang" or "version" that are shared among a set of pages & routes
- API: Use
PatternArgs
alias for URL DSL'sUlrMatching
type - Build: Update
Airstream
to0.12.0
- Build: Update
url-dsl
to0.3.2
- See URL DSL migration notes
- Note: in Waypoint, the required imports stay the same.
- Build: Update
sbt
to1.4.7
- API: Waypoint does not depend on Laminar anymore
- Add
$popStateEvent
toRouter
constructor - Migration: You should provide
$popStateEvent = windowEvents.onPopState
if using Laminar
- Add
Initial release!