// Based on GitHub's favicon switcher. Temporary(?) fix for Chromium based browsers that won't dynamically update embedded CSS media query inside of SVG
function updateFavicon(colorScheme) {
	const favicon = document.head.querySelector('.js-site-favicon[type="image/svg+xml"]')
	const faviconFallback = document.head.querySelector('.js-site-favicon[type="image/png"]')
	if (favicon && faviconFallback) {
		if (colorScheme || colorScheme == 'dark') {
			favicon.href = '_img/favicon-dark.svg';
			faviconFallback.href = '_img/favicon-dark.png';
		} else {
			favicon.href = '_img/favicon.svg';
			faviconFallback.href = '_img/favicon.png';
		}
	}
}

function prefersDarkColorScheme() {
	return window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches
}

if (prefersDarkColorScheme()) {
	// update favicon to dark on page load
	updateFavicon('dark')
}

window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => {
	updateFavicon(prefersDarkColorScheme())
})
