keyy1315 f693062d96 feat: 내가 작성한 매물/문의 경로 별 적용 구현
- 메인 화면에서 진입 시 내가 작성한 매물/문의 해제
- 사이드바에서 진입 시 내가 작성환 매물/문의 체크
2025-07-02 10:31:13 +09:00

72 lines
2.3 KiB
TypeScript

'use client'
import { useInquiryFilterStore } from '@/store/inquiryFilterStore'
import { useRouter, useSearchParams } from 'next/navigation'
import { useEffect, useState } from 'react'
import { useAlertMsg, WARNING_MESSAGE } from '@/hooks/useAlertMsg'
export default function ListForm() {
const router = useRouter()
const { inquiryListRequest, setInquiryListRequest, setOffset } = useInquiryFilterStore()
const { showErrorAlert } = useAlertMsg()
const [searchKeyword, setSearchKeyword] = useState(inquiryListRequest.schTitle ?? '')
const searchParams = useSearchParams()
useEffect(() => {
if (searchParams.get('isMyInquiry') === 'false') {
setSearchKeyword('')
setInquiryListRequest({ ...inquiryListRequest, schTitle: null })
}
}, [searchParams])
const handleSearch = () => {
if (searchKeyword.length >= 2) {
setInquiryListRequest({ ...inquiryListRequest, schTitle: searchKeyword })
} else {
showErrorAlert(WARNING_MESSAGE.KEYWORD_MINIMUM_LENGTH)
}
}
const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {
if (e.key === 'Enter') {
handleSearch()
}
}
return (
<>
<div className="sale-frame">
<div className="sale-form-bx">
<button className="btn-frame n-blue icon" onClick={() => router.push('/inquiry/regist')}>
<i className="btn-arr"></i>
</button>
</div>
<div className="sale-form-bx">
<div className="search-input">
<input
type="text"
className="search-frame"
placeholder="タイトルを入力してください. (2文字以上)"
value={searchKeyword}
onChange={(e) => setSearchKeyword(e.target.value)}
onKeyDown={handleKeyDown}
/>
{searchKeyword && (
<button
className="del-icon"
onClick={() => {
setSearchKeyword('')
setInquiryListRequest({
...inquiryListRequest,
schTitle: '',
})
setOffset(1)
}}
></button>
)}
<button className="search-icon" onClick={handleSearch}></button>
</div>
</div>
</div>
</>
)
}