fix(web-ui): remove client-side onKeyDown from server component to fix 500 on /docs

The search input's onKeyDown handler used window.location.href which is
unavailable during SSR, causing the /docs page to crash. Replaced with
a Link wrapper so it's fully server-rendered.
This commit is contained in:
asepharyana committed 2026-08-20 21:34:42 +07:00
1 parent a82af10851
commit 44b887a9a0
1 file changed
+21 -27
+21 -27
View File
@@ -53,34 +53,28 @@ export default async function DocsIndexPage() {
</p> </p>
{/* Search bar */} {/* Search bar */}
<div className="mt-8 relative max-w-2xl"> <div className="mt-8">
<svg <Link
className="absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-[#62666d]" href="/search"
fill="none" className="relative flex items-center max-w-2xl group"
stroke="currentColor"
viewBox="0 0 24 24"
> >
<path <svg
strokeLinecap="round" className="absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-[#62666d] group-focus-within:text-[#5e6ad2] transition-colors"
strokeLinejoin="round" fill="none"
strokeWidth={2} stroke="currentColor"
d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" viewBox="0 0 24 24"
/> >
</svg> <path
<input strokeLinecap="round"
type="text" strokeLinejoin="round"
placeholder="Search documents, tags, authors..." strokeWidth={2}
readOnly d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"
className="w-full pl-10 pr-4 py-3 bg-[#191a1b] border border-[#1f2022] rounded-lg text-[#e2e4e7] placeholder-[#62666d] focus:outline-none focus:border-[#5e6ad2] focus:ring-1 focus:ring-[#5e6ad2]/30 transition-colors" />
onKeyDown={(e) => { </svg>
if (e.key === "Enter" && e.currentTarget.value) { <span className="w-full pl-10 pr-4 py-3 bg-[#191a1b] border border-[#1f2022] rounded-lg text-[#62666d] group-hover:border-[#5e6ad2]/40 transition-colors">
window.location.href = `/search?q=${encodeURIComponent(e.currentTarget.value)}`; Search documents, tags, authors...
} </span>
}} </Link>
/>
<kbd className="absolute right-3 top-1/2 -translate-y-1/2 text-xs text-[#62666d] bg-[#0f1011] border border-[#1f2022] rounded px-1.5 py-0.5">
↵
</kbd>
</div> </div>
{/* Recent strip */} {/* Recent strip */}