View transitions: the commit window from 2024 is still missing
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 35/100
- Tipo de issue
- Funcionalidade
- Clareza
- Razoavelmente clara
- Status de atividade
- Ativa
- Stack de tecnologia
- typescript
- Domínio
- frontend
Direção de pesquisa
Start by reading the router navigation and scroll restoration code, then inspect Solid's flush() behavior and the related discussions #372 and #482. The issue describes the desired core hook and router integration but does not name files or tests. Done means view transitions wrap the settled navigation commit, work with back and forward without duplicating history, and keep scroll restoration within that commit.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
In February 2024, discussion #372 asked for a hook that runs when the router writes the DOM, so document.startViewTransition can snapshot the old page and the new one. The useBeforeLeave + preventDefault + retry(true) workaround was already known to be wrong.
Ryan, 18 June 2024, on #372:
Yeah. I was thinking the hook might want to be handled by Solid itself, because you want to get in there before and after the synchronous part of the render. Or I guess it wraps it. It is a bit awkward to do right now but something I'm keeping in mind for future reactivity designs.
Ryan, 10 October 2024, on #482 (that workaround duplicates history entries):
Yeah.. I can imagine there are exceptions. The truth is the best way to hook into View Transition APIs would be something we exposed from core of Solid itself. The tricky part is we have our own async transition method and ideally you want to sneak the snapshot in after that is done but before we apply the render effects. We don't really expose that window right now. So you are stuck too early or too late in some cases.
That is still the latest word from a maintainer. Someone asked "is it the future yet?" on #372 in June 2025 and got no answer. Solid 2 has since shipped. startTransition is gone. flush() exists. @solidjs/router 2.0.0-next still contains zero calls to startViewTransition.
React 19 put <ViewTransition> in the reconciler, which is the core half of what was described above. @tanstack/solid-router already does the router half: after loaders, document.startViewTransition, then Solid.flush() so the new DOM exists before the browser snapshots. Solid Start does not add its own implementation. An app that needs a page crossfade on Solid today leaves @solidjs/router to get it.
What ships:
- A core hook for the moment after an async navigation has settled and before render effects paint.
- The router calls
document.startViewTransitionaround that moment, including back and forward, without a second history entry. - Scroll restoration stays inside that same commit. A separate
scrollToafter the callback races the snapshot.
useBeforeLeave cannot be that hook. It runs before the navigation, and holding the callback open across suspense deadlocks the browser transition ("Transition was aborted because of timeout in DOM update").
- Linguagem predominante
- TypeScript
- Estrelas
- 1.3k
- Forks
- 184
- Merge médio
- 15h 47min
- PRs com merge (30d)
- 47
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de solidjs/solid-router
-
`useBeforeLeave` and scroll restoration break on Back after 50 history entries (`_depth` taken from the capped `history.length`)Talvez já em andamento @sarankumar1325 assumiu há 1 dia. Aberta1.x
Dificuldade 4/5 1-2 dias Facilidade para iniciantes 57/100
solidjs/solid-router#694 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 48/100
solidjs/solid-router#691 ·
Mantenedores costumam responder em até 1 dia
-
Forward pressed while a Back navigation is still loading is dropped; the URL and the rendered route get out of syncTalvez já em andamento @sean0407 assumiu há 9 dias. Aberta1.x
Dificuldade 4/5 1-2 dias Facilidade para iniciantes 54/100
solidjs/solid-router#687 ·
Mantenedores costumam responder em até 1 dia
-
<A> costs ~6us of server CPU per instance during SSR (20x a plain <a>), mostly mergeProps/splitPropsTalvez já em andamento @birkskyum assumiu há 80 dias. Aberta1.x
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 55/100
solidjs/solid-router#583 ·
Mantenedores costumam responder em até 1 dia
-
1.x enhancement
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 38/100
solidjs/solid-router#518 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
Todas as issues de solidjs/solid-router
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
marmelab/react-admin#11431 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
db-ux-design-system/core-web#8655 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
Mantenedores costumam responder em até 1 dia
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
stripe/react-stripe-js#728 ·
-
[Upload Grade C dataset] the pop-up changes it's size while uploading the document => Jumping effectAbertabug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 66/100
epam/statgpt-admin-frontend#305 ·
Mantenedores costumam responder em até 1 dia