Gostei pela praticidade! Realmente isso é um problema em tudo que faço no React, e tenho resolvido agora com ContextAPI. Vi um comentário aqui criticando como foi desenvolvido, precisa ver isso com mais calma, mas achei genial.
Devo usar em breve! Mas tente evoluir e pegar mais opiniões, principalmente no desenvolvimento por baixo dos panos.
Obrigado!
Oiii então, aquela crítica realmente me ajudou.
Hoje eu refatorei o código utilizando um Hook do React: useSyncExternalStore.
Esse hook permite criar um subscriber e uma função getSnapshot.
Em suma, a primeira vai iniciar o state
.
Já a segunda pega as alterações que ele vem a sofrer.
Então, eu consigo emitir que X alteração aconteceu e todos os states que o contém conseguem pegar as modificações.
O melhor de tudo: não precisa usar o window
e tampouco adicionar um eventListener
para cada novo state.
O hook do React
faz isso por nós!
Por causa disso, o usuário final, não tem como saber a informação crua do state
ou alterá-la.
E isso também reduziu o size de 24kb para apenas 11kb!!