~cadence/bibliogram

f14837be448ff2dc2acfd14493437299453fac3d — Cadence Ember 2 months ago c5bd24f
Set and preserve focus when showing post overlay
1 files changed, 9 insertions(+), 0 deletions(-)

M src/site/html/static/js/post_overlay.js
M src/site/html/static/js/post_overlay.js => src/site/html/static/js/post_overlay.js +9 -0
@@ 5,6 5,7 @@ import {quota} from "./quota.js"
/** @type {PostOverlay[]} */
const postOverlays = []
const titleHistory = []
const focusHistory = []
titleHistory.push(document.title)
const shortcodeDataMap = new Map()



@@ 28,6 29,10 @@ window.addEventListener("popstate", event => {
			titleHistory.pop()
			document.title = titleHistory.slice(-1)[0]
		}
		if (focusHistory.length) {
			const item = focusHistory.pop()
			item.focus()
		}
		if (postOverlays.length) {
			popOverlay()
		} else {


@@ 38,6 43,7 @@ window.addEventListener("popstate", event => {

function pushOverlay(overlay) {
	postOverlays.push(overlay)
	focusHistory.push(document.activeElement)
	document.body.style.overflowY = "hidden"
}



@@ 82,6 88,9 @@ class PostOverlay extends ElemJS {
		this.html(html)
		this.loaded = true
		this.removeClass("loading")
		setTimeout(() => {
			this.element.focus()
		})
	}

	showError() {