// Woodbury Resident — Messages (chat with office). Registers window.RMessages. (function () { const NS = window.WoodburyPropertiesDesignSystem_7290ca; const { Card, Button, Avatar, Input, IconTile } = NS; function RMessages() { const R = window.WBR; const [msgs, setMsgs] = React.useState(R.messages); const [draft, setDraft] = React.useState(""); const scrollRef = React.useRef(null); React.useEffect(() => { if (scrollRef.current) scrollRef.current.scrollTop = scrollRef.current.scrollHeight; }, [msgs.length]); const send = () => { const text = draft.trim(); if (!text) return; const t = new Date().toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" }); setMsgs((m) => [...m, { me: true, text, time: t }]); setDraft(""); setTimeout(() => setMsgs((m) => [...m, { me: false, text: "Thanks Kofi — the office has received your message and will respond shortly.", time: t }]), 900); }; return (
Lashibi Townhouses Office
● Typically replies within an hour
{msgs.map((m, i) => (
{m.text}
{m.time}
))}
setDraft(e.target.value)} onKeyDown={(e) => { if (e.key === "Enter") send(); }} containerStyle={{ flex: 1 }} />
); } window.RMessages = RMessages; })();