2026-02-26 08:27:45 +00:00
|
|
|
|
import { useEffect, useState } from "react";
|
|
|
|
|
|
import AppRoutes from "./routes";
|
|
|
|
|
|
import { getOpenPlatformConfig } from "./api";
|
|
|
|
|
|
import type { SysPlatformConfig } from "./types";
|
2026-02-10 09:48:44 +00:00
|
|
|
|
|
|
|
|
|
|
export default function App() {
|
2026-02-26 08:27:45 +00:00
|
|
|
|
const [config, setConfig] = useState<SysPlatformConfig | null>(null);
|
|
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
|
const fetchConfig = async () => {
|
|
|
|
|
|
try {
|
|
|
|
|
|
const data = await getOpenPlatformConfig();
|
|
|
|
|
|
setConfig(data);
|
|
|
|
|
|
if (data.projectName) {
|
|
|
|
|
|
document.title = data.projectName;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (data.iconUrl) {
|
|
|
|
|
|
let link: HTMLLinkElement | null = document.querySelector("link[rel~='icon']");
|
|
|
|
|
|
if (!link) {
|
|
|
|
|
|
link = document.createElement('link');
|
|
|
|
|
|
link.rel = 'icon';
|
|
|
|
|
|
document.getElementsByTagName('head')[0].appendChild(link);
|
|
|
|
|
|
}
|
|
|
|
|
|
link.href = data.iconUrl;
|
|
|
|
|
|
}
|
|
|
|
|
|
// Save to sessionStorage for other components
|
|
|
|
|
|
sessionStorage.setItem("platformConfig", JSON.stringify(data));
|
|
|
|
|
|
} catch (e) {
|
|
|
|
|
|
console.error("Failed to load platform config", e);
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
fetchConfig();
|
|
|
|
|
|
}, []);
|
|
|
|
|
|
|
2026-02-10 09:48:44 +00:00
|
|
|
|
return <AppRoutes />;
|
|
|
|
|
|
}
|