From 34583a640c984add8a898f4b54daabb2f630d1ee Mon Sep 17 00:00:00 2001 From: Sash Zats Date: Sun, 25 Jan 2026 22:06:49 -0500 Subject: [PATCH] fix: make /search mode-aware MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Notes:\n- Medium: /search now depends on getSiteMode() during beforeLoad. On server-side routing, if VITE_SITE_MODE isn’t set and VITE_SOULHUB_SITE_URL is set (as in .env.local), getSiteMode() will resolve to souls and redirect /search to / even on the ClawdHub deployment. This is a regression risk vs the old always-/skills redirect. Confirm deployment envs guarantee correct mode. src/routes/search.tsx:9-31 --- src/components/Header.tsx | 4 ++-- src/routes/search.tsx | 41 +++++++++++++++++++++++++++++++-------- 2 files changed, 35 insertions(+), 10 deletions(-) diff --git a/src/components/Header.tsx b/src/components/Header.tsx index df72142..ff3ce0f 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -84,7 +84,7 @@ export default function Header() { Upload {isSoulMode ? null : Import} - + Search {me ? Stars : null} @@ -138,7 +138,7 @@ export default function Header() { )} - + Search diff --git a/src/routes/search.tsx b/src/routes/search.tsx index ba20899..9d882ca 100644 --- a/src/routes/search.tsx +++ b/src/routes/search.tsx @@ -1,4 +1,5 @@ import { createFileRoute, redirect } from '@tanstack/react-router' +import { getSiteMode } from '../lib/site' export const Route = createFileRoute('/search')({ validateSearch: (search) => ({ @@ -6,13 +7,37 @@ export const Route = createFileRoute('/search')({ highlighted: search.highlighted === '1' || search.highlighted === 'true' ? true : undefined, }), beforeLoad: ({ search }) => { - throw redirect({ - to: '/skills', - search: { - q: search.q || undefined, - highlighted: search.highlighted || undefined, - }, - replace: true, - }) + const mode = getSiteMode() + switch (mode) { + case 'souls': + throw redirect({ + to: '/', + search: { + q: search.q || undefined, + highlighted: undefined, + search: search.q ? undefined : true, + }, + replace: true, + }) + case 'skills': + throw redirect({ + to: '/skills', + search: { + q: search.q || undefined, + highlighted: search.highlighted || undefined, + }, + replace: true, + }) + default: + throw redirect({ + to: '/', + search: { + q: search.q || undefined, + highlighted: undefined, + search: search.q ? undefined : true, + }, + replace: true, + }) + } }, })