Merge branch 'develop' of gitlab.t-win.kr:ifheone/shoptime into develop

This commit is contained in:
yonghyon
2024-09-26 12:18:07 +09:00
20 changed files with 239 additions and 133 deletions

View File

@@ -21,13 +21,10 @@ export const getMyInfoCheckoutInfo =
});
if (callback) callback(response.data);
dispatch(changeAppStatus({ showLoadingPanel: { show: false } }));
};
const onFail = (error) => {
console.error("getMyInfoCheckoutInfo OnFail: ", error);
dispatch(changeAppStatus({ showLoadingPanel: { show: false } }));
};
TAxios(
@@ -100,13 +97,14 @@ export const getCheckoutTotalAmt =
payload: response.data.data,
});
dispatch(changeAppStatus({ showLoadingPanel: { show: false } }));
if (callback) callback(response.data);
dispatch(changeAppStatus({ showLoadingPanel: { show: false } }));
};
const onFail = (error) => {
console.error("getCheckoutTotalAmt onFail: ", error);
dispatch(changeAppStatus({ showLoadingPanel: { show: false } }));
};

View File

@@ -660,6 +660,13 @@ export default function TabLayout({ topPanelName, onTabActivated, panelInfo }) {
}
}, [panelInfo, topPanelName]);
// esc키로 Home으로 이동시 SubItemId 초기화
useEffect(() => {
if (topPanelName === null && selectedSubItemId) {
setSelectedSubItemId(null);
}
}, [panels, selectedSubItemId]);
useEffect(() => {
if (tabActivated && showSubTab && subTabLastFocusId !== null) {
Spotlight.focus(subTabLastFocusId);

View File

@@ -2368,7 +2368,7 @@ const VideoPlayerBase = class extends React.Component {
panelInfo.modal && type !== "MEDIA" && css.smallThumbnail
)}
>
<img src={this.state.thumbnailUrl} alt="" />
<img src={thumbnailUrl} alt="" />
</p>
}

View File

@@ -482,3 +482,24 @@ export const parseLocalizedNumber = (numberString, countryCode) => {
return parseFloat(numberString);
};
export const formatCurrencyValue = (
value,
currSign,
currSignLoc,
isDiscount = false
) => {
if (value === "-" || value === 0) return "-";
const numValue = parseFloat(value);
if (isNaN(numValue)) return "-";
const sign = isDiscount && numValue > 0 ? "- " : "";
const formattedValue = numValue.toFixed(2);
if (!currSign || !currSignLoc) return `${sign}${formattedValue}`;
return currSignLoc === "L"
? `${sign}${currSign} ${formattedValue}`
: `${sign}${formattedValue} ${currSign}`;
};

View File

@@ -7,15 +7,16 @@ import Spotlight from "@enact/spotlight";
import {
getCheckoutTotalAmt,
getMyInfoCheckoutInfo,
resetCheckoutData,
} from "../../actions/checkoutActions";
import {
changeAppStatus,
setHidePopup,
setShowPopup,
} from "../../actions/commonActions";
import { setHidePopup, setShowPopup } from "../../actions/commonActions";
import { getShoptimeTerms } from "../../actions/empActions";
import {
sendLogCheckOutBtnClick,
sendLogGNB,
sendLogMyInfoEdit,
sendLogPaymentEntry,
} from "../../actions/logActions";
import { popPanel } from "../../actions/panelActions";
import TBody from "../../components/TBody/TBody";
import TButton from "../../components/TButton/TButton";
@@ -36,7 +37,6 @@ import FixedSideBar from "./container/FixedSideBar";
import InformationContainer from "./container/InformationContainer";
import OrderItemsSideBar from "./container/OrderItemsSideBar";
import SummaryContainer from "./container/SummaryCotainer";
import {sendLogCheckOutBtnClick, sendLogGNB, sendLogPaymentEntry, sendLogMyInfoEdit} from "../../actions/logActions";
export default function CheckOutPanel({ panelInfo }) {
const dispatch = useDispatch();
@@ -298,12 +298,9 @@ export default function CheckOutPanel({ panelInfo }) {
}
}, [panelInfo?.logInfo]);
const doSendLogMyInfoEdit = useCallback(
(btnNm) => {
dispatch(sendLogMyInfoEdit({ btnNm }));
},
[]
);
const doSendLogMyInfoEdit = useCallback((btnNm) => {
dispatch(sendLogMyInfoEdit({ btnNm }));
}, []);
return (
<>

View File

@@ -33,6 +33,7 @@ export default memo(function OffersPromotionItemCard({
currSignLoc,
shippingCharge,
auctProdYn,
auctFinalPriceChgDt,
prdtCoupon,
spotlightId,
offerSideBarOpen,
@@ -85,7 +86,11 @@ export default memo(function OffersPromotionItemCard({
<div className={css.rightContents}>
<p className={css.prdtNm}>{prdtNm}</p>
<p className={css.priceWrap}>
{auctProdYn === "N" ? (
{auctProdYn === "Y" && !auctFinalPriceChgDt ? (
<div className={css.noticeBox}>
{$L("Purchased products will be paid at the final price.")}
</div>
) : (
<>
<span className={css.itemPrice}>
{currSignLoc === "L" ? (
@@ -111,10 +116,6 @@ export default memo(function OffersPromotionItemCard({
: `${shippingCharge || 0.0} ${currSign}`}
</span>
</>
) : (
<div className={css.noticeBox}>
{$L("Purchased products will be paid at the final price.")}
</div>
)}
</p>
</div>

View File

@@ -27,6 +27,7 @@ export default memo(function OrderItemCard({
currSignLoc,
shippingCharge,
auctProdYn,
auctFinalPriceChgDt,
...rest
}) {
return (
@@ -55,7 +56,11 @@ export default memo(function OrderItemCard({
</p>
<p className={css.prodQty}>Qty: {prodQty}</p>
<p className={css.priceWrap}>
{auctProdYn === "N" ? (
{auctProdYn === "Y" && !auctFinalPriceChgDt ? (
<div className={css.noticeBox}>
{$L("Purchased products will be paid at the final price.")}
</div>
) : (
<>
<span className={css.itemPrice}>
{currSignLoc === "L"
@@ -67,10 +72,6 @@ export default memo(function OrderItemCard({
? `${currSign} ${shippingCharge || 0.0}`
: `${shippingCharge || 0.0} ${currSign}`}
</>
) : (
<div className={css.noticeBox}>
{$L("Purchased products will be paid at the final price.")}
</div>
)}
</p>
</div>

View File

@@ -62,6 +62,10 @@ export default function PinCodeInput({
const auctProdYn = useSelector(
(state) => state.checkout?.checkoutData?.productList?.[0].auctProdYn
);
const auctFinalPriceChgDt = useSelector(
(state) =>
state.checkout?.checkoutData?.productList?.[0].auctFinalPriceChgDt
);
const serverHOST = useSelector((state) => state.common.appStatus.serverHOST);
const serverType = useSelector((state) => state.localSettings.serverType);
@@ -171,36 +175,14 @@ export default function PinCodeInput({
if (response.retCode === 0) {
const orderProductCoupontUse = Object.keys(selectedCoupons).map(
(productId) => {
const {
cpnAplyMaxDcAmt,
cpnAplyMinProdAmt,
cpnAplyMinPurcAmt,
cpnCdCval,
cpnCdSeq,
cpnDctrt,
cpnSno,
dcAmt,
mbrNo,
prdtId,
shptmCpnTpCd,
shptmCpnTrgtCd,
shptmDcTpCd,
} = selectedCoupons[productId];
const { prdtId, cpnSno, cpnCdSeq } = selectedCoupons[productId];
return {
cpnAplyMaxDcAmt,
cpnAplyMinProdAmt,
cpnAplyMinPurcAmt,
cpnCdCval,
cpnCdSeq,
cpnDctrt,
cpnSno,
dcAmt,
mbrNo,
prdtId,
shptmCpnTpCd,
shptmCpnTrgtCd,
shptmDcTpCd,
patnrId: productList.patnrId,
prodSno: productList.prodSno,
cpnSno,
cpnCdSeq,
};
}
);
@@ -227,6 +209,7 @@ export default function PinCodeInput({
panelInfo: {
orderInfo: response.data.data,
auctProdYn: auctProdYn,
auctFinalPriceChgDt: auctFinalPriceChgDt,
logInfo: logInfo,
},
})
@@ -260,6 +243,7 @@ export default function PinCodeInput({
productList,
isMounted,
auctProdYn,
auctFinalPriceChgDt,
dispatch,
logInfo,
setIsOrderSuccessful,

View File

@@ -44,6 +44,7 @@ export default function FixedSideBar({ closeSideBar, offerSideBarOpen }) {
currSignLoc={item.currSignLoc}
shippingCharge={item.shippingCharge}
auctProdYn={item.auctProdYn}
auctFinalPriceChgDt={item.auctFinalPriceChgDt}
prdtCoupon={item.prdtCoupon}
offerSideBarOpen={offerSideBarOpen}
/>

View File

@@ -58,6 +58,10 @@ export default function InformationContainer({
const auctProdYn = useSelector(
(state) => state.checkout?.checkoutData?.productList?.[0].auctProdYn
);
const auctFinalPriceChgDt = useSelector(
(state) =>
state.checkout?.checkoutData?.productList?.[0].auctFinalPriceChgDt
);
const totDcAmt = useSelector(
(state) => state.checkout?.checkoutTotalData?.orderTotalAmtInfo?.totDcAmt
);
@@ -198,7 +202,7 @@ export default function InformationContainer({
spotlightId="checkout-btn-fifth"
onFocus={handleFocus}
>
{auctProdYn === "Y" ? " - " : totDcAmt}
{auctProdYn === "Y" && !auctFinalPriceChgDt ? " - " : totDcAmt}
</BtnSpot>
</div>
</div>

View File

@@ -42,6 +42,7 @@ export default function OrderItemsSideBar({ closeSideBar }) {
currSignLoc={item.currSignLoc}
shippingCharge={item.shippingCharge}
auctProdYn={item.auctProdYn}
auctFinalPriceChgDt={item.auctFinalPriceChgDt}
/>
);
},

View File

@@ -7,7 +7,7 @@ import SpotlightContainerDecorator from "@enact/spotlight/SpotlightContainerDeco
import { setShowPopup } from "../../../actions/commonActions";
import TButton from "../../../components/TButton/TButton";
import * as Config from "../../../utils/Config";
import { $L } from "../../../utils/helperMethods";
import { $L, formatCurrencyValue } from "../../../utils/helperMethods";
import css from "./SummaryContainer.module.less";
const Container = SpotlightContainerDecorator(
@@ -33,14 +33,47 @@ export default function SummaryContainer({
);
const items = [
{ name: "Items", value: priceTotalData.totProdPrc || "-" },
{
name: "Items",
value: formatCurrencyValue(
priceTotalData.totProdPrc,
currSign,
currSignLoc
),
},
{
name: "Your Coupon Savings",
value: priceTotalData.totDcAmt || "-",
value: formatCurrencyValue(
priceTotalData.totDcAmt,
currSign,
currSignLoc,
true
),
},
{
name: "Shipping & Handling",
value: formatCurrencyValue(
priceTotalData.totDlvrAmt,
currSign,
currSignLoc
),
},
{
name: "TOTAL (before Tax)",
value: formatCurrencyValue(
priceTotalData.ordPmtNoTaxAmt,
currSign,
currSignLoc
),
},
{
name: "Estimated Sales Tax",
value: formatCurrencyValue(
priceTotalData.ordTotTaxAmt,
currSign,
currSignLoc
),
},
{ name: "Shipping & Handling", value: priceTotalData.totDlvrAmt || "-" },
{ name: "TOTAL (before Tax)", value: priceTotalData.totProdPrc || "-" },
{ name: "Estimated Sales Tax", value: priceTotalData.ordTotTaxAmt || "-" },
];
const handleClickOrder = useCallback(() => {
@@ -53,11 +86,12 @@ export default function SummaryContainer({
return (
<Container className={css.container}>
<div className={css.order}>
<h3>ORDER SUMMARY</h3>
<h3>{$L("ORDER SUMMARY")}</h3>
<span className={css.line} />
<div className={css.itemWrap}>
{productList &&
(productList.auctProdYn === "Y" ? (
(productList.auctProdYn === "Y" &&
!productList.auctFinalPriceChgDt ? (
<div className={css.noticeBox}>
{$L("Purchased products will be paid at the final price.")}
</div>
@@ -65,13 +99,7 @@ export default function SummaryContainer({
items.map((item, index) => (
<div key={index} className={css.item}>
<span className={css.summaryDesc}>{item.name}</span>
<span className={css.summaryCnt}>
{currSign && currSignLoc
? currSignLoc === "L"
? `${currSign} ${item.value}`
: `${item.value} ${currSign}`
: " - "}
</span>
<span className={css.summaryCnt}>{item.value}</span>
</div>
))
))}
@@ -81,13 +109,13 @@ export default function SummaryContainer({
<div>{$L("Estimated Total")}</div>
<div className={css.price}>
{productList &&
(productList.auctProdYn === "Y"
(productList.auctProdYn === "Y" && !productList.auctFinalPriceChgDt
? "-"
: currSign && currSignLoc
? currSignLoc === "L"
? `${currSign} ${priceTotalData?.ordPmtReqAmt || "-"}`
: `${priceTotalData?.ordPmtReqAmt || "-"} ${currSign}`
: " - ")}
: formatCurrencyValue(
priceTotalData?.ordPmtReqAmt,
currSign,
currSignLoc
))}
</div>
</div>
<div className={css.bottom}>

View File

@@ -48,6 +48,7 @@ export default function ConfirmPanel({ spotlightId }) {
totDlvrAmt,
} = panelInfo?.orderInfo || {};
const auctProdYn = panelInfo?.auctProdYn || {};
const auctFinalPriceChgDt = panelInfo?.auctFinalPriceChgDt || {};
const logInfo = panelInfo?.logInfo || {};
useEffect(() => {
@@ -138,7 +139,7 @@ export default function ConfirmPanel({ spotlightId }) {
</ul>
<div className={css.bottomContents}>
<p className={css.bottomContentsTitle}>{$L("ESTIMATED TOTAL")}</p>
{auctProdYn && auctProdYn === "Y" ? (
{auctProdYn && auctProdYn === "Y" && !auctFinalPriceChgDt ? (
<span>
{$L("Purchased products will be paid at the final price.")}
</span>

View File

@@ -77,7 +77,6 @@ function Indicator({
if (!launchedFromPlayer && autoPlaying && productInfo?.prdtMediaUrl) {
//auto play.
dispatch(
startVideoPlayer({
showUrl: productInfo?.prdtMediaUrl,
@@ -93,6 +92,7 @@ function Indicator({
prdtId: productInfo?.prdtId,
prdtNm: productInfo?.prdtNm,
patncNm: productInfo?.patncNm,
thumbnailUrl: productInfo?.thumbnailUrl960,
modal: true,
shptmBanrTpNm: "MEDIA",
modalContainerId: "indicator_videoContainer", //to calc width, height, left, top
@@ -181,6 +181,7 @@ function Indicator({
prdtId: productInfo?.prdtId,
patncNm: productInfo?.patncNm,
prdtNm: productInfo?.prdtNm,
thumbnailUrl: productInfo?.thumbnailUrl960,
shptmBanrTpNm: "MEDIA",
modal: false,
modalContainerId: "indicator_videoContainer", //to calc width, height, left, top

View File

@@ -128,8 +128,8 @@ function ThemeIndicator({
prdtId: themeProductInfo?.prdtId,
patncNm: themeProductInfo?.patncNm,
prdtNm: themeProductInfo?.prdtNm,
thumbnailUrl: themeProductInfo?.thumbnailUrl960,
shptmBanrTpNm: "MEDIA",
// modal: autoPlaying,
modal: true,
modalContainerId: "indicator_videoContainer", //to calc width, height, left, top
modalClassName: modalClassNameChange(),
@@ -282,6 +282,7 @@ function ThemeIndicator({
prdtId: themeProductInfo?.prdtId,
patncNm: themeProductInfo?.patncNm,
prdtNm: themeProductInfo?.prdtNm,
thumbnailUrl: themeProductInfo?.thumbnailUrl960,
shptmBanrTpNm: "MEDIA",
modal: false,
modalContainerId: "indicator_videoContainer",

View File

@@ -31,6 +31,10 @@ import {
setShowPopup,
setShowSecondaryPopup,
} from "../../../../actions/commonActions";
import {
sendLogOrderBtnClick,
sendLogOrderChange,
} from "../../../../actions/logActions";
// getMyinfoOrderSearch : 회원 주문 정보 조회
// getMyinfoOrderDetailSearch : 회원 주문 상세 정보 조회 - 디테일
// getMyinfoOrderShippingSearch : 회원 주문 배송 상세 정보 조회
@@ -58,6 +62,7 @@ import * as Config from "../../../../utils/Config";
import { GET_MY_INFO_ORDER_SEARCH_LIMIT } from "../../../../utils/Config";
import {
$L,
formatCurrencyValue,
getFormattingDate,
isElementInContainer,
} from "../../../../utils/helperMethods";
@@ -65,7 +70,6 @@ import { SpotlightIds } from "../../../../utils/SpotlightIds";
import NoOrderList from "./components/NoOrderList";
import OrderListCard from "./components/OrderListCard";
import css from "./MyOrders.module.less";
import { sendLogOrderBtnClick, sendLogOrderChange } from "../../../../actions/logActions";
const Container = SpotlightContainerDecorator("div");
const ListContainer = SpotlightContainerDecorator("div");
@@ -117,6 +121,16 @@ export default function MyOrders({ title, panelInfo, isOnTop }) {
const orderInfo = orderInfoData?.orderInfo || {};
const cancelOrderInfo = cancelOrderInfoData?.orderInfo || {};
const {
currSign,
currSignLoc,
totProdPrc,
totDcAmt,
totDlvrAmt,
ordPmtReqAmt,
ordPmtNoTaxAmt,
ordTotTaxAmt,
} = orderDetailData || {};
const cbChangePageRef = useRef(null);
const focusedContainerIdRef = useRef(null);
@@ -445,12 +459,9 @@ export default function MyOrders({ title, panelInfo, isOnTop }) {
};
}, [popup.secondaryPopup, popup.secondaryPopupVisible, preventKeyDown]);
const doSendLogOrderBtnClick = useCallback(
(btnNm) => {
dispatch(sendLogOrderBtnClick({ btnNm }));
},
[]
);
const doSendLogOrderBtnClick = useCallback((btnNm) => {
dispatch(sendLogOrderBtnClick({ btnNm }));
}, []);
return (
<>
@@ -647,8 +658,11 @@ export default function MyOrders({ title, panelInfo, isOnTop }) {
<li className={css.summaryItem}>
<span className={css.label}>{$L("Items")}</span>
<span className={css.value}>
{orderDetailData.currSign}{" "}
{orderDetailData.totProdPrc}
{formatCurrencyValue(
totProdPrc,
currSign,
currSignLoc
)}
</span>
</li>
<li className={css.summaryItem}>
@@ -662,7 +676,12 @@ export default function MyOrders({ title, panelInfo, isOnTop }) {
{$L("Your Coupon Savings")}
</span>
<span className={css.value}>
{orderDetailData.currSign} {orderDetailData.totDcAmt}
{formatCurrencyValue(
totDcAmt,
currSign,
currSignLoc,
true
)}
</span>
</li>
<li className={css.summaryItem}>
@@ -670,8 +689,11 @@ export default function MyOrders({ title, panelInfo, isOnTop }) {
{$L("Shipping & Handling")}
</span>
<span className={css.value}>
{orderDetailData.currSign}{" "}
{orderDetailData.totDlvrAmt}
{formatCurrencyValue(
totDlvrAmt,
currSign,
currSignLoc
)}
</span>
</li>
<li className={css.summaryItem}>
@@ -679,8 +701,11 @@ export default function MyOrders({ title, panelInfo, isOnTop }) {
{$L("TOTAL (before Tax)")}
</span>
<span className={css.value}>
{orderDetailData.currSign}{" "}
{orderDetailData.totProdPrc}
{formatCurrencyValue(
ordPmtNoTaxAmt,
currSign,
currSignLoc
)}
</span>
</li>
<li className={css.summaryItem}>
@@ -688,8 +713,11 @@ export default function MyOrders({ title, panelInfo, isOnTop }) {
{$L("Estimated Sales Tax")}
</span>
<span className={css.value}>
{orderDetailData.currSign}{" "}
{orderDetailData.ordTotTaxAmt}
{formatCurrencyValue(
ordTotTaxAmt,
currSign,
currSignLoc
)}
</span>
</li>
</ul>
@@ -698,8 +726,11 @@ export default function MyOrders({ title, panelInfo, isOnTop }) {
{$L("Item Order Total")}
</span>
<span className={css.value}>
{orderDetailData.currSign}{" "}
{orderDetailData.ordPmtReqAmt}
{formatCurrencyValue(
ordPmtReqAmt,
currSign,
currSignLoc
)}
</span>
</div>
</div>

View File

@@ -56,6 +56,7 @@ export default memo(function OrderListCard({
ordTotTaxAmt,
currSign,
currSignLoc,
ordPmtReqAmt,
};
return (
@@ -78,6 +79,7 @@ export default memo(function OrderListCard({
</div>
<OrderListCardStatus
orderProductInfo={orderProductInfo?.[0]}
paymentInfo={paymentInfo}
onClickBuyAgain={onClickBuyAgain}
cancelItem={cancelItem}
doSendLogOrderBtnClick={doSendLogOrderBtnClick}

View File

@@ -14,7 +14,7 @@ import { pushPanel, updatePanel } from "../../../../../actions/panelActions";
import CustomImage from "../../../../../components/CustomImage/CustomImage";
import TButton from "../../../../../components/TButton/TButton";
import * as Config from "../../../../../utils/Config";
import { $L } from "../../../../../utils/helperMethods";
import { $L, formatCurrencyValue } from "../../../../../utils/helperMethods";
import {
getStatusMessageAndClass,
renderButtonsByStatus,
@@ -38,6 +38,7 @@ const LOG_STRING_CONF = {
export default function OrderListCardStatus({
orderProductInfo,
paymentInfo,
onClickBuyAgain,
cancelItem,
doSendLogOrderBtnClick,
@@ -54,16 +55,31 @@ export default function OrderListCardStatus({
prodQty,
prdtOpt,
prodPrc,
currSign,
currSignLoc,
prdtOptPrc,
dlvrAmt,
patnrId,
auctProdYn,
auctFinalPriceChgDt,
patncNm,
prodSno,
patncPhnNo,
} = orderProductInfo || {};
const {
cardKnd,
cardNo,
regDt,
totProdQty,
totProdPrc,
totDcAmt,
totOptPrc,
totDlvrAmt,
ordTotTaxAmt,
currSign,
currSignLoc,
ordPmtReqAmt,
} = paymentInfo || {};
const dispatch = useDispatch();
const { message, className } = useMemo(() =>
@@ -125,7 +141,7 @@ export default function OrderListCardStatus({
}
const onClickViewOrderDetailsButton = useCallback(() => {
if (auctProdYn === "Y") {
if (auctProdYn === "Y" && !auctFinalPriceChgDt) {
dispatch(setShowPopup(Config.ACTIVE_POPUP.errorPopup));
} else {
dispatch(
@@ -216,10 +232,12 @@ export default function OrderListCardStatus({
</p>
<p className={css.price}>
<strong>
{currSign} {prodPrc}
{formatCurrencyValue(ordPmtReqAmt, currSign, currSignLoc)}
</strong>{" "}
| {$L("OPTIONS TOTAL")}: {currSign} {prdtOptPrc} | {$L("S&H")}
: {currSign} {dlvrAmt}
| {$L("OPTIONS TOTAL")}:{" "}
{formatCurrencyValue(totOptPrc, currSign, currSignLoc)} |{" "}
{$L("S&H")}:{" "}
{formatCurrencyValue(totDlvrAmt, currSign, currSignLoc)}
</p>
</div>
</div>

View File

@@ -1,4 +1,4 @@
import React, { memo } from "react";
import React, { memo, useCallback } from "react";
import { useSelector } from "react-redux";
@@ -6,6 +6,7 @@ import { convertUtcToLocal } from "../../../../../components/MediaPlayer/util";
import {
$L,
convertToTimeFormat,
formatCurrencyValue,
getFormattingCardNo,
} from "../../../../../utils/helperMethods";
import css from "./OrderListCardTopContents.module.less";
@@ -51,20 +52,12 @@ export default memo(function OrderListCardTopContents({ paymentInfo }) {
<tbody>
<tr>
<td>{totProdQty}</td>
<td>{formatCurrencyValue(totProdPrc, currSign, currSignLoc)}</td>
<td>{formatCurrencyValue(totOptPrc, currSign, currSignLoc)}</td>
<td>{formatCurrencyValue(totDlvrAmt, currSign, currSignLoc)}</td>
<td>{formatCurrencyValue(ordTotTaxAmt, currSign, currSignLoc)}</td>
<td>
{currSign} {totProdPrc}
</td>
<td>
{currSign} {totDcAmt}
</td>
<td>
{currSign} {totOptPrc}
</td>
<td>
{currSign} {totDlvrAmt}
</td>
<td>
{currSign} {ordTotTaxAmt}
{formatCurrencyValue(totDcAmt, currSign, currSignLoc, true)}
</td>
</tr>
</tbody>

View File

@@ -1064,7 +1064,10 @@ const PlayerPanel = ({
// live subtitle Luna API
useEffect(() => {
if (currentSubtitleBlob || panelInfo?.shptmBanrTpNm === "MEDIA") {
if (
currentSubtitleBlob ||
(panelInfo?.shptmBanrTpNm === "MEDIA" && panelInfo?.patnrNm !== "QVC")
) {
return;
} else if (isYoutube) {
if (mediaId) {
@@ -1341,7 +1344,7 @@ const PlayerPanel = ({
}
}, [shopNowInfo, currentTime]);
const currentSubtTitleUrl = useMemo(() => {
const currentSubtitleUrl = useMemo(() => {
if (panelInfo?.shptmBanrTpNm === "MEDIA") {
return panelInfo.subtitle;
}
@@ -1365,8 +1368,8 @@ const PlayerPanel = ({
if (Config.DEBUG_VIDEO_SUBTITLE_TEST) {
return dummyVtt;
}
return vodSubtitleData[currentSubtTitleUrl];
}, [vodSubtitleData, currentSubtTitleUrl]);
return vodSubtitleData[currentSubtitleUrl];
}, [vodSubtitleData, currentSubtitleUrl]);
const isReadyToPlay = useMemo(() => {
if (!currentPlayingUrl) {
@@ -1374,13 +1377,13 @@ const PlayerPanel = ({
}
if (
!Config.DEBUG_VIDEO_SUBTITLE_TEST &&
currentSubtTitleUrl &&
currentSubtitleUrl &&
!currentSubtitleBlob
) {
return false;
}
return true;
}, [currentPlayingUrl, currentSubtTitleUrl, currentSubtitleBlob]);
}, [currentPlayingUrl, currentSubtitleUrl, currentSubtitleBlob]);
const chatVisible = useMemo(() => {
if (
@@ -1408,10 +1411,10 @@ const PlayerPanel = ({
}, [playListInfo, shopNowInfo, panelInfo.modal]);
useEffect(() => {
if (currentSubtTitleUrl) {
dispatch(getSubTitle({ showSubtitleUrl: currentSubtTitleUrl }));
if (currentSubtitleUrl) {
dispatch(getSubTitle({ showSubtitleUrl: currentSubtitleUrl }));
}
}, [currentSubtTitleUrl]);
}, [currentSubtitleUrl]);
const reactPlayerSubtitleConfig = useMemo(() => {
if (isSubtitleActive && currentSubtitleBlob) {
@@ -1463,12 +1466,25 @@ const PlayerPanel = ({
const videoThumbnailUrl = useMemo(() => {
let res = null;
res = playListInfo?.[selectedIndex]?.thumbnailUrl;
if (!res) {
res = showDetailInfo?.[0]?.thumbnailUrl;
if (panelInfo.shptmBanrTpNm === "MEDIA") {
res = panelInfo?.thumbnailUrl;
} else {
res = playListInfo?.[selectedIndex]?.thumbnailUrl;
if (!res) {
res = showDetailInfo?.[0]?.thumbnailUrl;
}
}
return res;
}, [showDetailInfo, playListInfo, selectedIndex]);
}, [
showDetailInfo,
playListInfo,
selectedIndex,
panelInfo.thumbnailUrl,
panelInfo.shptmBanrTpNm,
]);
const saveToLocalSettings = useCallback(() => {
if (panelInfo?.shptmBanrTpNm === "VOD") {