ImageViewer-Layer in Dialog -> ESC-Taste schließt beide Popups

  • Affected Version
    WoltLab Suite 5.4
    Affected App
    WoltLab Suite Core

    Siehe Titel.

    Da ich nicht denke, dass das noch in 5.4 behoben wird, gibt es hier eine einfache Möglichkeit bei Drücken der ESC-Taste das Schließen des UiDialogs zu verhindern, sofern der ImageViewer-Dialog offen ist?

  • Christopher Walz

    Changed the title of the thread from “ImageViewer in Dialog -> ESC schließt beide Popups” to “ImageViewer-Layer in Dialog -> ESC-Taste schließt beide Popups”.
    • Official Post

    Das ist konzeptionell nicht vorgesehen, denn es fehlt eine Logik, um das Stacking dieser Kontexte zuverlässig zu tracken. Das ist aber notwendig um festzustellen, in welcher Reihenfolge diese geöffnet sind, weil man sich nicht auf die Ausführungsreihenfolge der Event-Listener verlassen kann.


    Selbst ein Workaround auf Basis des Close-Callbacks ist nicht trivial, denn auf Grund der Ausführungsreihenfolge kann der ImageViewer bereits geschlossen werden, bevor der Event-Listener vom Dialog greift. Eine wirkliche Lösung kann ich dir ad hoch leider nicht nennen.


    Overlays in Overlays (respektive auch Dialoge in Dialogen) sind mehr oder minder ein Design-Fehler an sich, auch wenn es sich nicht immer vermeiden lässt. Dies sauber zu unterstützen erfordert eine ziemlich umfangreiche technische und konzeptionelle Überarbeitung. Auch wenn ich es durchaus auf meiner Liste habe, so steht es leider ziemlich weit unten.

    Alexander Ebert
    Senior Developer WoltLab® GmbH

  • Ich habs jetzt übrigens so gelöst, dass ich dem Dialog closable: false gebe und im onSetup-Callback das "x" Icon zum Schließen des Dialogs selber in den Header einfüge. Dann kann der Dialog zwar per ESC-Taste und Backdrop-Click gar nicht mehr geschloßen werden, jedoch ist das von der UX her dann trotzdem angenehmer.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!