File size: 1,035 Bytes
46cc63a 035d8b3 46cc63a 035d8b3 46cc63a 035d8b3 46cc63a 035d8b3 46cc63a 035d8b3 46cc63a 035d8b3 46cc63a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | import { useEffect, useState } from "react";
import { getModelInfo } from "../api/client";
import { useI18n } from "../i18n/I18nContext";
export function ModelBanner() {
const { t } = useI18n();
const [banner, setBanner] = useState<string | null>(null);
useEffect(() => {
const fallback = t.modelBanner.current("Meta-Feature Stacking", "0.805", "2.54");
getModelInfo()
.then((info) => {
const apiBanner = (info as { display_banner?: string }).display_banner;
if (apiBanner) {
setBanner(apiBanner);
return;
}
if (info.name?.includes("Meta-Feature Stacking")) {
setBanner(fallback);
return;
}
setBanner(null);
})
.catch(() => {
setBanner(fallback);
});
}, [t]);
if (!banner) return null;
return (
<div className="model-banner" role="status" aria-live="polite">
<span className="model-banner-icon" aria-hidden>
🏆
</span>
<span>{banner}</span>
</div>
);
}
|