import Link from 'next/link'; import { Button } from '@/components/ui/button'; import { Field } from '@/components/ui/field'; import { Input } from '@/components/ui/input'; import { Select } from '@/components/ui/select'; import { ADMIN_MEMBERS_PATH, ADMIN_MEMBER_SEARCH_FIELD_OPTIONS, DEFAULT_ADMIN_MEMBER_SEARCH_FIELD, buildAdminMemberHref, type AdminMemberQuery, } from '@/lib/domain/admin-member-query'; interface AdminMemberSearchBarProps { query: AdminMemberQuery; } /** * 검색 영역(시안 ADM_ADM_101 ①) — 순수 `
` GET 제출로 URL을 갱신한다 * (자바스크립트 없이도 동작). 현재 `sort`·`pageSize`는 hidden input으로 함께 제출해 검색 후에도 * 유지되게 하고, 검색 자체는 항상 1페이지로 돌아간다(hidden page 필드를 두지 않아 * `parseAdminMemberQuery`의 기본값 1로 자연스럽게 떨어진다). "초기화"는 폼 제출이 아니라 * 기본값으로 되돌린 링크라 현재 입력값과 무관하게 동작한다. 상호작용이 전부 네이티브 폼 * 제출/링크 내비게이션이라 클라이언트 자바스크립트가 필요 없다 — Server Component로 유지한다. * * 검색 대상이 시안의 셋이 아니라 둘인 이유는 `admin-member-query.ts` 주석에 적어 두었다. */ export function AdminMemberSearchBar({ query }: AdminMemberSearchBarProps) { const resetHref = buildAdminMemberHref(query, { searchField: DEFAULT_ADMIN_MEMBER_SEARCH_FIELD, keyword: '', page: 1, }); return ( 초기화
); }