From 348e38a8102b70e7be5b7542bfd694f89e1a810e Mon Sep 17 00:00:00 2001 From: bat Date: Sat, 1 Apr 2023 02:30:46 +0000 Subject: [PATCH] Add button, dialog positioning --- components/dialog.js | 2 +- components/layout.js | 22 ++++++++++++++++------ components/nav-menu.js | 4 ++-- components/page.js | 1 + 4 files changed, 20 insertions(+), 9 deletions(-) diff --git a/components/dialog.js b/components/dialog.js index 7bea2e0..0a62ce5 100644 --- a/components/dialog.js +++ b/components/dialog.js @@ -32,7 +32,7 @@ export class Dialog extends HTMLElement { style.textContent = ` dialog { margin-top: 120px; - min-width: 80%; + min-width: 200px; border: 1px solid rgba(0, 0, 0, 0.3); border-radius: 6px; box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); diff --git a/components/layout.js b/components/layout.js index d200f7c..89d5a3a 100644 --- a/components/layout.js +++ b/components/layout.js @@ -4,7 +4,6 @@ export class Layout extends HTMLElement { this.attachShadow({mode: 'open'}) this.csp = "default-src 'self' 'unsafe-inline' 'unsafe-eval'" this.header = document.createElement('m-header') - this.editing = false } connectedCallback() { @@ -45,14 +44,19 @@ export class Layout extends HTMLElement { } get path() { - return new URL( - window.location.hash.slice(1) || '/', + const hash = ( + window.location.hash.slice(1) || '/' + ) + return hash.startsWith('/') ? new URL( + hash, window.location - ).pathname.replace(/^%23/, '#') + ).pathname : hash } set editing(value) { - this._editing = value + sessionStorage.setItem( + 'editing', value ? 'true' : 'false' + ) this.header.editing = this.editing if (this.page) { this.page.editing = this.editing @@ -60,6 +64,12 @@ export class Layout extends HTMLElement { } get editing() { - return this._editing + try { + return ( + sessionStorage.getItem('editing') === 'true' + ) + } catch (e) { + return false + } } } \ No newline at end of file diff --git a/components/nav-menu.js b/components/nav-menu.js index f2b5212..3562d41 100644 --- a/components/nav-menu.js +++ b/components/nav-menu.js @@ -29,7 +29,7 @@ export class NavMenu extends HTMLElement { } a { display: block; - margin: 5px 10px; + margin: 8px 10px; } ` this.shadowRoot.append(style) @@ -79,7 +79,7 @@ export class NavMenu extends HTMLElement { renderPageList() { const els = this.pages.map(page => { const el = document.createElement('a') - el.href = `#${page}` + el.href = `#${page.replace(/^#/, '%23')}` el.innerText = page el.classList.add('page') return el diff --git a/components/page.js b/components/page.js index e4069ef..d777fc9 100644 --- a/components/page.js +++ b/components/page.js @@ -154,6 +154,7 @@ export class Page extends HTMLElement { if (this.editing) { classes.add('editing') classes.remove('viewing') + this.textArea.focus() } else { classes.add('viewing') classes.remove('editing')