Both top-of-app bars shared the same shell (icon + content + border-b bar); factor it into a tone-driven Banner with optional action/dismiss. The version/demo logic stays in the wrappers. Leaves a clean extension point for a future news-ticker variant.
15 lines
611 B
TypeScript
15 lines
611 B
TypeScript
import { useTranslation } from "react-i18next";
|
|
import { AlertTriangle } from "lucide-react";
|
|
import Banner from "./Banner";
|
|
|
|
// Permanent, non-dismissible bar shown to the shared demo account so it's always clear the
|
|
// state is communal. (Replaces the old login-time toast, which re-popped on every reload.)
|
|
export default function DemoBanner() {
|
|
const { t } = useTranslation();
|
|
return (
|
|
<Banner tone="warning" icon={AlertTriangle}>
|
|
<span className="font-semibold">{t("common.demoTitle")}</span>
|
|
<span className="text-muted"> — {t("common.demoSharedNotice")}</span>
|
|
</Banner>
|
|
);
|
|
}
|