- From: Bramus! via GitHub <sysbot+gh@w3.org>
- Date: Tue, 22 Aug 2023 07:32:21 +0000
- To: public-css-archive@w3.org
> For example, a site might choose between the 2 for the same navigation (@bramus had an example for such a pattern). The example is an SPA that – for whatever reason – can decide to do an MPA navigation after all. A typical scenario would be one where a new version of the SPA has been deployed, so that the user ends up on the latest version. ```js document.addEventListener('a[href="/articles"]').addEventListener('click', async (e) => { // Do a regular navigation when a new app version has been detected. // Note: the type defined in @view-transition – if any – will be used. const serverAppVersion = await getAppVersion(); if (localAppVersion != serverAppVersion) return true; // Fetch new data and build the markup const articles = await fetchArticles(); const articlesFragment = buildArticlesFragment(articles); // Do a transition while also setting a type for the CSS the hook onto e.preventDefault(); document.startViewTransition({ type: 'back-to-articles', updateCallback: () => { updateContentWith(articlesFragment); window.history.pushState({}, '', '/articles'); // Or any other method to update the URL } }); }); ``` With the type available in `document.startViewTransition` _(SPA)_ and in `@view-transition` _(MPA)_, the app can seamlessly switch between SPA/MPA type of navigations without the user even noticing. -- GitHub Notification of comment by bramus Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/8960#issuecomment-1687631527 using your GitHub account -- Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Tuesday, 22 August 2023 07:32:24 UTC