Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Adequar a página de conteúdos e o componente Content para lidar melhor com alterações nos dados #1376

Open
aprendendofelipe opened this issue Apr 17, 2023 · 0 comments

Comments

@aprendendofelipe
Copy link
Collaborator

aprendendofelipe commented Apr 17, 2023

Contexto

A página de conteúdos precisa lidar melhor com seus estados quando ocorre uma revalidação em segundo plano da página atual momentos após uma alteração feita pelo próprio usuário nessa página (criação, edição ou exclusão de conteúdos ou comentários).

Todos os problemas se aplicam apenas a conteúdos ou comentários do próprio usuário (ou modificadas por moderadores). A interface já se comporta adequadamente com modificações vindas apenas pela revalidação, e sem mudanças locais.

Exemplos de inconsistências que podem ocorrer:

  1. Edição do conteúdo pelo usuário e uma revalidação logo em seguida que venha com os dados ainda antigos. Nesse caso vai parecer que a alteração não ocorreu, mesmo estando corretamente salva no banco de dados.
  2. Criação de um novo comentário e, em sequência, a revalidação dos dados que já venha com esse novo comentário. Nesse caso esse novo comentário será renderizado duas vezes, pois o primeiro foi renderizado dentro do Content que inicialmente estava em modo compacto e não está presente na árvore de comentários, então não terá seu estado atualizado.

Provavelmente outros casos de inconsistências devem ocorrer enquanto mantivermos estados dentro do component Content que não são atualizados quando vierem novos dados no backend.

Execução

Uma possibilidade é não manter estados de alterações de conteúdos dentro do próprio componente Content, e centralizar isso no componente superior, onde pode ser verificado quais dados são mais recentes (entre os locais e os revalidados).

Manter os estados em nível superior também permite não mais renderizar novos comentários dentro do que inicialmente era o componente Content em modo compacto (o botão de responder). Mas sim adicionar eles na árvore de comentários para ser renderizado como os demais.

Um problema menor, mas que talvez possa ser resolvido junto, é a permanência dos botões de qualificar e de responder mesmo após excluir um conteúdo ou comentário. Mas nesses casos os botões só permanecem enquanto os dados não forem revalidados em segundo plano, momento em que eles somem da tela (ou surge a página 404 se for o conteúdos principal da página). Mas dependendo da solução adotada para essa issue, ficará resolvido também esse caso.

[Edit] Poderemos habilitar o revalidateOnFocus nas páginas de conteúdos após a resolução dessa issue.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant