[SHOPTIME-3965] 상품 Detail / SMS송신 IF-LGSP-037 / APP00201(Shop By Mobile) 유형 / smsText 기능 추가
[수정사항] 결제가능상품에서 IF-LGSP-037 API호출시 QRCodeUrl을 smsText로 통신
This commit is contained in:
@@ -41,7 +41,7 @@ import THeader from "../../components/THeader/THeader";
|
||||
import TPanel from "../../components/TPanel/TPanel";
|
||||
import * as Config from "../../utils/Config";
|
||||
import { panel_names } from "../../utils/Config";
|
||||
import { $L } from "../../utils/helperMethods";
|
||||
import { $L, getQRCodeUrl } from "../../utils/helperMethods";
|
||||
import css from "./DetailPanel.module.less";
|
||||
import GroupProduct from "./GroupProduct/GroupProduct";
|
||||
import SingleProduct from "./SingleProduct/SingleProduct";
|
||||
@@ -69,7 +69,13 @@ export default function DetailPanel({ panelInfo, isOnTop, spotlightId }) {
|
||||
);
|
||||
const youmaylikeData = useSelector((state) => state.main.youmaylikeData);
|
||||
const { httpHeader } = useSelector((state) => state.common);
|
||||
const deviceInfo = useSelector((state) => state.device.deviceInfo);
|
||||
|
||||
const serverHOST = useSelector((state) => state.common.appStatus.serverHOST);
|
||||
const serverType = useSelector((state) => state.localSettings.serverType);
|
||||
const { entryMenu, nowMenu } = useSelector((state) => state.common.menu);
|
||||
const groupInfos = useSelector((state) => state.product.groupInfo);
|
||||
const productInfo = useSelector((state) => state.main.productData);
|
||||
const { popupVisible, activePopup } = useSelector(
|
||||
(state) => state.common.popup
|
||||
);
|
||||
@@ -83,17 +89,6 @@ export default function DetailPanel({ panelInfo, isOnTop, spotlightId }) {
|
||||
|
||||
const shopByMobileLogRef = useRef(null);
|
||||
|
||||
// const {
|
||||
// themeHotelId,
|
||||
// panelInfo?.themePrdtId,
|
||||
// prdtId,
|
||||
// patnrId,
|
||||
// curationId,
|
||||
// curationNm,
|
||||
// type,
|
||||
// bgImgNo,
|
||||
// } = panelInfo;
|
||||
|
||||
useEffect(() => {
|
||||
dispatch(getProductOptionId(undefined));
|
||||
if (panelInfo?.type === "hotel") {
|
||||
@@ -186,6 +181,20 @@ export default function DetailPanel({ panelInfo, isOnTop, spotlightId }) {
|
||||
panelInfo?.themeHotelId,
|
||||
]);
|
||||
|
||||
const { detailUrl } = useMemo(() => {
|
||||
return getQRCodeUrl({
|
||||
serverHOST,
|
||||
serverType,
|
||||
index: deviceInfo?.dvcIndex,
|
||||
patnrId: productInfo?.patnrId,
|
||||
prdtId: productInfo?.prdtId,
|
||||
entryMenu: entryMenu,
|
||||
nowMenu: nowMenu,
|
||||
liveFlag: "Y",
|
||||
qrType: "billingDetail",
|
||||
});
|
||||
}, [serverHOST, serverType, deviceInfo, entryMenu, nowMenu, productInfo]);
|
||||
|
||||
const onSpotlightUpTButton = (e) => {
|
||||
e.stopPropagation();
|
||||
Spotlight.focus("spotlightId_backBtn");
|
||||
@@ -432,6 +441,7 @@ export default function DetailPanel({ panelInfo, isOnTop, spotlightId }) {
|
||||
shopByMobileLogRef={shopByMobileLogRef}
|
||||
isYouMayLikeOpened={isYouMayLikeOpened}
|
||||
isBillingProductVisible={isBillingProductVisible}
|
||||
detailQRCodeUrl={detailUrl}
|
||||
/>
|
||||
)}
|
||||
{/* 구매불가상품 영역 */}
|
||||
@@ -518,6 +528,7 @@ export default function DetailPanel({ panelInfo, isOnTop, spotlightId }) {
|
||||
productPrice={panelInfo?.type === "hotel" && Price()}
|
||||
shopByMobileLogRef={shopByMobileLogRef}
|
||||
spotlightId="shopbymobile_Btn"
|
||||
smsText={detailUrl}
|
||||
/>
|
||||
)}
|
||||
</>
|
||||
|
||||
@@ -35,6 +35,7 @@ export default function SingleProduct({
|
||||
shopByMobileLogRef,
|
||||
isYouMayLikeOpened,
|
||||
isBillingProductVisible,
|
||||
detailQRCodeUrl,
|
||||
}) {
|
||||
const dispatch = useDispatch();
|
||||
|
||||
@@ -160,6 +161,7 @@ export default function SingleProduct({
|
||||
productInfo={productData}
|
||||
thumbnailUrl={productData.imgUrls600[0]}
|
||||
isBillingProductVisible={isBillingProductVisible}
|
||||
detailQRCodeUrl={detailQRCodeUrl}
|
||||
/>
|
||||
</Container>
|
||||
<div>
|
||||
|
||||
@@ -39,16 +39,10 @@ export default function IndicatorOptions({
|
||||
isFullOption,
|
||||
productInfo,
|
||||
thumbnailUrl,
|
||||
detailQRCodeUrl,
|
||||
}) {
|
||||
const [tabLabel, setTabLabel] = useState("");
|
||||
const [description, setDescription] = useState("");
|
||||
|
||||
const deviceInfo = useSelector((state) => state.device.deviceInfo);
|
||||
|
||||
const serverHOST = useSelector((state) => state.common.appStatus.serverHOST);
|
||||
const serverType = useSelector((state) => state.localSettings.serverType);
|
||||
const { entryMenu, nowMenu } = useSelector((state) => state.common.menu);
|
||||
|
||||
const { popupVisible, activePopup } = useSelector(
|
||||
(state) => state.common.popup
|
||||
);
|
||||
@@ -96,25 +90,11 @@ export default function IndicatorOptions({
|
||||
return { __html: sanitizedString };
|
||||
};
|
||||
|
||||
const { detailUrl } = useMemo(() => {
|
||||
return getQRCodeUrl({
|
||||
serverHOST,
|
||||
serverType,
|
||||
index: deviceInfo?.dvcIndex,
|
||||
patnrId: productInfo?.patnrId,
|
||||
prdtId: productInfo?.prdtId,
|
||||
entryMenu: entryMenu,
|
||||
nowMenu: nowMenu,
|
||||
liveFlag: "Y",
|
||||
qrType: "billingDetail",
|
||||
});
|
||||
}, [serverHOST, serverType, deviceInfo, entryMenu, nowMenu, productInfo]);
|
||||
|
||||
const qrCodeUrl = useMemo(() => {
|
||||
if (!isBillingProductVisible) return productInfo?.qrcodeUrl;
|
||||
|
||||
return detailUrl;
|
||||
}, [productInfo, isBillingProductVisible, detailUrl]);
|
||||
return detailQRCodeUrl;
|
||||
}, [productInfo, isBillingProductVisible, detailQRCodeUrl]);
|
||||
|
||||
//DecoratorContainer로 컴포넌트를 감싸주면 해당 함수가 필요없어 보임
|
||||
const onSpotlightLeft = (e) => {
|
||||
|
||||
Reference in New Issue
Block a user