/* global React, ChamberChrome */ const { useState, useEffect } = React; function Feedback({ onBack }) { const moods = window.MOOD_OPTIONS || []; const [mood, setMood] = useState(null); const [text, setText] = useState(""); const [name, setName] = useState(""); const [submitted, setSubmitted] = useState(false); const [recent, setRecent] = useState([]); // Load + persist useEffect(() => { try { const saved = JSON.parse(localStorage.getItem("darshan.feedback") || "[]"); setRecent(saved.slice(-12).reverse()); } catch (e) {} }, []); const submit = () => { if (!mood || !text.trim()) return; const entry = { mood: mood.key, moodDev: mood.dev, moodEn: mood.en, text: text.trim(), name: name.trim() || "a traveller", at: new Date().toISOString(), }; try { const all = JSON.parse(localStorage.getItem("darshan.feedback") || "[]"); all.push(entry); localStorage.setItem("darshan.feedback", JSON.stringify(all)); setRecent([entry, ...recent].slice(0, 12)); } catch (e) {} setSubmitted(true); }; if (submitted) { return (
the archive has recorded a small, true {mood?.en?.toLowerCase()}.
walk well, {name.trim() || "traveller"} —
— rahul
if a photograph moved you — even slightly — leave a word, a fragment, a single line. the archive listens.