import axios from "axios"; import { setAnnouncement, setAppLogo, setAppName, setBlobEndpoint, setBuyLink, setDocsUrl, } from "@/conf/env.ts"; import { infoEvent, InfoForm } from "@/events/info.ts"; export type SiteInfo = { title: string; logo: string; docs: string; file: string; announcement: string; buy_link: string; mail: boolean; contact: string; footer: string; auth_footer: boolean; article: string[]; generation: string[]; relay_plan: boolean; }; export async function getSiteInfo(): Promise { try { const response = await axios.get("/info"); return response.data as SiteInfo; } catch (e) { console.warn(e); return { title: "", logo: "", docs: "", file: "", announcement: "", buy_link: "", contact: "", footer: "", auth_footer: false, mail: false, article: [], generation: [], relay_plan: false, }; } } export function syncSiteInfo() { setTimeout(async () => { const info = await getSiteInfo(); setAppName(info.title); setAppLogo(info.logo); setDocsUrl(info.docs); setBlobEndpoint(info.file); setAnnouncement(info.announcement); setBuyLink(info.buy_link); infoEvent.emit(info as InfoForm); }, 25); }