From e9525ab15cd556ce660ed55b7de11df67d792fa1 Mon Sep 17 00:00:00 2001 From: bat Date: Sat, 25 Mar 2023 07:05:49 +0000 Subject: [PATCH] add edit icon --- components/header.js | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/components/header.js b/components/header.js index 06f9be1..306a064 100644 --- a/components/header.js +++ b/components/header.js @@ -5,11 +5,19 @@ export class Header extends HTMLElement { `, dot: ` +`, + edit: ` + + +`, + check: ` + `, } constructor() { super() + this.editing = false this.attachShadow({mode: 'open'}) this.addButton(this.icons.menu, 'nav', () => { this.menu.pages = this.getPages() @@ -17,6 +25,11 @@ export class Header extends HTMLElement { this.overlay.classList.add('open') }) this.addDivider() + this.editBtn = this.addButton(this.editIcon, 'edit', () => { + this.dispatchEvent(new CustomEvent( + 'click-edit', {bubbles: true} + )) + }) this.addButton(this.icons.dot, 'page', () => { this.pageMenuPanel.classList.add('open') this.overlay.classList.add('open') @@ -33,6 +46,7 @@ export class Header extends HTMLElement { if (onClick) { b.addEventListener('click', onClick) } + return b } addDivider() { @@ -53,7 +67,7 @@ export class Header extends HTMLElement { this.overlay.addEventListener('click', () => { this.close() }) - this.menu.addEventListener('close', () => { + this.menu.addEventListener('close-menu', () => { this.close() }) } @@ -76,7 +90,7 @@ export class Header extends HTMLElement { el.click() this.shadowRoot.removeChild(el) }) - this.pageMenu.addEventListener('close', () => { + this.pageMenu.addEventListener('close-menu', () => { this.close() }) this.pageMenuPanel = document.createElement('div') @@ -166,4 +180,19 @@ export class Header extends HTMLElement { getPages() { return Object.keys(localStorage).slice().sort() } + + set editing(value) { + this._editing = value + if (this.editBtn) { + this.editBtn.innerHTML = this.editIcon + } + } + + get editing() { + return this._editing + } + + get editIcon() { + return this.editing ? this.icons.check : this.icons.edit + } } \ No newline at end of file