Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Bootstrap
bootstrap
Commits
a5cbb5e7
Commit
a5cbb5e7
authored
5 years ago
by
Johann-S
Browse files
Options
Download
Email Patches
Plain Diff
dropdown show method should do the same as toggle
parent
b02bae76
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
js/src/dropdown/dropdown.js
+14
-22
js/src/dropdown/dropdown.js
js/src/dropdown/dropdown.spec.js
+27
-1
js/src/dropdown/dropdown.spec.js
with
41 additions
and
23 deletions
+41
-23
js/src/dropdown/dropdown.js
+
14
-
22
View file @
a5cbb5e7
...
...
@@ -135,7 +135,6 @@ class Dropdown {
return
}
const
parent
=
Dropdown
.
getParentFromElement
(
this
.
_element
)
const
isActive
=
this
.
_menu
.
classList
.
contains
(
ClassName
.
SHOW
)
Dropdown
.
clearMenus
()
...
...
@@ -144,9 +143,19 @@ class Dropdown {
return
}
this
.
show
()
}
show
()
{
if
(
this
.
_element
.
disabled
||
this
.
_element
.
classList
.
contains
(
ClassName
.
DISABLED
)
||
this
.
_menu
.
classList
.
contains
(
ClassName
.
SHOW
))
{
return
}
const
parent
=
Dropdown
.
getParentFromElement
(
this
.
_element
)
const
relatedTarget
=
{
relatedTarget
:
this
.
_element
}
const
showEvent
=
EventHandler
.
trigger
(
parent
,
Event
.
SHOW
,
relatedTarget
)
if
(
showEvent
.
defaultPrevented
)
{
...
...
@@ -200,27 +209,6 @@ class Dropdown {
EventHandler
.
trigger
(
parent
,
Event
.
SHOWN
,
relatedTarget
)
}
show
()
{
if
(
this
.
_element
.
disabled
||
this
.
_element
.
classList
.
contains
(
ClassName
.
DISABLED
)
||
this
.
_menu
.
classList
.
contains
(
ClassName
.
SHOW
))
{
return
}
const
parent
=
Dropdown
.
getParentFromElement
(
this
.
_element
)
const
relatedTarget
=
{
relatedTarget
:
this
.
_element
}
const
showEvent
=
EventHandler
.
trigger
(
parent
,
Event
.
SHOW
,
relatedTarget
)
if
(
showEvent
.
defaultPrevented
)
{
return
}
Manipulator
.
toggleClass
(
this
.
_menu
,
ClassName
.
SHOW
)
Manipulator
.
toggleClass
(
parent
,
ClassName
.
SHOW
)
EventHandler
.
trigger
(
parent
,
Event
.
SHOWN
,
relatedTarget
)
}
hide
()
{
if
(
this
.
_element
.
disabled
||
this
.
_element
.
classList
.
contains
(
ClassName
.
DISABLED
)
||
!
this
.
_menu
.
classList
.
contains
(
ClassName
.
SHOW
))
{
return
...
...
@@ -237,6 +225,10 @@ class Dropdown {
return
}
if
(
this
.
_popper
)
{
this
.
_popper
.
destroy
()
}
Manipulator
.
toggleClass
(
this
.
_menu
,
ClassName
.
SHOW
)
Manipulator
.
toggleClass
(
parent
,
ClassName
.
SHOW
)
EventHandler
.
trigger
(
parent
,
Event
.
HIDDEN
,
relatedTarget
)
...
...
This diff is collapsed.
Click to expand it.
js/src/dropdown/dropdown.spec.js
+
27
-
1
View file @
a5cbb5e7
...
...
@@ -174,7 +174,6 @@ describe('Dropdown', () => {
expect
(
firstDropdownEl
.
classList
.
contains
(
'
show
'
)).
toEqual
(
true
)
spyOn
(
dropdown1
.
_popper
,
'
destroy
'
)
dropdown2
.
toggle
()
done
()
})
secondDropdownEl
.
addEventListener
(
'
shown.bs.dropdown
'
,
()
=>
{
...
...
@@ -679,6 +678,33 @@ describe('Dropdown', () => {
dropdown
.
hide
()
})
it
(
'
should hide a dropdown and destroy popper
'
,
done
=>
{
fixtureEl
.
innerHTML
=
[
'
<div class="dropdown">
'
,
'
<button href="#" class="btn dropdown-toggle" data-toggle="dropdown">Dropdown</button>
'
,
'
<div class="dropdown-menu">
'
,
'
<a class="dropdown-item" href="#">Secondary link</a>
'
,
'
</div>
'
,
'
</div>
'
].
join
(
''
)
const
btnDropdown
=
fixtureEl
.
querySelector
(
'
[data-toggle="dropdown"]
'
)
const
dropdownEl
=
fixtureEl
.
querySelector
(
'
.dropdown
'
)
const
dropdown
=
new
Dropdown
(
btnDropdown
)
dropdownEl
.
addEventListener
(
'
shown.bs.dropdown
'
,
()
=>
{
spyOn
(
dropdown
.
_popper
,
'
destroy
'
)
dropdown
.
hide
()
})
dropdownEl
.
addEventListener
(
'
hidden.bs.dropdown
'
,
()
=>
{
expect
(
dropdown
.
_popper
.
destroy
).
toHaveBeenCalled
()
done
()
})
dropdown
.
show
()
})
it
(
'
should not hide a dropdown if the element is disabled
'
,
done
=>
{
fixtureEl
.
innerHTML
=
[
'
<div class="dropdown">
'
,
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment