Unpoly 3.2.0 no longer cache responses with an empty body (fixes #497). In particular responses with 304 Not Modified
are no longer cached when using conditional requests.
As this issue could cause errors when rendering, we recommend all Unpoly 3 users to upgrade.
When an overlay closes in reaction to a server response, no content from that response is rendered.
Sometimes you do need to access the discarded response, e.g. to render its content in another layer.
For this you can now access response via the { response }
property of the up:layer:accepted
and up:layer:dismissed
events.
For example, the link link opens an overlay with a form to create a new company (/companies/new
).
After successful creation the form redirects to the list of companies (/companies
). In that case
we can use the HTML from the response and render it into the parent layer:
<a href="/companies/new"
up-layer="new"
up-accept-location="/companies"
up-on-accepted="up.render('.companies', { response: event.response }"> <!-- mark-phrase "event.response" -->
New company
</a>
The { response }
property is available whenever a server response causes an overlay to close:
up.Response
objectsIf you have manually fetched content from the server, you can now pass an up.Response
object as a { response }
option to render its contents:
let response = await up.request('/path')
up.render({ target: '.target', response })
The various ways to provide HTML to rendering functions are now summarized on a new documentation page.
[up-href]
without also setting [up-follow]
or [up-target]
(fixes #489).Date inputs are again validated on change
instead of blur
.
In Unpoly 3.0 this defaulted to blur
because desktop date pickers emit a change
event whenever the user changes a date component (day, month, year). Unfortunately this change caused issues with mobile date pickers as well as JavaScript date pickers (resolves #488, reverts #336).
If you prefer validating on blur
, you can restore the behavior of Unpoly 3.0 by configuring up.form.config.watchChangeEvents
.
up.Response#fragments
are no longer cached to preserve memory.
If you're upgrading from an older Unpoly version you should load unpoly-migrate.js
to polyfill deprecated APIs.
Changes handled by unpoly-migrate.js
are not considered breaking changes.
See our upgrading guide for details.