Skip to content

Commit 919af2d

Browse files
committed
Do not commit on click of radio input
1 parent 1aff787 commit 919af2d

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

index.js

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -169,11 +169,17 @@ function shouldCommit(event: Event) {
169169
// Ignore clicks from nested details.
170170
if (target.closest('details') !== details) return
171171

172-
const menuitem =
173-
event.type === 'change'
174-
? target.closest('[role="menuitemradio"], [role="menuitemcheckbox"]')
175-
: target.closest('[role="menuitem"], [role="menuitemradio"]')
176-
if (menuitem) commit(menuitem, details)
172+
if (event.type === 'click') {
173+
const menuitem = target.closest('[role="menuitem"], [role="menuitemradio"]')
174+
const onlyCommitOnChangeEvent =
175+
menuitem && menuitem.getAttribute('role') === 'menuitemradio' && menuitem.querySelector('input')
176+
if (menuitem && !onlyCommitOnChangeEvent) {
177+
commit(menuitem, details)
178+
}
179+
} else if (event.type === 'change') {
180+
const menuitem = target.closest('[role="menuitemradio"], [role="menuitemcheckbox"]')
181+
if (menuitem) commit(menuitem, details)
182+
}
177183
}
178184

179185
function updateChecked(selected: Element, details: Element) {

0 commit comments

Comments
 (0)