StateManager exit/enter offset (versetzt, verschoben)? UPDATE: Shopwarebug Safari

Umgebung: lokal (bitnamistack)
ShopwareVersion: 5.4.6

Ich bin gerade dabei die mobile Ansicht eines Themes bis auf maximal 1023px zu erweitern. Das sollte laut StateManager ja dem exit von Größe ‘m’ entsprechen. Ich habe alles korrekt umgesetzt, da alles auch bis zu einer gewissen Bildschirmgröße auch funktioniert:

und zwar ** bis 1007px Breite.** 

Danach fängt der StateManager schon an auf ‘l’ zu springen und somit die Plugins, die ich anpasste, zu zerstören (destroy()).

Ich habe via console.log() gesehen, dass der State tatsächlich bei 1008px Breite auf ‘l’ steht. Diese Verschiebung zieht sich durch alle Größen. So habe ich es getestet:

console.log($(window).width());
StateManager.registerListener([{
state: 'm',
enter: function() { console.log('onEnter'); },
exit: function() { console.log('onExit'); }
​}]);

Was bei console.log($(window).width()); rauskommt entspricht auch dem Responsive Breakpoint. Das Ergebnis ist also korrekt und zeigt somit eine Differenz von 15px.

Ich freue mich auf eure Antworten^^

Marcel

Ich habe leider rausgefunden, dass es sich um einen allgemeinen Fehler von Shopware im  Safaribrowser handelt. Auch andere Shops, die live sind (und nicht von mir entwickelt wurden ;P), haben einen “Umbruchfehler”, sobald man Safari benutzt. Unabhängig von meiner mobilen Erweiterungs Idee.

Das heißt (wenn man Safari nutzt, nur auf Desktop getestet): Der Statemanager schaltet 15px zu früh um.

Beispiel: Sobald die “window.width()” 15px kleiner ist als der Eingangspunkt zum tabletViewportWidth (zwischen StateManagers ‘s’ und ‘m’), kann man das Burgermenü nicht mehr aktivieren. Und zwischen ‘xs’ und ‘s’ kann man die Suche nicht aktivieren.

Find ich als Safarinutzer schon recht kritisch.