Skip to content

Commit 2eb706f

Browse files
jacobmllr95tmorehouse
authored andcommitted
fix(dropdown): Use custom CSS for no-caret option #1473 (#2136)
* fix(dropdown): Use custom CSS for `no-caret` option * Make dropdown tests pass
1 parent ba6f3f8 commit 2eb706f

File tree

3 files changed

+13
-6
lines changed

3 files changed

+13
-6
lines changed

src/components/dropdown/dropdown.css

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
/* See: https://github.com/bootstrap-vue/bootstrap-vue/issues/1473 */
2+
/* See: https://github.com/twbs/bootstrap/issues/23724 */
3+
.dropdown-toggle.dropdown-toggle-no-caret:after {
4+
display: none !important;
5+
}

src/components/dropdown/dropdown.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import dropdownMixin from '../../mixins/dropdown'
33
import stripScripts from '../../utils/strip-scripts'
44
import bButton from '../button/button'
55

6+
import './dropdown.css'
67
// Needed when dropdowns are inside an input group
78
import '../input-group/input-group.css'
89

@@ -163,9 +164,10 @@ export default {
163164
},
164165
toggleClasses () {
165166
return [
167+
'dropdown-toggle',
166168
{
167-
'dropdown-toggle': !this.noCaret || this.split,
168-
'dropdown-toggle-split': this.split
169+
'dropdown-toggle-split': this.split,
170+
'dropdown-toggle-no-caret': this.noCaret && !this.split
169171
},
170172
this.toggleClass
171173
]

src/components/dropdown/dropdown.spec.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,22 +41,22 @@ describe('dropdown', async () => {
4141
});
4242
*/
4343

44-
it('should not have a toggle caret when no-caret is true', async () => {
44+
it('should have "dropdown-toggle-no-caret" class when no-caret is true', async () => {
4545
const { app: { $refs } } = window
4646
const { dd_7 } = $refs // eslint-disable-line camelcase
4747

4848
const toggle = Array.from(dd_7.$el.children)
4949
.find(node => node.tagName === 'BUTTON' && node.id === `${dd_7.safeId('_BV_toggle_')}`)
50-
expect(toggle).not.toHaveClass('dropdown-toggle')
50+
expect(toggle).toHaveClass('dropdown-toggle-no-caret')
5151
})
5252

53-
it('should have a toggle caret when no-caret and split are true', async () => {
53+
it('should not have "dropdown-toggle-no-caret" class when no-caret and split are true', async () => {
5454
const { app: { $refs } } = window
5555
const { dd_8 } = $refs // eslint-disable-line camelcase
5656

5757
const toggle = Array.from(dd_8.$el.children)
5858
.find(node => node.tagName === 'BUTTON' && node.id === `${dd_8.safeId('_BV_toggle_')}`)
59-
expect(toggle).toHaveClass('dropdown-toggle')
59+
expect(toggle).not.toHaveClass('dropdown-toggle-no-caret')
6060
})
6161
/*
6262
it('boundary set to viewport should have class position-static', async () => {

0 commit comments

Comments
 (0)