keyy1315 905a309a9c fix: survey update, create, submit logic fix
- 조사매물 수정, 작성, 조회 시 각 컴포넌트에 데이터 적용 안되던 문제 해결
- 조사매물 제출 시 데이터 저장 안되는 문제 해결결
2025-05-20 17:56:09 +09:00

103 lines
3.3 KiB
TypeScript

'use client'
import { SEARCH_OPTIONS, SEARCH_OPTIONS_ENUM, SEARCH_OPTIONS_PARTNERS, useSurveyFilterStore } from '@/store/surveyFilterStore'
import { useRouter } from 'next/navigation'
import { useState } from 'react'
export default function SearchForm({ memberRole, userNm }: { memberRole: string; userNm: string }) {
const router = useRouter()
const { setSearchOption, setSort, setIsMySurvey, setKeyword, isMySurvey, keyword, searchOption, sort } = useSurveyFilterStore()
const [searchKeyword, setSearchKeyword] = useState(keyword)
const [option, setOption] = useState(searchOption)
const handleSearch = () => {
if (option !== 'id' && searchKeyword.trim().length < 2) {
alert('2文字以上入力してください')
return
}
setKeyword(searchKeyword)
setSearchOption(option)
}
const searchOptions = memberRole === 'Partner' ? SEARCH_OPTIONS_PARTNERS : SEARCH_OPTIONS
return (
<div className="sale-frame">
<div className="sale-form-bx">
<button className="btn-frame n-blue icon" onClick={() => router.push('/survey-sale/regist')}>
<i className="btn-arr"></i>
</button>
</div>
<div className="sale-form-bx">
<select
className="select-form"
name="search-option"
id="search-option"
value={option}
onChange={(e) => {
if (e.target.value === 'all') {
setKeyword('')
setSearchKeyword('')
setSearchOption('all')
setOption('all')
} else {
setOption(e.target.value as SEARCH_OPTIONS_ENUM)
}
}}
>
{searchOptions.map((option) => (
<option key={option.id} value={option.id}>
{option.label}
</option>
))}
</select>
</div>
<div className="sale-form-bx">
<div className="search-input">
<input
type="text"
className="search-frame"
value={searchKeyword}
placeholder="タイトルを入力してください. (2文字以上)"
onChange={(e) => {
setSearchKeyword(e.target.value)
}}
onKeyDown={(e) => {
if (e.key === 'Enter') {
handleSearch()
}
}}
/>
<button className="search-icon" onClick={handleSearch}></button>
</div>
</div>
<div className="sale-form-bx">
<div className="check-form-box">
<input
type="checkbox"
id="ch01"
checked={isMySurvey === userNm}
onChange={() => {
setIsMySurvey(isMySurvey === userNm ? null : userNm)
}}
/>
<label htmlFor="ch01"></label>
</div>
</div>
<div className="sale-form-bx">
<select
className="select-form"
name="sort-option"
id="sort-option"
value={sort}
onChange={(e) => {
setSort(e.target.value as 'created' | 'updated')
}}
>
<option value="created"></option>
<option value="updated"></option>
</select>
</div>
</div>
)
}