From f63d03b87adefb13f8f66287bc82069953db094b Mon Sep 17 00:00:00 2001 From: a Date: Sun, 26 Jul 2020 21:14:45 +0200 Subject: [PATCH] Add setter to the toggle --- src/popup/popup.ts | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/popup/popup.ts b/src/popup/popup.ts index b297bf0..2405045 100644 --- a/src/popup/popup.ts +++ b/src/popup/popup.ts @@ -1,20 +1,28 @@ import { browser } from "webextension-polyfill-ts"; import "./popup.scss"; class ExtensionToggle extends HTMLButtonElement { - on: boolean = false; + isON: boolean = false; innerHTML: string = "OFF"; - constructor() { - super(); - this.addEventListener("click", this.toggle); - } - toggle() { - this.on = !this.on; + + public set on(v: boolean) { + if (this.isON == v) { + return; + } + this.isON = v; this.innerHTML = this.on ? "ON" : "OFF"; const toggleEvent = new CustomEvent("extensionToggled", { detail: this.on, }); this.dispatchEvent(toggleEvent); } + public get on(): boolean { + return this.isON; + } + + constructor() { + super(); + this.addEventListener("click", () => (this.on = !this.on)); + } } customElements.define("extension-toggle", ExtensionToggle, { extends: "button",