Videoconferenza Jitsi

:discourse2: Riepilogo Jitsi Video Conference permette di incorporare le chiamate video Jitsi nei post di Discourse.
:hammer_and_wrench: Link al Repository https://github.com/discourse/discourse-jitsi
:open_book: Nuovo ai Temi di Discourse? Guida per principianti all’uso dei Temi di Discourse

Installa questo componente del tema

FunzionalitĂ 

  • gli amministratori possono utilizzare la propria istanza del server Jitsi
  • aggiunge un’icona nella barra degli strumenti del compositore (può essere limitata allo staff nelle impostazioni del componente)
  • visualizza un pulsante con un’icona e un’etichetta configurabili nei post


Impostazioni

Nome Descrizione
mostra nel menu a tendina delle opzioni Se deselezionato, l’icona viene mostrata nella barra degli strumenti del compositore.
disponibile solo allo staff
dominio meet jitsi Solo dominio (nessun protocollo, nessuna barra finale).
sorgente script jitsi URL del file JavaScript dell’API esterna. Se modifichi questo valore, dovrai anche aggiungere l’URL all’impostazione del sito ‘content security script src’.
icona pulsante Inserisci il nome dell’icona FontAwesome 5 da visualizzare nel pulsante Jitsi.
pulsante chat Integra con Discourse Chat
nascondi pulsanti iframe Nascondi agli utenti la scelta delle impostazioni iframe; verranno utilizzate le impostazioni predefinite riportate di seguito
iframe mobile predefinito Abilita la modalitĂ  iframe per impostazione predefinita su dispositivi mobili
iframe desktop predefinito Abilita la modalitĂ  iframe per impostazione predefinita su desktop
posizione pulsante chat Posizione del pulsante all’interno della finestra della chat
icone svg Se utilizzi un’icona personalizzata, aggiungila anche a questo campo (oltre a ‘button_icon’ sopra)
Traduzione Predefinito
composer_title Discourse Jitsi
room_label ID stanza Jitsi
button_text_label Etichetta pulsante
launch_jitsi Avvia conferenza video
modal.room_field_description Inserisci un ID per la tua stanza (o lascia vuoto per utilizzare un ID generato casualmente).
modal.insert Inserisci
modal.cancel Annulla
modal.title Aggiungi integrazione Jitsi
modal.mobile_iframe Mostra in un iframe su dispositivi mobili
modal.desktop_iframe Mostra in un iframe su dispositivi desktop

:discourse2: Ospitato da noi? I componenti del tema sono disponibili per l’uso nei nostri piani Standard, Business ed Enterprise.

43 Mi Piace

Ciao, grazie per questo post e per il plugin. Ho rimosso alcuni dei miei messaggi dall’altro thread per evitare confusione. Ho installato e sto testando il componente.

Non vedo un Anteprima Discourse quando sto componendo una videoconferenza in un nuovo post.
Tu vedi un’anteprima?

2 Mi Piace

Fantastico! @downey, potremmo provare a farlo usando il tuo server Jitsi? Al momento non ne ho uno, ma potrei volerne configurare uno.

Stavo appena avendo difficoltà con una chiamata familiare su GoToMeeting e sarei interessato a provare qualcosa di nuovo che sia semplicemente incorporato in un argomento di Discourse. Tanto meglio se è con Jitsi!

1 Mi Piace

C’è qualche preoccupazione nell’utilizzare il server gratuito fornito da Jitsi?

1 Mi Piace

C’è un problema nell’utilizzare il server che Jitsi offre gratuitamente?

Lo abbiamo testato e funziona bene per circa 10 persone. Le prestazioni diventano inutilizzabili con 20+ partecipanti, quindi è consigliabile eseguire la propria istanza per chiamate con gruppi più numerosi, oltre che per l’integrazione con Slack ed Etherpad.

4 Mi Piace

Questo mi ricorda che il motivo per cui i nostri test su Jitsi si sono interrotti è che Jitsi invita gli utenti mobili a installare un’app, almeno su iOS. Stiamo rivalutando BigBlueButton, che funziona tramite il browser su dispositivi mobili e desktop.

Mi chiedo se @pmusaraj sarebbe interessato a dare un’occhiata alla loro API per vedere quanto, eventualmente, del lavoro svolto su questo componente possa essere riutilizzato anche lì…

6 Mi Piace

Aiuta il fatto che i tuoi utenti possano anche chiamare? A parer mio, l’app per iOS è eccellente, oltre ad essere completamente open source e, per quanto ne so, molto facile da usare. Ho notato che l’app è sostanzialmente una replica dell’app Zoom per iOS e Android, che quasi tutti quelli che conosco utilizzano.

2 Mi Piace

Insomma, se ho la scelta tra una soluzione di videoconferenza che funziona in modo nativo e una che richiede un’app, probabilmente eviterò di installare l’app aggiuntiva.

3 Mi Piace

È un po’ (non del tutto) come chiedere a tutti quelli che vogliono avere una qualsiasi conversazione usando Discourse come piattaforma di usare meta. :slight_smile:

Sì, è vero, e non ho ancora valutato le implicazioni dell’uso di un’interfaccia mobile incorporata in Discourse in questo modo.

Ho sentito parlare bene anche di BBB, specialmente per eventi di tipo “webinar”. Sarebbe ottima anche un’integrazione per esso :slight_smile:

Per quanto ne so, è il contrario: nel corso degli anni Zoom ha copiato molta dell’UI/UX di Jitsi e di altri strumenti di videoconferenza web.

6 Mi Piace

Per la cronaca, sto riscontrando un errore durante la configurazione del componente del tema per utilizzare la mia istanza Jitsi installata. La sintassi normale dell’URL della stanza funziona bene, ma per qualche motivo ottengo un errore 404 quando provo a usare il pulsante. Purtroppo non avrò tempo questa settimana per risolvere il problema…

3 Mi Piace

@pmusaraj, grazie per il componente!

C’è un modo per aggiungere un generatore di parole casuali per la creazione di stanze? O forse un timestamp/epoch? Ogni volta che creo una stanza in Discourse mi blocco mentalmente. :slight_smile:

3 Mi Piace

“I bravi artisti copiano, i grandi artisti rubano” – all’inizio della giornata, ciò che l’utente vede è il prodotto attuale, non la sua storia.

Di quanto migliora le prestazioni di Jitsi con la propria istanza? Pensavo che, una volta avviata la chiamata, la comunicazione avvenga in modalitĂ  peer-to-peer.

Abbiamo bisogno di una soluzione in grado di gestire gruppi numerosi e, nella configurazione attuale (utilizzando meet.jit.si), riscontro spesso prestazioni insufficienti anche per le chiamate uno a uno.

Jitsi è peer-to-peer solo nelle conversazioni 1:1. Qualsiasi gruppo piÚ numeroso viene instradato attraverso il server.

Anche le istanze self-hosted dedicate su cui abbiamo sperimentato si saturano abbastanza rapidamente.

1 Mi Piace

Forse dovrebbero offrire un’opzione di hosting gestito a pagamento, oltre all’opzione self-hosting… potrebbe aiutarli a identificare i problemi del software su larga scala :thinking:

3 Mi Piace

Credo che il problema principale sia che, per distribuzioni di qualsiasi scala, jitsi-videobridge richiede davvero un host dedicato, con il componente jitsi-meet installato separatamente. Il primo è il server di streaming, mentre meet fornisce solo l’interfaccia utente.

Purtroppo, la procedura di installazione piÚ comunemente scelta è la distribuzione semi-automatizzata su singolo host. La loro installazione rapida è interamente basata su Docker ed è molto semplice.

La installazione manuale dettagliata, che consente di distribuire i componenti separatamente, scoraggerĂ  rapidamente i nuovi utenti.

9 Mi Piace

Non riesco a far funzionare questa cosa, nemmeno con il server predefinito meet.jit.si. Qualsiasi cosa inserisca come ID riunione, ottengo solo una scatola grigia invece della videochiamata.

1 Mi Piace

C’è qualcosa nella console?

Ciao Tobias, qui funziona (con Chrome e Firefox), versione 2.5.0 beta2, pochi plugin, server Jitsi fresco di circa 48 ore… :face_with_raised_eyebrow:

Sto cercando di implementare JWT, ma potrei essere fuori dalla mia portata :exploding_head:, e mi chiedevo anche se non sarebbe meglio importare external_api.js da settings.meet_jitsi_domain invece che da https://meet.jit.si?
Ecco: https://github.com/pmusaraj/discourse-jitsi/blob/master/javascripts/discourse/initializers/insert-jitsi.js.es6

2 Mi Piace

Hmm… lots of errors in the console. This happens on my personal instance and on a new hosted trial site just created. I’m using the default meet.jit.si server, have made no changes to the theme component settings.

I don’t have my own jitsi server (yet) and thought it would work out of the box…

click to see
Logger.js:154 2020-04-11T19:21:21.250Z [modules/util/JitsiLocalStorage.js] <new <anonymous>>:  DOMException: Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
    at new <anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:29:197547)
    at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:29:197486)
    at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:29:197742)
    at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
    at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:54:98101)
    at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
    at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:24:101984)
    at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
    at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:29:222225)
    at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
    at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:24:213733)
    at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
    at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:29:196138)
    at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
    at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:24:154819)
    at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
    at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:63:41390)
    at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
    at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:54:53082)
    at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:54:55490)
    at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
    at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:54:165081)
    at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:54:166745)
    at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
    at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:126:292708)
    at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:126:323867)
    at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
    at Module.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:222:80217)
    at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
    at https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:908
    at https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:919
o @ Logger.js:154
(anonymous) @ JitsiLocalStorage.js:42
(anonymous) @ JitsiLocalStorage.js:77
(anonymous) @ app.bundle.min.js?v=3962.622:29
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:54
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:24
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:29
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:24
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:29
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:24
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:63
n @ bootstrap:19
(anonymous) @ AuthHandler.js:1
(anonymous) @ app.bundle.min.js?v=3962.622:54
n @ bootstrap:19
(anonymous) @ connection.js:1
(anonymous) @ app.bundle.min.js?v=3962.622:54
n @ bootstrap:19
(anonymous) @ conference.js:1
(anonymous) @ app.bundle.min.js?v=3962.622:126
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:222
n @ bootstrap:19
(anonymous) @ bootstrap:83
(anonymous) @ app.bundle.min.js?v=3962.622:1
Show 2 more frames
Logger.js:154 2020-04-11T19:21:21.252Z [features/local-recording] <Object._loadMetadata>:  Failed to parse localStorage item.
o @ Logger.js:154
_loadMetadata @ SessionManager.js:170
(anonymous) @ SessionManager.js:152
(anonymous) @ SessionManager.js:435
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:24
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:29
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:24
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:29
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:24
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:63
n @ bootstrap:19
(anonymous) @ AuthHandler.js:1
(anonymous) @ app.bundle.min.js?v=3962.622:54
n @ bootstrap:19
(anonymous) @ connection.js:1
(anonymous) @ app.bundle.min.js?v=3962.622:54
n @ bootstrap:19
(anonymous) @ conference.js:1
(anonymous) @ app.bundle.min.js?v=3962.622:126
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:222
n @ bootstrap:19
(anonymous) @ bootstrap:83
(anonymous) @ app.bundle.min.js?v=3962.622:1
Logger.js:154 2020-04-11T19:21:21.309Z [index.web] <HTMLDocument.<anonymous>>:  (TIME) document ready:	 432.6749999891035
react-dom.production.min.js:187 DOMException: Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
    at Oe._initStorage (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:16:45149)
    at Oe.componentDidMount (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:16:44779)
    at Oe.componentDidMount (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:24:223947)
    at Gs (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:94889)
    at t.unstable_runWithPriority (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:192:3884)
    at fi (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:41540)
    at Ws (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:90890)
    at Ps (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:78509)
    at fc (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:105337)
    at hc (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:105412)
    at https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:106607
    at Bs (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:80044)
    at _c (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:106592)
    at Object.render (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:109864)
    at HTMLDocument.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:222:80940)
La @ react-dom.production.min.js:187
Ga.n.callback @ react-dom.production.min.js:200
Hi @ react-dom.production.min.js:125
Bi @ react-dom.production.min.js:125
Gs @ react-dom.production.min.js:239
t.unstable_runWithPriority @ scheduler.production.min.js:20
fi @ react-dom.production.min.js:113
Ws @ react-dom.production.min.js:230
Ls @ react-dom.production.min.js:206
(anonymous) @ react-dom.production.min.js:114
t.unstable_runWithPriority @ scheduler.production.min.js:20
fi @ react-dom.production.min.js:113
gi @ react-dom.production.min.js:114
mi @ react-dom.production.min.js:113
Bs @ react-dom.production.min.js:208
_c @ react-dom.production.min.js:272
render @ react-dom.production.min.js:273
(anonymous) @ index.web.js:25
react-dom.production.min.js:114 Uncaught DOMException: Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
    at Oe._initStorage (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:16:45149)
    at Oe.componentDidMount (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:16:44779)
    at Oe.componentDidMount (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:24:223947)
    at Gs (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:94889)
    at t.unstable_runWithPriority (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:192:3884)
    at fi (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:41540)
    at Ws (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:90890)
    at Ps (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:78509)
    at fc (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:105337)
    at hc (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:105412)
    at https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:106607
    at Bs (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:80044)
    at _c (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:106592)
    at Object.render (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:109864)
    at HTMLDocument.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:222:80940)
gi @ react-dom.production.min.js:114
mi @ react-dom.production.min.js:113
Bs @ react-dom.production.min.js:208
_c @ react-dom.production.min.js:272
render @ react-dom.production.min.js:273
(anonymous) @ index.web.js:25
react-dom.production.min.js:187 TypeError: Cannot read property 'dispatch' of undefined
    at Oe.componentWillUnmount (BaseApp.js:100)
    at react-dom.production.min.js:187
    at Ra (react-dom.production.min.js:189)
    at Ua (react-dom.production.min.js:195)
    at Gs (react-dom.production.min.js:235)
    at t.unstable_runWithPriority (scheduler.production.min.js:20)
    at fi (react-dom.production.min.js:113)
    at Ws (react-dom.production.min.js:230)
    at Ls (react-dom.production.min.js:206)
    at react-dom.production.min.js:114
    at t.unstable_runWithPriority (scheduler.production.min.js:20)
    at fi (react-dom.production.min.js:113)
    at gi (react-dom.production.min.js:114)
    at mi (react-dom.production.min.js:113)
    at Bs (react-dom.production.min.js:208)
    at _c (react-dom.production.min.js:272)
    at Object.render (react-dom.production.min.js:273)
    at HTMLDocument.<anonymous> (index.web.js:25)
La @ react-dom.production.min.js:187
Ga.n.callback @ react-dom.production.min.js:200
Hi @ react-dom.production.min.js:125
Bi @ react-dom.production.min.js:125
Gs @ react-dom.production.min.js:239
t.unstable_runWithPriority @ scheduler.production.min.js:20
fi @ react-dom.production.min.js:113
Ws @ react-dom.production.min.js:230
Ls @ react-dom.production.min.js:206
(anonymous) @ react-dom.production.min.js:114
t.unstable_runWithPriority @ scheduler.production.min.js:20
fi @ react-dom.production.min.js:113
gi @ react-dom.production.min.js:114
mi @ react-dom.production.min.js:113
I @ scheduler.production.min.js:16
H @ scheduler.production.min.js:18
C @ scheduler.production.min.js:13
BaseApp.js:100 Uncaught TypeError: Cannot read property 'dispatch' of undefined
    at Oe.componentWillUnmount (BaseApp.js:100)
    at react-dom.production.min.js:187
    at Ra (react-dom.production.min.js:189)
    at Ua (react-dom.production.min.js:195)
    at Gs (react-dom.production.min.js:235)
    at t.unstable_runWithPriority (scheduler.production.min.js:20)
    at fi (react-dom.production.min.js:113)
    at Ws (react-dom.production.min.js:230)
    at Ls (react-dom.production.min.js:206)
    at react-dom.production.min.js:114
    at t.unstable_runWithPriority (scheduler.production.min.js:20)
    at fi (react-dom.production.min.js:113)
    at gi (react-dom.production.min.js:114)
    at mi (react-dom.production.min.js:113)
    at Bs (react-dom.production.min.js:208)
    at _c (react-dom.production.min.js:272)
    at Object.render (react-dom.production.min.js:273)
    at HTMLDocument.<anonymous> (index.web.js:25)
1 Mi Piace