From e115fa72aa6029abadb0475898a202777678ea3a Mon Sep 17 00:00:00 2001 From: bat Date: Sun, 2 Apr 2023 07:48:04 +0000 Subject: [PATCH] Use button group for styled buttons --- components/dialog.js | 5 ++++ components/header.js | 65 ++++++++++++++++++-------------------------- 2 files changed, 32 insertions(+), 38 deletions(-) diff --git a/components/dialog.js b/components/dialog.js index 0a62ce5..4098ae5 100644 --- a/components/dialog.js +++ b/components/dialog.js @@ -51,6 +51,11 @@ export class Dialog extends HTMLElement { dialog.closing::backdrop { visibility: visible; } + .header, .footer, .body { + display: flex; + align-items: stretch; + flex-direction: column; + } ` this.shadowRoot.append(style) this.headerEl.setAttribute('part', 'header') diff --git a/components/header.js b/components/header.js index 05ea93c..b998063 100644 --- a/components/header.js +++ b/components/header.js @@ -150,7 +150,6 @@ export class Header extends HTMLElement { } m-dialog::part(footer) { padding-top: 15px; - text-align: right; } ` this.shadowRoot.append(style) @@ -219,23 +218,19 @@ export class Header extends HTMLElement { input.value = this.path input.style.minWidth = '300px' dialog.bodyEl.appendChild(input) - const cancelBtn = document.createElement('button') - cancelBtn.innerText = this.text.cancel - cancelBtn.addEventListener('click', () => { - dialog.close() - }) - const confirmBtn = document.createElement('button') - confirmBtn.innerText = this.text.rename - confirmBtn.style.marginLeft = '3px' let errorEl - confirmBtn.addEventListener('click', () => { + const bGroup = document.createElement( + 'm-forms-button-group' + ) + bGroup.addPrimary(this.text.rename, () => { const newPath = input.value const v = localStorage.getItem(newPath) if (v !== null || newPath === this.path) { if (!errorEl) { errorEl = document.createElement('p') errorEl.style.color = 'red' - errorEl.innerText = this.text.alreadyExists + const errText = this.text.alreadyExists + errorEl.innerText = errText dialog.bodyEl.appendChild(errorEl) } return @@ -248,9 +243,10 @@ export class Header extends HTMLElement { dialog.close() location.hash = newPath }) - dialog.footerEl.replaceChildren( - cancelBtn, confirmBtn - ) + bGroup.addCancel(this.text.cancel, () => { + dialog.close() + }) + dialog.footerEl.appendChild(bGroup) dialog.open() }) this.pageMenu.add(this.text.delete, () => { @@ -261,22 +257,19 @@ export class Header extends HTMLElement { JSON.stringify(this.path) ) dialog.bodyEl.appendChild(p) - const cancelBtn = document.createElement('button') - cancelBtn.innerText = this.text.cancel - cancelBtn.addEventListener('click', () => { - dialog.close() - }) - const confirmBtn = document.createElement('button') - confirmBtn.innerText = this.text.delete - confirmBtn.style.marginLeft = '3px' - confirmBtn.addEventListener('click', () => { + + const bGroup = document.createElement( + 'm-forms-button-group' + ) + bGroup.addPrimary(this.text.delete, () => { localStorage.removeItem(this.path) location.hash = '/' dialog.close() }) - dialog.footerEl.replaceChildren( - cancelBtn, confirmBtn - ) + bGroup.addCancel(this.text.cancel, () => { + dialog.close() + }) + dialog.footerEl.appendChild(bGroup) dialog.open() }) this.pageMenu.addEventListener('close-menu', () => { @@ -325,22 +318,18 @@ export class Header extends HTMLElement { input.value = '/' input.style.minWidth = '300px' dialog.bodyEl.appendChild(input) - const cancelBtn = document.createElement('button') - cancelBtn.innerText = this.text.cancel - cancelBtn.addEventListener('click', () => { - dialog.close() - }) - const confirmBtn = document.createElement('button') - confirmBtn.innerText = this.text.createPage - confirmBtn.style.marginLeft = '3px' - confirmBtn.addEventListener('click', () => { + const bGroup = document.createElement( + 'm-forms-button-group' + ) + bGroup.addPrimary(this.text.createPage, () => { const newPath = this.encodePath(input.value) location.hash = newPath dialog.close() }) - dialog.footerEl.replaceChildren( - cancelBtn, confirmBtn - ) + bGroup.addCancel(this.text.cancel, () => { + dialog.close() + }) + dialog.footerEl.appendChild(bGroup) dialog.open() }