浏览代码

Fix disclosure space key bug

Caleb Porzio 2 年之前
父节点
当前提交
bc453d245c
共有 2 个文件被更改,包括 24 次插入1 次删除
  1. 1 1
      packages/ui/src/disclosure.js
  2. 23 0
      tests/cypress/integration/plugins/ui/disclosure.spec.js

+ 1 - 1
packages/ui/src/disclosure.js

@@ -64,7 +64,7 @@ function handleButton(el, Alpine) {
         // Required for firefox, event.preventDefault() in handleKeyDown for
         // Required for firefox, event.preventDefault() in handleKeyDown for
         // the Space key doesn't cancel the handleKeyUp, which in turn
         // the Space key doesn't cancel the handleKeyUp, which in turn
         // triggers a *click*.
         // triggers a *click*.
-        '@keyup.space.prevent'() { this.$data.__toggle() },
+        '@keyup.space.prevent'() {},
     })
     })
 }
 }
 
 

+ 23 - 0
tests/cypress/integration/plugins/ui/disclosure.spec.js

@@ -77,3 +77,26 @@ test('can set a default open state',
         get('[panel]').should(notBeVisible())
         get('[panel]').should(notBeVisible())
     },
     },
 )
 )
+
+test.only('it toggles using the space key',
+    [html`
+        <div x-data x-disclosure>
+            <button trigger x-disclosure:button>Trigger</button>
+
+            <div x-disclosure:panel panel>
+                Content
+
+                <button close-button type="button" @click="$disclosure.close()">Close</button>
+            </div>
+        </div>
+    `],
+    ({ get }) => {
+        get('[panel]').should(notBeVisible())
+        get('[trigger]').click()
+        get('[panel]').should(beVisible())
+        get('[trigger]').type(' ')
+        get('[panel]').should(notBeVisible())
+        get('[trigger]').type(' ')
+        get('[panel]').should(beVisible())
+    },
+)