enhance: read theme color nodeinfo (#8977)
* provide theme color in nodeinfo metadata * read theme color from nodeinfo Prefer to read the theme color from the nodeinfo since it is more performant than performing selector search on a DOM.
This commit is contained in:
		
							parent
							
								
									947f079735
								
							
						
					
					
						commit
						714c80bf3f
					
				
					 2 changed files with 4 additions and 3 deletions
				
			
		|  | @ -78,6 +78,7 @@ const nodeinfo2 = async () => { | |||
| 			enableEmail: meta.enableEmail, | ||||
| 			enableServiceWorker: meta.enableServiceWorker, | ||||
| 			proxyAccountName: proxyAccount ? proxyAccount.username : null, | ||||
| 			themeColor: meta.themeColor || '#86b300', | ||||
| 		}, | ||||
| 	}; | ||||
| }; | ||||
|  |  | |||
|  | @ -34,7 +34,7 @@ export async function fetchInstanceMetadata(instance: Instance, force = false): | |||
| 		const [favicon, icon, themeColor, name, description] = await Promise.all([ | ||||
| 			fetchFaviconUrl(instance, dom).catch(() => null), | ||||
| 			fetchIconUrl(instance, dom, manifest).catch(() => null), | ||||
| 			getThemeColor(dom, manifest).catch(() => null), | ||||
| 			getThemeColor(info, dom, manifest).catch(() => null), | ||||
| 			getSiteName(info, dom, manifest).catch(() => null), | ||||
| 			getDescription(info, dom, manifest).catch(() => null), | ||||
| 		]); | ||||
|  | @ -208,8 +208,8 @@ async function fetchIconUrl(instance: Instance, doc: DOMWindow['document'] | nul | |||
| 	return null; | ||||
| } | ||||
| 
 | ||||
| async function getThemeColor(doc: DOMWindow['document'] | null, manifest: Record<string, any> | null): Promise<string | null> { | ||||
| 	const themeColor = doc?.querySelector('meta[name="theme-color"]')?.getAttribute('content') || manifest?.theme_color; | ||||
| async function getThemeColor(info: NodeInfo | null, doc: DOMWindow['document'] | null, manifest: Record<string, any> | null): Promise<string | null> { | ||||
| 	const themeColor = info?.metadata?.themeColor || doc?.querySelector('meta[name="theme-color"]')?.getAttribute('content') || manifest?.theme_color; | ||||
| 
 | ||||
| 	if (themeColor) { | ||||
| 		const color = new tinycolor(themeColor); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue