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 { DEFAULT_STUDENT_MEMBER_SEARCH_FIELD, STUDENT_MEMBERS_PATH, STUDENT_MEMBER_SEARCH_FIELD_OPTIONS, buildStudentMemberHref, type StudentMemberQuery, } from '@/lib/domain/student-member-query'; interface StudentSearchBarProps { query: StudentMemberQuery; } /** * 검색 영역 — 순수 `
` GET 제출로 URL을 갱신한다(자바스크립트 없이도 * 동작). 현재 `sort`·`pageSize`는 hidden input으로 함께 제출해 검색 후에도 유지되게 하고, * 검색 자체는 항상 1페이지로 돌아간다(hidden page 필드를 두지 않아 parseStudentMemberQuery의 * 기본값 1로 자연스럽게 떨어진다). "초기화"는 폼 제출이 아니라 기본값으로 되돌린 링크라 * 현재 입력값과 무관하게 동작한다. 상호작용이 전부 네이티브 폼 제출/링크 내비게이션이라 * 클라이언트 자바스크립트가 필요 없다 — Server Component로 유지한다. */ export function StudentSearchBar({ query }: StudentSearchBarProps) { const resetHref = buildStudentMemberHref(query, { searchField: DEFAULT_STUDENT_MEMBER_SEARCH_FIELD, keyword: '', page: 1, }); return ( 초기화
); }