From 4ff1e23d25a715fb70847fe6f885075a6b23f5e1 Mon Sep 17 00:00:00 2001 From: Ardeman Date: Mon, 24 Mar 2025 19:42:27 +0800 Subject: [PATCH] feat: implement search functionality for news articles with query parameter --- app/apis/common/get-news.ts | 4 +- app/layouts/news/header-search.tsx | 7 +++- app/pages/news-search/index.tsx | 22 +++++++++++ app/routes/_news.search.tsx | 59 ++++++++++++++++++++++++++++++ 4 files changed, 90 insertions(+), 2 deletions(-) create mode 100644 app/pages/news-search/index.tsx create mode 100644 app/routes/_news.search.tsx diff --git a/app/apis/common/get-news.ts b/app/apis/common/get-news.ts index a06611e..b2340d1 100644 --- a/app/apis/common/get-news.ts +++ b/app/apis/common/get-news.ts @@ -41,10 +41,11 @@ type TParameters = { active?: boolean limit?: number page?: number + query?: string } & THttpServer export const getNews = async (parameters?: TParameters) => { - const { categories, tags, active, limit, page, ...restParameters } = + const { categories, tags, active, limit, page, query, ...restParameters } = parameters || {} try { const { data } = await HttpServer(restParameters).get(`/api/news`, { @@ -54,6 +55,7 @@ export const getNews = async (parameters?: TParameters) => { ...(active && { active }), ...(limit && { limit }), ...(page && { page }), + ...(query && { q: query }), }, }) return dataResponseSchema.parse(data) diff --git a/app/layouts/news/header-search.tsx b/app/layouts/news/header-search.tsx index d1e50fc..1b02ac6 100644 --- a/app/layouts/news/header-search.tsx +++ b/app/layouts/news/header-search.tsx @@ -3,11 +3,16 @@ import { Button } from '~/components/ui/button' export const HeaderSearch = () => { return ( -
+