Il selettore di emoji blocca l'editor di messaggi in Android / Chrome

Riesco a riprodurre il problema. Ecco lo stack trace:

_application-bfbda341c2eb6dd7d61c681e17bdccec057c30e045ddc332927a7363150e9b1b.js:16386 Uncaught TypeError: Cannot read property '0' of null
    at HTMLLIElement.<anonymous> (application-bfbda341c2eb6dd7d61c681e17bdccec057c30e045ddc332927a7363150e9b1b.br.js:1)
    at HTMLLIElement.dispatch (ember_jquery-36a23101c869ab0dc53fc908de69adb785731593573d32bdeef416acc1076ef4.br.js:1)
    at HTMLLIElement.d.handle (ember_jquery-36a23101c869ab0dc53fc908de69adb785731593573d32bdeef416acc1076ef4.br.js:1)
(anonymous) @ application-bfbda341c2eb6dd7d61c681e17bdccec057c30e045ddc332927a7363150e9b1b.br.js:1
dispatch @ ember_jquery-36a23101c869ab0dc53fc908de69adb785731593573d32bdeef416acc1076ef4.br.js:1
d.handle @ ember_jquery-36a23101c869ab0dc53fc908de69adb785731593573d32bdeef416acc1076ef4.br.js:1

Si tratta di questa riga:

https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/app/lib/autocomplete.js#L308

L’errore si verifica perché selectedOption è 0 (singola suggerimento, ovvero il primo), mentre autocompleteOptions è in qualche modo null.

Sto indagando sul motivo…

Quindi per ora non sono sicuro del perché. Inizialmente sospettavo questo PR di @Osama:

https://github.com/discourse/discourse/pull/11637

Ma ho aggiunto diversi breakpoint e non riesco a capire davvero “chi” sta mutando autocompleteOptions e impostandolo a null.

Il fatto che autocompleteOptions provenga dall’ambito della closure genitore di due livelli sopra è anche piuttosto strano e rende il codice un po’ difficile da seguire e debuggare.

8 Mi Piace