47 lines
1.3 KiB
JavaScript
47 lines
1.3 KiB
JavaScript
import $ from 'jquery';
|
|
import {
|
|
canScroll,
|
|
isScrolledToBottom,
|
|
isScrolledToTop,
|
|
isScrolledToMiddle,
|
|
toggleDisableButton,
|
|
} from './scroll_utils';
|
|
|
|
export default class LogOutputBehaviours {
|
|
constructor() {
|
|
// Scroll buttons
|
|
this.$scrollTopBtn = $('.js-scroll-up');
|
|
this.$scrollBottomBtn = $('.js-scroll-down');
|
|
|
|
this.$scrollTopBtn.off('click').on('click', this.scrollToTop.bind(this));
|
|
this.$scrollBottomBtn.off('click').on('click', this.scrollToBottom.bind(this));
|
|
}
|
|
|
|
toggleScroll() {
|
|
if (canScroll()) {
|
|
if (isScrolledToMiddle()) {
|
|
// User is in the middle of the log
|
|
|
|
toggleDisableButton(this.$scrollTopBtn, false);
|
|
toggleDisableButton(this.$scrollBottomBtn, false);
|
|
} else if (isScrolledToTop()) {
|
|
// User is at Top of Log
|
|
|
|
toggleDisableButton(this.$scrollTopBtn, true);
|
|
toggleDisableButton(this.$scrollBottomBtn, false);
|
|
} else if (isScrolledToBottom()) {
|
|
// User is at the bottom of the build log.
|
|
|
|
toggleDisableButton(this.$scrollTopBtn, false);
|
|
toggleDisableButton(this.$scrollBottomBtn, true);
|
|
}
|
|
} else {
|
|
toggleDisableButton(this.$scrollTopBtn, true);
|
|
toggleDisableButton(this.$scrollBottomBtn, true);
|
|
}
|
|
}
|
|
|
|
toggleScrollAnimation(toggle) {
|
|
this.$scrollBottomBtn.toggleClass('animate', toggle);
|
|
}
|
|
}
|