Stackflow transition breaks when activity suspends longer than transitionDuration
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
- Estagnada
- Stack de tecnologia
- react, typescript
- Domínio
- frontend
Direção de pesquisa
Comece rastreando o estado de transição e o fluxo de inscrição entre @stackflow/core e @stackflow/react, usando como contexto a sequência neste issue e o issue relacionado #434. Defina como o estado pending e a ação pós-renderização devem interagir com Activities suspensas. Considera-se concluído quando a renderização inicial não pode ignorar a transição de entrada quando a suspensão ultrapassa transitionDuration, e o comportamento está coberto pelos testes existentes relevantes.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Currently, Stackflow activities' enter transition is only expressed with enter-active and enter-done. However, this doesn't work well with frameworks that do concurrent rendering because the core state update happens regardless of whether activities render synchronously or suspend during render. This results in something like this:
sequenceDiagram
participant Core as @stackflow/core
participant Integration as Integration (@stackflow/react)
participant View
View->>Core: push()
activate Core
note left of Core: Transition
Core->>Integration: notify on subscribe() listener
Integration->>Core: getStack()
Core->>Integration: State with `enter-active`
Integration->>View: Render new activity with `enter-active`
activate View
note right of View: Suspend
Core->>Integration: notify on subscribe() listener
deactivate Core
Integration->>Core: getStack()
Core->>Integration: State with `enter-done`
Integration->>View: Rerender with `enter-done`
deactivate View
note right of View: Initial render with `enter-done`
As described above, if the view suspends longer than the core transition, the initial render of the view is done with enter-done state, resulting in broken CSS transitions.
To mitigate this, the core transition should be started after confirming that the initial view was rendered. These are the required parts to implement the feature:
- Add a new transition state to express activities that didn't complete the initial render. (
enter-pending?) - Add a new action that notifies the core after completing the initial render. (no idea about naming 🥲)
I'm willing to implement the feature after the direction is fixed.
Related: #434
- Linguagem predominante
- TypeScript
- Estrelas
- 1k
- Forks
- 114
- Merge médio
- 59min
- PRs com merge (30d)
- 4
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 daangn/stackflow
-
스와이프 백 애니메이션 덜컥임 이슈Talvez livre de novo @Shennng assumiu há 223 dias e não há nenhum pull request aberto. Aberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 45/100
-
Vue3 지원 계획Aberta
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
-
다른 호스트로 이동해야할 때 처리에 관하여Aberta
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 18/100
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 30/100
Todas as issues de daangn/stackflow
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Chocobozzz/PeerTube#7832 ·
Mantenedores costumam responder em até 3 dias
-
Pay to use?Aberta
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 66/100
darkreader/darkreader#16108 · 1 comentário ·
Mantenedores costumam responder em até 2 dias
-
Add: Dak Nong TV SDAbertacheck:passed streams:add
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 75/100
Mantenedores costumam responder em até 1 dia
-
bug engine
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
frostney/GocciaScript#1746 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 67/100
agilepathway/label-checker#739 · 4 comentários ·
Mantenedores costumam responder em até 1 dia