L'intestazione del marchio del menu mobile non si espande completamente fino a quando non si ridimensiona la finestra

Abbiamo un problema in cui il menu dell’intestazione del brand in alto a sinistra si espande solo parzialmente su mobile quando viene toccato. L’abbiamo impostato per non visualizzare la barra su mobile. Se tocco solo il menu hamburger, appare così:

Ma se poi ridimensiono la finestra in qualsiasi direzione, si espande completamente e mostra tutti i sottomenu.

Come posso fare in modo che si espanda completamente quando viene toccato senza bisogno di ridimensionare la finestra?

Ho scoperto che sul nostro forum, quando faccio clic sul menu hamburger, la classe “slide-in” non viene aggiunta alla div “menu-panel”.

Ma non appena ridimensiono la finestra, viene aggiunta e il menu funziona correttamente.

Per quanto ne so, menu-panel e slide-in non provengono dal nostro tema. Ma sembra che slide-in sia importante per farlo funzionare. Perché slide-in non viene aggiunto quando il menu viene aperto? Perché il ridimensionamento della finestra del browser dovrebbe farlo aggiungere improvvisamente?

Ecco come vedo questo componente su dispositivi mobili senza altri temi installati:

Non ho dovuto ridimensionare per ottenere questo, e quando ridimensiono non ottengo affatto la classe slide-in

Sembra che tu sia su Discourse 3.2, piuttosto che sull’attuale versione 3.3. Ci sono aggiornamenti a questo componente che dipendono dalla versione 3.3, quindi al momento non li stai ricevendo.

È possibile che l’aggiornamento di Discourse e del componente risolva tutti i tuoi problemi, ma in caso contrario potrebbe esserci un conflitto con altre personalizzazioni.

2 Mi Piace

Hai ragione, stiamo usando Discourse 3.2.3. Pensavo di aver capito da questo post che il problema esistesse anche nella versione 3.3, ma il tuo sembra a posto. Verificherò se è possibile per noi aggiornare alla 3.3, o magari installare una versione precedente del componente brand-header.

È pubblicato da qualche parte che il componente richiede la versione 3.3? Non vedo nulla del genere.

Sai per caso quando sono stati apportati gli aggiornamenti che dipendono dalla 3.3? O qual è l’ultima versione che funziona con la 3.2?

1 Mi Piace

Non lo richiede esplicitamente, ma a volte quando apportiamo aggiornamenti che dipendono da una nuova funzionalità di Discourse, blocchiamo il componente del tema a una versione precedente di Discourse, il che impedirà la ricezione di aggiornamenti incompatibili.

Quando ciò viene fatto, i dettagli sono in un file .discourse-compatibility:

In questo caso, saresti bloccato al commit con hash: 12e6f76e0508b262517efd5db2d7feca261dff86, che è DEV: move widgets to dedicated files, cleanup (#28) · discourse/discourse-brand-header@12e6f76 · GitHub

Da quel momento in poi, il codice del componente è stato completamente ristrutturato a causa delle modifiche al funzionamento dell’header in Discourse.

Penso che questo metta in evidenza un buon problema da considerare, queste informazioni sono piuttosto nascoste e tecniche. Forse possiamo aggiungere un messaggio nel pannello di amministrazione che indichi che alcuni componenti hanno smesso di ricevere aggiornamenti perché richiedono funzionalità dall’ultima versione di Discourse.

2 Mi Piace

Ho forkato il componente, l’ho ripristinato al commit 12e6f76 e l’ho installato sul nostro forum, ma il problema persiste. Non dovrebbe risolvere il problema?

No, quello è il commit a cui sei già collegato, ti stai perdendo tutto ciò che viene dopo.

1 Mi Piace

Devo star fraintendendo qualcosa. Non avevamo questo problema. A un certo punto il problema si è verificato perché il componente ha apportato modifiche che richiedono Discourse 3.3 e abbiamo aggiornato il componente ma stiamo ancora usando Discourse 3.2. È corretto? Se sì, non sarebbe la soluzione più semplice tornare all’ultima versione del componente che funziona con Discourse 3.2?

Il componente non avrebbe ricevuto tali modifiche per la 3.3. Quando un componente è bloccato a una versione specifica di Discourse, è essenzialmente bloccato nel suo stato attuale finché Discourse non viene aggiornato.

Quindi non dovresti aver bisogno di farlo… il blocco dovrebbe mantenerlo automaticamente all’ultima versione compatibile, ma è possibile che questo bug esistesse già nella versione del componente che stai utilizzando.

1 Mi Piace

Ora capisco… astuto. Si può presumere che non ci sarà alcuno sforzo da parte del manutentore per far funzionare correttamente il componente con la versione 3.2?

Ho fatto una copia del forum e l’ho aggiornata alla versione 3.3 e sì, questo risolve il problema. Sto verificando con il nostro amministratore per vedere se è possibile aggiornare alla versione 3.3 sul forum live.

Grazie!

1 Mi Piace

Sì, sfortunatamente abbiamo solo la larghezza di banda per mantenere i componenti del tema sull’ultima versione di Discourse, quindi questo può accadere di tanto in tanto con versioni precedenti.

Siamo finalmente riusciti ad aggiornare il forum live alla versione 3.3 e improvvisamente funziona. Grazie ancora!

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.