import { useEffect, useState } from 'react' import { onDemoLocked } from '../lib/demoNotice.js' // The one toast for a write the public demo refused (DEMO_MODE.md §3.1). Fed // by api/client.js through lib/demoNotice.js, so every screen — and every // installed module's screens — gets it without handling the code itself. On a // real shard nothing is ever refused that way, so it never appears. const SHOW_MS = 5000 export default function DemoToast() { const [message, setMessage] = useState(null) useEffect(() => onDemoLocked((text) => setMessage(text)), []) useEffect(() => { if (!message) return undefined const t = setTimeout(() => setMessage(null), SHOW_MS) return () => clearTimeout(t) }, [message]) return (
{message && (
{message}
)}
) }