import { SVGAttributes } from "preact";
export async function loadSvg(name: string) {
const url = import.meta.url.startsWith('http') ? import.meta.url.replace(/\/_fresh\/(?:server\/)?/, '/assets/') : import.meta.url;
const assetUrl = new URL(`./svg/${name}.svg`, url);
let svg_code!: string;
if (assetUrl.protocol === 'file:') {
svg_code = Deno.readTextFileSync(assetUrl);
} else {
const res = await fetch(assetUrl);
if (!res.ok) throw new Error(`Failed to load SVG: ${assetUrl}`);
svg_code = await res.text();
}
return (props: SVGAttributes) => (
// deno-lint-ignore react-no-danger
<div class="contents" dangerouslySetInnerHTML={{
__html: svg_code
.replace(/\<svg /, `<svg ${Object.entries(props).map(([key, value]) => `${key}="${value}"`).join(', ')} `)
}} />
)
}
// export const Logo = decodeURIComponent(LogoUnparsed.replace(/^.+\+xml,/, ''));
export const Logo = await loadSvg('logo');