'use client' import { useEffect, useState } from 'react' import { ChevronLeft, ChevronRight, Quote } from 'lucide-react' const voices = [ { quote: `A box of those wok-tossed noodles and the walk home from school stops being just a walk. The chilli catches you at the back of the throat — nothing else on this street does that.`, attribution: `Learner, walking home past the corner`, detail: `Afternoon rush`, }, { quote: `I used to grab a kota every afternoon. Now it is noodles twice a week. Same sort of money, but I can watch it go into the wok and come out steaming.`, attribution: `Daily commuter`, detail: `Taxi rank run`, }, { quote: `Ben still tosses with the same wrist snap his uncle taught him. You can hear the pan over the amapiano from the street.`, attribution: `Family, on box duty at the counter`, detail: `Weekend shift`, }, { quote: `The cabbage still has crunch. That is the part I tell people about — they expect soft noodles, and then they bite into it.`, attribution: `Regular since the red sign went up`, detail: `Friday takeaway queue`, }, { quote: `We drove through from town because someone at work would not stop talking about the dark soy glaze. I did not expect to find it on our own corner.`, attribution: `Weekend foodie`, detail: `Came through from Newcastle`, }, { quote: `My son does not ask for chips anymore. He asks if we are going past the red sign.`, attribution: `Parent, school pickup`, detail: `Weekday afternoons`, }, ] const streetNotes = [ { label: `Rush hour`, note: `When the school bell goes, the boxes stack three deep on the counter and nobody minds the wait — it smells too good to complain.`, }, { label: `Made in front of you`, note: `The wok is loud on purpose. High heat, quick toss, straight into the box while it is still spitting.`, }, { label: `Takeaway first`, note: `Order on the way past, collect at the corner, eat while it is hot. That is how most of Section 4 does it.`, }, ] export default function NeighbourhoodLoveSection() { const [index, setIndex] = useState(0) const [paused, setPaused] = useState(false) useEffect(() => { if (paused) return const motionQuery = window.matchMedia('(prefers-reduced-motion: reduce)') if (motionQuery.matches) return const timer = window.setInterval(() => { setIndex((current) => (current + 1) % voices.length) }, 8000) return () => window.clearInterval(timer) }, [paused]) const goTo = (next: number) => { setIndex((next + voices.length) % voices.length) } return (

The queue talks before the wok does.

Nobody wrote these down for us. They came off the pavement outside the red sign — learners on the walk home, commuters waiting on a taxi, neighbours who order the same box every Friday.

setPaused(true)} onMouseLeave={() => setPaused(false)} onFocus={() => setPaused(true)} onBlur={() => setPaused(false)} >

Counter rule

Say hello when you order. Half the street knows the box by name before the order is finished.

Eaten here?

Your words are welcome on our wall. Tell us at the counter what the chilli did to you.

{streetNotes.map((note) => (
{note.label}
{note.note}
))}
) }