O jogador é um módulo singleton, não um valor React

Refactorkamo-internal
Navios
14 de agosto de 2026 às 23:20 UTC
Autor
kamo
Enviar
a2db801

Disparar um som leu um contexto, que fez cada local de chamada POSIÇÃO NA TREE parte da sua correcção. Um componente renderizado acima do SoundProvider obteve um no- op e Não fez barulho — e isso é o pior fracasso possível para esta característica, porque o silêncio é exatamente o que um "off" configurado corretamente produz. O erro é invisível da mesma forma que o tom que causa. Então a pilha resolvida agora vive em lib/som/somStore, um módulo singleton, e O trabalho do provedor é mantê-lo atual em vez de distribuí-lo. playEventSound é importável de qualquer lugar e comporta-se de forma idêntica onde quer que esteja chamado — acima do provedor, abaixo dele, ou de um callback socket registrado antes Montava. Sem provedor em tudo ele reproduz o catálogo padrão, que é o degradação honesta: uma página não autenticada não tem nenhum membro cujas preferências se aplicam. Isso também elimina uma expressão. usePlaySound desapareceu: um gancho que não lê nenhum contexto e nenhum estado não é um gancho, é uma função simples usando a forma de um gancho, implicando a semântica da assinatura não tem. E todos os sítios de chamadas seguravam-no. em um ref com um comentário explicando que o callback função do render — verdadeiro quando veio de um contexto, falso o momento em que faz Não. Quinze arquivos perdem o árbitro, o hook call e o comentário agora errado. Também aqui: - A desmontagem flush in useSoundLayerDraft dependia de 'flush', cuja identidade muda com a camada, ou seja, em cada tecla. Cada re-run limpou o pendente temporizador e escreveu imediatamente — transformando o debulhamento em um PUT por mudança, o exatamente o que existe para prevenir, e silenciosamente: as configurações ainda salvas, apenas 40 vezes em vez de uma. Realizado em um árbitro, depende de [] agora. - Ambos os interruptores têm nomes acessíveis explícitos. Suas etiquetas visíveis estão no irmão colunas, então um leitor de tela anunciou cinquenta alternâncias não marcadas em uma linha. - Código morto removido: CATEGORY ICON, categoryCounts, eventsInCategory, isAudioDesbloqueado, closeAudioContext e EventSoundEditor's hideMaster prop, Que ninguém nunca passou. 16 novos testes cobrem o que a loja decide, porque cada regra que aplica produz Silêncio e silêncio é indistinguível de "corretamente desligado" a menos que algo afirma sobre ele: janelas do acelerador (incluindo que um evento mudo não gasta orçamento próprio), a regra já olhar e sua escotilha de escape de força, mestre e volume por chamada, teclas desconhecidas, e jogando sem configurações carregadas. Gates: tsc limpo, 1867 teste passar, compilação próxima compilação, i18n guarda limpo.

Todas as alterações

Como o que vês no transporte?

Cada uma dessas atualizações pousa automaticamente em seu espaço de trabalho. Comece grátis e veja crescer semana após semana.

Começar Livre Para SempreVer Preços