diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d418f15a..c4e1e19a3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ This project adheres to [Semantic Versioning](http://semver.org/). ## Unreleased ### Fixed - Fix error when sorting discussions by "oldest" (#627) +- Fix some issues with dropdown positioning ## [0.1.0-beta.4] - 2015-11-05 ### Added diff --git a/js/lib/components/Dropdown.js b/js/lib/components/Dropdown.js index ac45424cc..749f00141 100644 --- a/js/lib/components/Dropdown.js +++ b/js/lib/components/Dropdown.js @@ -47,7 +47,9 @@ export default class Dropdown extends Component { // bottom of the viewport. If it does, we will apply class to make it show // above the toggle button instead of below it. this.$().on('shown.bs.dropdown', () => { - const $menu = this.$('.Dropdown-menu').removeClass('Dropdown-menu--top Dropdown-menu--right'); + const $menu = this.$('.Dropdown-menu'); + const isRight = $menu.hasClass('Dropdown-menu--right'); + $menu.removeClass('Dropdown-menu--top Dropdown-menu--right'); $menu.toggleClass( 'Dropdown-menu--top', @@ -56,7 +58,7 @@ export default class Dropdown extends Component { $menu.toggleClass( 'Dropdown-menu--right', - $menu.offset().left + $menu.width() > $(window).scrollLeft() + $(window).width() + isRight || $menu.offset().left + $menu.width() > $(window).scrollLeft() + $(window).width() ); if (this.props.onshow) {