15df41d59f
When searching from the sidebar while already on /search, the SearchPage component stayed mounted and its internal state (allEvents, isLoading) from the previous search would briefly flash before the new query's effect could clear it. Fix: wrap SearchPage with a keyed component that uses ?q as the React key. When the query changes, React unmounts the old instance entirely and mounts a fresh one — all state initializes cleanly from the new URL with no transitional renders showing stale data. Closes #72