Skip to content

Commit 0232218

Browse files
committed
refactor: update isVisible function
1 parent 9830b9a commit 0232218

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

js/src/util/index.js

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,26 @@ const isVisible = element => {
146146
return false
147147
}
148148

149-
return getComputedStyle(element).getPropertyValue('visibility') === 'visible'
149+
const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'
150+
// Handle `details` element as its content may falsie appear visible when it is closed
151+
const closedDetails = element.closest('details:not([open])')
152+
153+
if (!closedDetails) {
154+
return elementIsVisible
155+
}
156+
157+
if (closedDetails !== element) {
158+
const summary = element.closest('summary')
159+
if (summary && summary.parentNode !== closedDetails) {
160+
return false
161+
}
162+
163+
if (summary === null) {
164+
return false
165+
}
166+
}
167+
168+
return elementIsVisible
150169
}
151170

152171
const isDisabled = element => {

0 commit comments

Comments
 (0)