import { useEffect, useState } from "react";
import { Icon } from "@iconify/react";
import { useSearchParams } from "react-router";
interface ApiResponse {
message: string;
}
function RedirectBanner() {
const [searchParams] = useSearchParams();
const from = searchParams.get("from");
if (from !== "old-domain") return null;
return (
We have moved URLs, welcome to tomodachishare.com!
);
}
export default function AdminBanner() {
const [message, setMessage] = useState(null);
const [shouldShow, setShouldShow] = useState(false);
useEffect(() => {
fetch(`${import.meta.env.VITE_API_URL}/api/admin/banner`)
.then((res) => {
if (!res.ok) throw new Error("Failed to get admin banner");
return res.json() as Promise;
})
.then((data) => {
if (!data.message) return;
const closedBanner = localStorage.getItem("closedBanner");
setMessage(data.message);
setShouldShow(data.message !== closedBanner);
})
.catch((err) => {
console.error(err);
});
}, []);
const handleClose = () => {
if (!message) return;
// Close banner and remember it
localStorage.setItem("closedBanner", message);
setShouldShow(false);
};
return (
<>
{shouldShow && message && (
)}
>
);
}