Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.

No meu projeto com Nextjs 13.4, Typescript e TailwindCSS, tô tentando usar os toasts da biblioteca shadcnUI, que é inspirada no react-hot-toast.
A questão é que, apesar de a implementação geral funcionar bem, o timer de exibição do toast fica meio capenga quando tento colocar uma barra de progresso na parte de baixo. A decisão fica mais saudável quando o time consegue medir o impacto depois.
A solução mais simples parecia usar um setTimeout pra fechar o toast, mas aí a barra de progresso fica travada ou desaparece antes do tempo. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco.
---
O que percebo é que a lib não lida bem com a sincronização entre o tempo de exibição e o estado da barra. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois.
No meu entendimento, o ideal seria ter uma variável de controle que atualiza a barra de progresso em tempo real, usando algo como requestAnimationFrame ou um setInterval com um valor que vai diminuindo. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte.
Porém, o maior desafio é que o toast precisa fechar exatamente quando a barra termina, sem ficar cortando ou atrasando. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar.
---
Se alguém já passou por isso, qual foi a estratégia que funcionou? Será que dá pra manipular o componente do toast pra escutar melhor o ciclo de vida? Ou é melhor criar uma camada de controle separada pra esse timer? A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois.
Na minha opinião, esse tipo de detalhe faz toda a diferença na experiência do usuário, especialmente pra feedbacks rápidos e visuais. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta.
A dúvida é: como vocês têm lidado com esse tipo de sincronismo, principalmente em frameworks que não expõem muita flexibilidade nisso? O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois.
Vamos trocar umas ideias? Afinal, detalhes assim podem parecer pequenos, mas fazem toda a diferença na prática. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois. A decisão fica mais saudável quando o time consegue medir o impacto depois. A decisão fica mais saudável quando o time consegue medir o impacto depois. A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. A decisão fica mais saudável quando o time consegue medir o impacto depois.
bom ponto, Pedro. mas cuidado com o impacto na governança do código. às vezes vale tentar uma solução mais genérica pra reaproveitar.
Já passei por algo parecido. No papel React/Next parecia simples. na prática pesou em documentação
cara, eu já passei por isso. acho que o segredo é controlar o ciclo de vida do toast manualmente, com um estado que atualiza a barra. assim, dá pra sincronizar melhor.
exato. e o truque é usar requestAnimationFrame pra atualizar a barra, ao invés de setTimeout. facilita a sincronização e evita atraso.
isso dá trabalho depois na manutenção. prefiro fazer uma versão customizada do toast só pra esse caso, assim tenho controle total do ciclo.