~cytrogen/masto-fe

ref: dc35e2d7569a293bbda92ee3ecba8d2d4e6a7b64 masto-fe/app/javascript/flavours/glitch/packs/settings.js -rw-r--r-- 1.1 KiB
dc35e2d7 — Cytrogen Rename .scss → .css and remove sass dependency (Phase 9-10) 15 days ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import "packs/public-path";
import Rails  from "@rails/ujs";

import loadKeyboardExtensions from "flavours/glitch/load_keyboard_extensions";
import { loadPolyfills } from "flavours/glitch/polyfills";
import "cocoon-js-vanilla";

function main() {
  const toggleSidebar = () => {
    const sidebar = document.querySelector(".sidebar ul");
    const toggleButton = document.querySelector(".sidebar__toggle__icon");

    if (sidebar.classList.contains("visible")) {
      document.body.style.overflow = null;
      toggleButton.setAttribute("aria-expanded", "false");
    } else {
      document.body.style.overflow = "hidden";
      toggleButton.setAttribute("aria-expanded", "true");
    }

    toggleButton.classList.toggle("active");
    sidebar.classList.toggle("visible");
  };

  Rails.delegate(document, ".sidebar__toggle__icon", "click", () => {
    toggleSidebar();
  });

  Rails.delegate(document, ".sidebar__toggle__icon", "keydown", e => {
    if (e.key === " " || e.key === "Enter") {
      e.preventDefault();
      toggleSidebar();
    }
  });
}

loadPolyfills()
  .then(main)
  .then(loadKeyboardExtensions)
  .catch(error => {
    console.error(error);
  });