Sha256: 134c136123289e670b3b7ab18b770f2e8c0f9eee37bb5723ea9139c90346b9cd

Contents?: true

Size: 935 Bytes

Versions: 4

Compression:

Stored size: 935 Bytes

Contents

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

export default class extends Controller {
  static classes = ["active"];
  static targets = ["button", "tab"];
  static values = { defaultTab: String };

  connect() {
    this.tabTargets.map((tab) => {
      if (tab.id != this.defaultTabValue) {
        tab.hidden = true;
      }
    });

    this.buttonTargets.find((button) => {
      if (button.id === this.defaultTabValue) {
        button.classList.add(...this.activeClasses);
      }
    });
  }

  select(event) {
    let selectedTab = this.tabTargets.find(
      (element) => element.id === event.currentTarget.id
    );

    if (selectedTab.hidden) {
      this.tabTargets.map((tab) => (tab.hidden = true));
      this.buttonTargets.map((button) =>
        button.classList.remove(...this.activeClasses)
      );

      selectedTab.hidden = false;
      event.currentTarget.classList.add(...this.activeClasses);
    }
  }
}

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rails_live_dashboard-0.2.0 app/assets/javascripts/rails_live_dashboard/controllers/tabs_controller.js
rails_live_dashboard-0.1.2 app/assets/javascripts/rails_live_dashboard/controllers/tabs_controller.js
rails_live_dashboard-0.1.1 app/assets/javascripts/rails_live_dashboard/controllers/tabs_controller.js
rails_live_dashboard-0.1.0 app/assets/javascripts/rails_live_dashboard/controllers/tabs_controller.js