mirror of
				https://git.sr.ht/~cadence/bibliogram
				synced 2025-10-31 19:45:37 +00:00 
			
		
		
		
	Set and preserve focus when showing post overlay
This commit is contained in:
		
							parent
							
								
									c5bd24f9d4
								
							
						
					
					
						commit
						f14837be44
					
				| @ -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() { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user