호텔 상품테마 API

This commit is contained in:
고동영
2024-03-13 17:59:30 +09:00
parent 49ce8355a3
commit cc9010c68f
6 changed files with 134 additions and 17 deletions

View File

@@ -3,6 +3,10 @@ import React, { useCallback, useEffect, useState } from "react";
import { useDispatch, useSelector } from "react-redux";
import { getProductCouponSearch } from "../../actions/couponActions";
import {
getThemeCurationDetailInfo,
getThemeHotelDetailInfo,
} from "../../actions/homeActions";
import {
getMainCategoryDetail,
getMyFavoriteFlag,
@@ -22,41 +26,82 @@ import YouMayLike from "./container/YouMayLike";
import css from "./DetailPanel.module.less";
export default function ItemDetail() {
const [selectedPatnrId, setSelectedPatnrId] = useState();
const [selectedPrdtId, setSelectedPrtdId] = useState();
const [themeInfo, setThemeInfo] = useState("");
const [selectedPatnrId, setSelectedPatnrId] = useState("");
const [selectedPrdtId, setSelectedPrtdId] = useState("");
const productData = useSelector((state) => state.main.productData);
const panels = useSelector((state) => state.panels.panels);
const groupInfos = useSelector((state) => state.product.groupInfo);
const themeCurationDetailInfoData = useSelector(
(state) => state.home.themeCurationDetailInfoData
);
const themeCurationHotelDetailData = useSelector(
(state) => state.home.themeCurationHotelDetailData
);
const dispatch = useDispatch();
const getPanelInfo = useCallback(() => {
if (panels) {
console.log("#panels", panels);
for (let i = 0; i < panels.length; i++) {
if (panels[i].name === "detailpanel") {
setSelectedPatnrId(panels[i].panelInfo.patnrId);
setSelectedPrtdId(panels[i].panelInfo.prdtId);
if (panels[0].name == "hotpickpanel") {
setThemeInfo(panels[i].panelInfo);
}
}
}
}
}, [panels]);
useEffect(() => {
console.log("#Detail", themeCurationDetailInfoData);
console.log("#Hotel", themeCurationHotelDetailData);
console.log("#productData", productData);
console.log("#groupInfos", groupInfos);
}, [
themeCurationDetailInfoData,
themeCurationHotelDetailData,
productData,
groupInfos,
]);
useEffect(() => {
getPanelInfo();
dispatch(
getMainCategoryDetail({
patnrId: selectedPatnrId,
prdtId: selectedPrdtId,
})
);
if (themeInfo) {
dispatch(
getThemeCurationDetailInfo({
patnrId: themeInfo.patnrId,
curationId: themeInfo.curationId,
})
);
dispatch(
getThemeHotelDetailInfo({
patnrId: themeInfo.patnrId,
curationId: themeInfo.curationId,
})
);
}
dispatch(
getProductGroup({
patnrId: selectedPatnrId,
prdtId: selectedPrdtId,
})
);
}, [dispatch, panels, selectedPatnrId, selectedPrdtId]);
if (!themeInfo) {
dispatch(
getMainCategoryDetail({
patnrId: selectedPatnrId,
prdtId: selectedPrdtId,
})
);
dispatch(
getProductGroup({
patnrId: selectedPatnrId,
prdtId: selectedPrdtId,
})
);
}
}, [dispatch, panels, selectedPatnrId, selectedPrdtId, themeInfo]);
const onClick = () => {
dispatch(popPanel());