Il plugin inserisce un i-frame in Discourse e puoi trovarlo qui
Lo tengo più o meno aggiornato all’ultima versione, quindi la modifica che rompe le cose è avvenuta di recente. Attualmente stiamo eseguendo la versione 3.3.0.beta1-dev.
Nella console ottengo 3 messaggi di errore che assomigliano a questo:
docuss.js:225 Uncaught (in promise) ReferenceError: Ember is not defined
at docuss.js:225:1
Molto probabilmente questo oggetto Ember è stato rimosso dall’API di Discourse in una versione recente di Discourse, quindi questo errore si verifica dopo un aggiornamento di Discourse che influisce su tali oggetti.
Ecco tutte le correzioni che ho apportato:
Modifica 1
assets\javascripts\discourse\initializers\docuss.js.es6
linea 232
vecchio:
const afterRender = res =>
new Promise(resolve => {
// @ts-ignore
Ember.run.schedule('afterRender', null, () => resolve(res))
nuovo:
import { schedule } from '@ember/runloop'
const afterRender = res =>
new Promise(resolve => {
schedule('afterRender', null, () => resolve(res))
})
Modifica 2
assets\javascripts\discourse\lib\DcsIFrame.js.es6
linea 858
vecchio:
const afterRender = res =>
new Promise(resolve => {
Ember.run.schedule('afterRender', null, () => resolve(res))
})
nuovo:
import { schedule } from '@ember/runloop'
const afterRender = res =>
new Promise(resolve => {
schedule('afterRender', null, () => resolve(res))
})
Modifica 3
assets\javascripts\discourse\lib\onDidTransition.js.es6
linea 239
vecchio:
const afterRender = res =>
new Promise(resolve => {
Ember.run.schedule('afterRender', null, () => resolve(res))
nuovo:
import { schedule } from '@ember/runloop'
const afterRender = res =>
new Promise(resolve => {
schedule('afterRender', null, () => resolve(res))
Ciò ha risolto tutti i messaggi di errore nella console, ma ne ha creati una serie di nuovi:
Discourse v3.3.0.beta1-dev — https://github.com/discourse/discourse/commits/4c7d58a883 — Ember v5.5.0
app.js:197 Uncaught ReferenceError: Ember is not defined
at s.callback (docuss.js:210:1)
at s.exports (loader.js:106:1)
at requireModule (loader.js:27:1)
at y (app.js:171:18)
at w (app.js:194:19)
at app.js:157:29
at e.start (app.js:51:5)
at HTMLDocument.<anonymous> (start-app.js:5:7)
at discourse-boot.js:20:12
at discourse-boot.js:1:1
Ecco una piattaforma live con il plugin attivato, nel caso fosse utile
Questo problema è familiare a qualcuno che ha riscontrato problemi con gli oggetti API di Ember che cambiano. Qualsiasi suggerimento su come risolverli sarebbe molto apprezzato.