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