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!!