Sha256: 355fedcddfcbb25b83cb189974f2cb2b019fdc8199f27c316b6c3965ccaf224d

Contents?: true

Size: 602 Bytes

Versions: 10

Compression:

Stored size: 602 Bytes

Contents

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

export default class extends Controller {
  static targets = ["toggleButton"];

  connect() {
    this.loadThemePreference();
  }

  toggle() {
    const isDarkMode = document.documentElement.classList.toggle("dark");
    this.saveThemePreference(isDarkMode);
  }

  loadThemePreference() {
    const isDarkMode = localStorage.getItem("themePreference") === "true";
    if (isDarkMode) {
      document.documentElement.classList.add("dark");
    }
  }

  saveThemePreference(isDarkMode) {
    localStorage.setItem("themePreference", isDarkMode);
  }
}

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
shadcn-ui-0.0.15 app/javascript/controllers/theme_controller.js
shadcn-ui-0.0.14 app/javascript/controllers/theme_controller.js
shadcn-ui-0.0.13 app/javascript/controllers/theme_controller.js
shadcn-ui-0.0.12 app/javascript/controllers/theme_controller.js
shadcn-ui-0.0.10 app/javascript/controllers/theme_controller.js
shadcn-ui-0.0.8 app/javascript/controllers/theme_controller.js
shadcn-ui-0.0.5 app/javascript/controllers/theme_controller.js
shadcn-ui-0.0.4 app/javascript/controllers/theme_controller.js
shadcn-ui-0.0.3 app/javascript/controllers/theme_controller.js
shadcn-ui-0.0.2 app/javascript/controllers/theme_controller.js