- {data && data.voteResponse.length > 0 ? (
+ {userData && data && data.voteResponse.length > 0 ? (
diff --git a/src/components/SearchFromHome/SearchList/DateFilter/DateFilter.tsx b/src/components/SearchFromHome/SearchList/DateFilter/DateFilter.tsx
index 465db15f..50134c90 100644
--- a/src/components/SearchFromHome/SearchList/DateFilter/DateFilter.tsx
+++ b/src/components/SearchFromHome/SearchList/DateFilter/DateFilter.tsx
@@ -5,34 +5,44 @@ import {useNavigate} from 'react-router-dom';
import styles from './DateFilter.module.scss';
import {ForSearchType} from '@/types/home';
+import {WishFilterType} from '@/types/wish';
interface PropsType {
- forSearch: ForSearchType;
+ forSearch?: ForSearchType | undefined;
+ wishesFilter?: WishFilterType | undefined;
}
-function DateFilter({forSearch}: PropsType) {
+function DateFilter({forSearch = undefined, wishesFilter = undefined}: PropsType) {
const [click, setClick] = useState(false);
const filterData = ['등록순', '이름순', '인기순'];
const navigate = useNavigate();
+ const sort = forSearch ? forSearch.sort : wishesFilter?.sort;
function handleModal() {
setClick((prev) => !prev);
}
function selectSort(sort: string) {
- navigate(
- `/search?keyword=${forSearch.keyword}&category=${forSearch.category}&map=${forSearch.map}&location=${forSearch.location}&sort=${sort}&hot=${forSearch.hot}&placeID=${forSearch.placeID}&tripDate=${forSearch.tripDate}`,
- );
+ if (forSearch) {
+ navigate(
+ `/search?keyword=${forSearch.keyword}&category=${forSearch.category}&map=${forSearch.map}&location=${forSearch.location}&sort=${sort}&hot=${forSearch.hot}&placeID=${forSearch.placeID}&tripDate=${forSearch.tripDate}`,
+ );
+ }
+ if (wishesFilter) {
+ navigate(
+ `/wish?category=${wishesFilter.category}&location=${wishesFilter.location}&placeID=${wishesFilter.placeID}&tripDate=${wishesFilter.tripDate}&sort=${sort}`,
+ );
+ }
}
useEffect(() => {
setClick(false);
- }, [forSearch.sort]);
+ }, [forSearch?.sort]);
return (
-
{forSearch.sort}
+
{sort}
{filterData.map((data) => (
{
- const datas = forSearch.location.split(' ');
- if (datas[0] === '전국') {
- setButtonName('전체 지역');
+ let locationData: string[] | undefined;
+ if (forSearch) {
+ locationData = forSearch.location.split(' ');
} else {
- setButtonName(datas[0]);
+ locationData = wishesFilter?.location.split(' ');
}
- }, [forSearch.location]);
+ if (locationData) {
+ if (locationData[0] === '전국') {
+ setButtonName('전체 지역');
+ } else {
+ setButtonName(locationData[0]);
+ }
+ }
+ }, [forSearch?.location, wishesFilter?.location]);
return (
<>
@@ -42,7 +51,7 @@ function LocationFilter({forSearch}: PropsType) {
{buttonName}
-
+
>
);
}
diff --git a/src/components/SearchFromHome/SearchList/LocationFilter/LocationFliterPage/LocationFliterPage.tsx b/src/components/SearchFromHome/SearchList/LocationFilter/LocationFliterPage/LocationFliterPage.tsx
index 6f39db95..4e36cea7 100644
--- a/src/components/SearchFromHome/SearchList/LocationFilter/LocationFliterPage/LocationFliterPage.tsx
+++ b/src/components/SearchFromHome/SearchList/LocationFilter/LocationFliterPage/LocationFliterPage.tsx
@@ -9,10 +9,12 @@ import PopularList from './PopularList/PopularList';
import SelectLocation from './SelectLocation/SelectLocation';
import {ForSearchType} from '@/types/home';
+import {WishFilterType} from '@/types/wish';
interface PropsType {
click: boolean;
- forSearch: ForSearchType;
+ forSearch: ForSearchType | undefined;
+ wishesFilter?: WishFilterType | undefined;
handleClick: () => void;
}
@@ -21,7 +23,7 @@ interface AreaDataType {
sigunguCode: number;
}
-function LocationFliterPage({forSearch, click, handleClick}: PropsType) {
+function LocationFliterPage({forSearch, wishesFilter, click, handleClick}: PropsType) {
const [area, setArea] = useState('전국');
const [areaData, setAreaData] = useState
();
const [sigungu, setSigungu] = useState('전체 지역');
@@ -31,20 +33,41 @@ function LocationFliterPage({forSearch, click, handleClick}: PropsType) {
const vh = window.innerHeight / 100;
useEffect(() => {
- const locationData = forSearch.location.split(' ');
- if (locationData[0] === '전국') {
- setArea('전국');
- setSigungu('전체 지역');
- } else {
- setArea(locationData[0]);
- setSigungu(locationData[1]);
+ if (forSearch) {
+ const locationData = forSearch.location.split(' ');
+ if (locationData[0] === '전국') {
+ setArea('전국');
+ setSigungu('전체 지역');
+ } else {
+ setArea(locationData[0]);
+ setSigungu(locationData[1]);
+ }
}
- }, [forSearch.location]);
+ if (wishesFilter) {
+ const locationData = wishesFilter.location.split(' ');
+ if (locationData[0] === '전국') {
+ setArea('전국');
+ setSigungu('전체 지역');
+ } else {
+ setArea(locationData[0]);
+ setSigungu(locationData[1]);
+ }
+ }
+ }, [forSearch?.location, wishesFilter?.location]);
function submit() {
- navigate(
- `/search?keyword=${forSearch.keyword}&category=${forSearch.category}&map=${forSearch.map}&location=${area} ${sigungu}&sort=${forSearch.sort}&hot=${forSearch.hot}&placeID=${forSearch.placeID}&tripDate=${forSearch.tripDate}`,
- );
+ if (forSearch) {
+ navigate(
+ `/search?keyword=${forSearch.keyword}&category=${forSearch.category}&map=${forSearch.map}&location=${area} ${sigungu}&sort=${forSearch.sort}&hot=${forSearch.hot}&placeID=${forSearch.placeID}&tripDate=${forSearch.tripDate}`,
+ );
+ }
+ console.log(wishesFilter);
+
+ if (wishesFilter) {
+ navigate(
+ `/wishes?category=${wishesFilter.category}&location=${area} ${sigungu}&placeID=${wishesFilter.placeID}&tripDate=${wishesFilter.tripDate}&sort=${wishesFilter.sort}`,
+ );
+ }
handleClick();
}
@@ -62,9 +85,21 @@ function LocationFliterPage({forSearch, click, handleClick}: PropsType) {