Add validation for search page URL parameters

Summary

  • Add Zod-based validation for search page URL parameters
  • Validate author parameter (a) against Hive username format rules
  • Enforce max length limits (500 chars) on search queries
  • Validate sort parameter against allowed enum values (relevance, created)

Motivation

Improve UX by validating search parameters before making API calls. This avoids wasted API traffic on requests that would fail due to invalid inputs (e.g., malformed usernames).

Invalid parameters are silently omitted rather than causing errors, providing graceful degradation for malformed URLs.

Changes

  • packages/ui/lib/search-params.ts - New Zod schema and parser for search params
  • apps/blog/app/search/page.tsx - Use validated params instead of raw type assertions

Test plan

  • Search with valid parameters works as before
  • Search with invalid author format (e.g., ?a=UPPERCASE) omits the author filter
  • Search with extremely long query (>500 chars) omits the query
  • Search with invalid sort value omits sort param (defaults to relevance)

Merge request reports

Loading