// page-interior.jsx — Generic branded interior page shell // Used by About, Contact, Visit, and any future standalone pages. // Fetches eyebrow / title / intro / CTAs from the WP options endpoint // for the given pageSlug; falls back to props until WP returns data. const PI = { paper: "#FBF7EE", stone: "#E8E2D3", navy: "#01234B", ink: "#1F1B2E", mute: "#6B6577", council: "#45217A", councilDeep: "#2B1450", pine: "#2F7A2E", coral: "#FF7A5C", yellow: "#F3CF03", crimson: "#C81344", sky: "#4195D3", }; // ─── Nav ──────────────────────────────────────────────────────────── function InteriorNav({ activeStream }) { const items = [ { label: "What's on", stream: "events", path: "#/events" }, { label: "Artists", stream: "artists", path: "#/artists" }, { label: "Programs", stream: "council", path: "#/programs" }, { label: "News", stream: "news", path: "#/news" }, { label: "Visit", stream: "council", path: "#/about" }, ]; return (
See what's on
); } // ─── Hero band ────────────────────────────────────────────────────── function InteriorHero({ eyebrow, title, intro, ctas, stream }) { const streamColor = { council: PI.council, events: PI.pine, artists: PI.navy, news: PI.ink, }[stream] || PI.council; return (
{/* Quilt triangle decoration — top right */}
{eyebrow && ( {eyebrow} )}

{title}

{intro && (

{intro}

)} {ctas && ctas.length > 0 && (
{ctas.map((cta, i) => ( {cta.label} {cta.style !== "ghost" && } ))}
)}
); } // ─── Footer ───────────────────────────────────────────────────────── function InteriorFooter() { return ( ); } // ─── Info strip ───────────────────────────────────────────────────── // A reusable stat/fact row used on About and Visit pages. function InteriorInfoStrip({ items }) { return (
{items.map((it, i) => (
{it.label}
{it.value}
{it.sub && (
{it.sub}
)}
))}
); } // ─── PageInterior — the shell ─────────────────────────────────────── // pageSlug : WP options key to fetch (matches roco/v1/page?slug=X) // stream : "council" | "events" | "artists" | "news" // defaults : fallback content used until WP data loads // children : page-specific sections below the hero function PageInterior({ pageSlug, stream = "council", defaultEyebrow, defaultTitle, defaultIntro, defaultCtas, children, }) { const [wp, setWp] = React.useState(null); React.useEffect(() => { if (!ROCO_WP.baseUrl || !pageSlug) return; fetch(`${ROCO_WP.baseUrl}/wp-json/roco/v1/page?slug=${pageSlug}`) .then(r => r.json()) .then(data => { if (data && data.title) setWp(data); }) .catch(() => {}); }, [pageSlug]); const eyebrow = (wp && wp.eyebrow) || defaultEyebrow; const title = (wp && wp.title) || defaultTitle; const intro = (wp && wp.intro) || defaultIntro; return (
{children}
); } // ─── About page ───────────────────────────────────────────────────── function PageAbout() { return ( {/* Story + Board */}
{/* Story */}
Our story

Where we've been.
What's next.

We've spent the last eighteen months knocking on doors, reopening the books, and signing a lease on the old hardware store. Eighty-two volunteers. Twelve barns. One wall that still needs a quilt.

The Annex opened in spring 2025 — a rotating gallery in the old hardware store on Main Street in Stockton. We're open Thursday through Sunday, admission always free.

Funded by the NEA, the Kansas Creative Arts Industries Commission, and 341 individual neighbors.

{/* Board */}
The board · Stockton, KS
{[ ["Chair", "Mariella Ortega"], ["Vice-chair", "Sam Whitfield"], ["Treasurer", "Linda Cho"], ["Secretary", "Jordan Estrada"], ["Member at large", "Pat Lindsey"], ["Member at large", "Devin Wuori"], ].map(([role, name]) => (
{role}
{name}
))}
{/* Visit info */}
Visit the Annex
119 N Main Street · Stockton, KS 67669
Thursday – Sunday · 11 am – 4 pm
Admission always free
hello@rocoarts.org · (785) 555-0184
); } // ─── Contact page ──────────────────────────────────────────────────── function PageContact() { return (
{/* Contact info */}
Get in touch

The Annex, Main Street,
Stockton KS.

{[ { label: "General", value: "hello@rocoarts.org", href: "mailto:hello@rocoarts.org" }, { label: "Phone", value: "(785) 555-0184", href: "tel:+17855550184" }, { label: "Gallery hours", value: "Thu – Sun · 11 am – 4 pm", href: null }, { label: "Address", value: "119 N Main · Stockton, KS 67669", href: null }, ].map(({ label, value, href }) => (
{label} {href ? {value} : {value} }
))}
What we can help with
    {[ "General questions about RoCo", "Volunteering & joining the council", "Artist profile submissions", "Commission inquiries", "Annex rental", "Press & media", "Quilt Wall proposals", ].map(item => (
  • {item}
  • ))}
{/* Form placeholder — replace with GF shortcode embed or GF iframe */}
Send a message
{/* Gravity Forms embed goes here. In functions.php, register a REST endpoint that returns rendered GF form HTML, or use the GF JS embed. */}

Form loading… if this persists, email us directly at{" "} hello@rocoarts.org .

); } window.PageAbout = PageAbout; window.PageContact = PageContact; window.PageInterior = PageInterior; window.InteriorNav = InteriorNav; window.InteriorFooter = InteriorFooter; window.InteriorInfoStrip = InteriorInfoStrip;