ernestwisniewski/kbin

View on GitHub
assets/controllers/scroll_top_controller.js

Summary

Maintainability
A
0 mins
Test Coverage
// SPDX-FileCopyrightText: 2023 /kbin contributors <https://kbin.pub/>
//
// SPDX-License-Identifier: AGPL-3.0-only

import {Controller} from '@hotwired/stimulus';

export default class extends Controller {
    connect() {
        let self = this;
        window.onscroll = function () {
            self.scroll();
        };
    }

    scroll() {
        if (
            document.body.scrollTop > 20 ||
            document.documentElement.scrollTop > 20
        ) {
            this.element.style.display = "block";
        } else {
            this.element.style.display = "none";
        }
    }

    increaseCounter() {
        const counter = this.element.querySelector('small');
        counter.innerHTML = parseInt(counter.innerHTML) + 1;
        counter.classList.remove('hidden');
    }

    scrollTop() {
        document.body.scrollTop = 0;
        document.documentElement.scrollTop = 0;
    }
}