Fixed XF.ToggleClick does not trigger toggle:shown on the right context

Affected version
2.2.2

TickTackk

Well-known member
When hidden it correctly triggers:
JavaScript:
            if (this.$toggleParent)
            {
                this.$toggleParent.addClassTransitioned(activeClass, this.activeTransitionComplete, instant);
            }
            if (this.$toggleTarget)
            {
                this.$toggleTarget.addClassTransitioned(activeClass, this.activeTransitionComplete, instant);
            }
            this.$target.addClassTransitioned(activeClass, this.activeTransitionComplete, instant);
but when shown it doesn't:
JavaScript:
            if (this.$toggleParent)
            {
                this.$toggleParent.removeClassTransitioned(activeClass, XF.proxy(this, 'inactiveTransitionComplete'), instant);
            }
            if (this.$toggleTarget)
            {
                this.$toggleTarget.removeClassTransitioned(activeClass, XF.proxy(this, 'inactiveTransitionComplete'), instant);
            }
            this.$target.removeClassTransitioned(activeClass, XF.proxy(this, 'inactiveTransitionComplete'), instant);
Note the XF.proxy(blah) call.
 

XF Bug Bot

XenForo bug fixer bot
Staff member
Thank you for reporting this issue, it has now been resolved. We are aiming to include any changes that have been made in a future XF release (2.2.4).

Change log:
Ensure toggle:hidden event is triggered correctly when hiding toggle elements.
There may be a delay before changes are rolled out to the XenForo Community.
 

Chris D

XenForo developer
Staff member
The report is slightly confusing as I think you have the code samples the wrong way round. I believe it was working for show but not working for hide.

I've included a .diff below, please speak up if these changes don't work as you expect:

Diff:
Index: js/xf/core/structure.js
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/js/xf/core/structure.js b/js/xf/core/structure.js
--- a/js/xf/core/structure.js    (revision Staged)
+++ b/js/xf/core/structure.js    (date 1614595667835)
@@ -1668,13 +1668,13 @@
 
             if (this.$toggleParent)
             {
-                this.$toggleParent.removeClassTransitioned(activeClass, XF.proxy(this, 'inactiveTransitionComplete'), instant);
+                this.$toggleParent.removeClassTransitioned(activeClass, this.inactiveTransitionComplete, instant);
             }
             if (this.$toggleTarget)
             {
-                this.$toggleTarget.removeClassTransitioned(activeClass, XF.proxy(this, 'inactiveTransitionComplete'), instant);
+                this.$toggleTarget.removeClassTransitioned(activeClass, this.inactiveTransitionComplete, instant);
             }
-            this.$target.removeClassTransitioned(activeClass, XF.proxy(this, 'inactiveTransitionComplete'), instant);
+            this.$target.removeClassTransitioned(activeClass, this.inactiveTransitionComplete, instant);
         },
 
         show: function(instant)
 
Top