[모바일 샌드 팝업] qvc일때 원형으로 짤리는부분 수정
- qvc에서는 border-radius제거. - theme item일때 에러나는부분때문에 옵셔널체이닝 처리.
This commit is contained in:
@@ -4,75 +4,75 @@ import React, {
|
|||||||
useMemo,
|
useMemo,
|
||||||
useRef,
|
useRef,
|
||||||
useState,
|
useState,
|
||||||
} from "react";
|
} from 'react';
|
||||||
|
|
||||||
import classNames from "classnames";
|
import classNames from 'classnames';
|
||||||
import {
|
import {
|
||||||
AsYouTypeFormatter,
|
AsYouTypeFormatter,
|
||||||
PhoneNumberFormat,
|
PhoneNumberFormat,
|
||||||
PhoneNumberUtil,
|
PhoneNumberUtil,
|
||||||
} from "google-libphonenumber";
|
} from 'google-libphonenumber';
|
||||||
import { useDispatch, useSelector } from "react-redux";
|
import { useDispatch, useSelector } from 'react-redux';
|
||||||
|
|
||||||
import { off, on } from "@enact/core/dispatcher";
|
import { off, on } from '@enact/core/dispatcher';
|
||||||
import spotlight, { Spotlight } from "@enact/spotlight";
|
import spotlight, { Spotlight } from '@enact/spotlight';
|
||||||
import { SpotlightContainerDecorator } from "@enact/spotlight/SpotlightContainerDecorator";
|
import { SpotlightContainerDecorator } from '@enact/spotlight/SpotlightContainerDecorator';
|
||||||
import { Spottable } from "@enact/spotlight/Spottable";
|
import { Spottable } from '@enact/spotlight/Spottable';
|
||||||
|
|
||||||
import defaultImage from "../../../assets/images/img-thumb-empty-144@3x.png";
|
import defaultImage from '../../../assets/images/img-thumb-empty-144@3x.png';
|
||||||
import { types } from "../../actions/actionTypes";
|
import { types } from '../../actions/actionTypes';
|
||||||
import { clearSMS, sendSms } from "../../actions/appDataActions";
|
import { clearSMS, sendSms } from '../../actions/appDataActions';
|
||||||
import {
|
import {
|
||||||
changeLocalSettings,
|
changeLocalSettings,
|
||||||
setHidePopup,
|
setHidePopup,
|
||||||
setShowPopup,
|
setShowPopup,
|
||||||
} from "../../actions/commonActions";
|
} from '../../actions/commonActions';
|
||||||
import {
|
import {
|
||||||
clearRegisterDeviceInfo,
|
clearRegisterDeviceInfo,
|
||||||
getDeviceAdditionInfo,
|
getDeviceAdditionInfo,
|
||||||
registerDeviceInfo,
|
registerDeviceInfo,
|
||||||
} from "../../actions/deviceActions";
|
} from '../../actions/deviceActions';
|
||||||
import {
|
import {
|
||||||
clearCurationCoupon,
|
clearCurationCoupon,
|
||||||
setEventIssueReq,
|
setEventIssueReq,
|
||||||
} from "../../actions/eventActions";
|
} from '../../actions/eventActions';
|
||||||
import {
|
import {
|
||||||
sendLogShopByMobile,
|
sendLogShopByMobile,
|
||||||
sendLogTotalRecommend,
|
sendLogTotalRecommend,
|
||||||
} from "../../actions/logActions";
|
} from '../../actions/logActions';
|
||||||
import {
|
import {
|
||||||
ACTIVE_POPUP,
|
ACTIVE_POPUP,
|
||||||
LOG_CONTEXT_NAME,
|
LOG_CONTEXT_NAME,
|
||||||
LOG_MESSAGE_ID,
|
LOG_MESSAGE_ID,
|
||||||
LOG_TP_NO,
|
LOG_TP_NO,
|
||||||
} from "../../utils/Config";
|
} from '../../utils/Config';
|
||||||
import {
|
import {
|
||||||
$L,
|
$L,
|
||||||
decryptPhoneNumber,
|
decryptPhoneNumber,
|
||||||
encryptPhoneNumber,
|
encryptPhoneNumber,
|
||||||
formatLocalDateTime,
|
formatLocalDateTime,
|
||||||
} from "../../utils/helperMethods";
|
} from '../../utils/helperMethods';
|
||||||
import CustomImage from "../CustomImage/CustomImage";
|
import CustomImage from '../CustomImage/CustomImage';
|
||||||
import TButton from "../TButton/TButton";
|
import TButton from '../TButton/TButton';
|
||||||
import TPopUp from "../TPopUp/TPopUp";
|
import TPopUp from '../TPopUp/TPopUp';
|
||||||
import HistoryPhoneNumber from "./HistoryPhoneNumber/HistoryPhoneNumber";
|
import HistoryPhoneNumber from './HistoryPhoneNumber/HistoryPhoneNumber';
|
||||||
import css from "./MobileSendPopUp.module.less";
|
import css from './MobileSendPopUp.module.less';
|
||||||
import PhoneInputSection from "./PhoneInputSection";
|
import PhoneInputSection from './PhoneInputSection';
|
||||||
import SMSNumKeyPad from "./SMSNumKeyPad";
|
import SMSNumKeyPad from './SMSNumKeyPad';
|
||||||
|
|
||||||
const SECRET_KEY = "fy7BTKuM9eeTQqEC9sF3Iw5qG43Aaip";
|
const SECRET_KEY = 'fy7BTKuM9eeTQqEC9sF3Iw5qG43Aaip';
|
||||||
|
|
||||||
const Container = SpotlightContainerDecorator(
|
const Container = SpotlightContainerDecorator(
|
||||||
{ enterTo: "last-focused" },
|
{ enterTo: 'last-focused' },
|
||||||
"div"
|
'div'
|
||||||
);
|
);
|
||||||
|
|
||||||
const InputContainer = SpotlightContainerDecorator(
|
const InputContainer = SpotlightContainerDecorator(
|
||||||
{ enterTo: "last-focused" },
|
{ enterTo: 'last-focused' },
|
||||||
"div"
|
'div'
|
||||||
);
|
);
|
||||||
|
|
||||||
const SpottableComponent = Spottable("div");
|
const SpottableComponent = Spottable('div');
|
||||||
|
|
||||||
export default function MobileSendPopUp({
|
export default function MobileSendPopUp({
|
||||||
open,
|
open,
|
||||||
@@ -116,39 +116,41 @@ export default function MobileSendPopUp({
|
|||||||
const popupVisible = useSelector((state) => state.common.popup.popupVisible);
|
const popupVisible = useSelector((state) => state.common.popup.popupVisible);
|
||||||
const nowMenu = useSelector((state) => state.common.menu.nowMenu);
|
const nowMenu = useSelector((state) => state.common.menu.nowMenu);
|
||||||
const entryMenu = useSelector((state) => state.common.menu.entryMenu);
|
const entryMenu = useSelector((state) => state.common.menu.entryMenu);
|
||||||
|
const partnerNm = useSelector((state) => state.main.productData?.patncNm);
|
||||||
|
|
||||||
const [inputDisabled, setInputDisabled] = useState(true);
|
const [inputDisabled, setInputDisabled] = useState(true);
|
||||||
const [mobileNumber, setMobileNumber] = useState("");
|
const [mobileNumber, setMobileNumber] = useState('');
|
||||||
const [recentSentNumber, setRecentSentNumber] = useState([]);
|
const [recentSentNumber, setRecentSentNumber] = useState([]);
|
||||||
const [keyPadOff, setKeyPadOff] = useState(false);
|
const [keyPadOff, setKeyPadOff] = useState(false);
|
||||||
const [smsRetCode, setSmsRetCode] = useState(undefined);
|
const [smsRetCode, setSmsRetCode] = useState(undefined);
|
||||||
|
|
||||||
const agreeBtnClickedRef = useRef(false);
|
const agreeBtnClickedRef = useRef(false);
|
||||||
|
|
||||||
const deviceCountryCode = httpHeader["X-Device-Country"];
|
const deviceCountryCode = httpHeader['X-Device-Country'];
|
||||||
|
|
||||||
const mobileSendPopUpSpotlightId = useMemo(() => {
|
const mobileSendPopUpSpotlightId = useMemo(() => {
|
||||||
return !keyPadOff && recentSentNumber.length <= 0
|
return !keyPadOff && recentSentNumber.length <= 0
|
||||||
? "keypad-number-1"
|
? 'keypad-number-1'
|
||||||
: "agreeAndSend";
|
: 'agreeAndSend';
|
||||||
}, [keyPadOff, recentSentNumber]);
|
}, [keyPadOff, recentSentNumber]);
|
||||||
|
|
||||||
const getMaxNum = useCallback((_deviceCountryCode) => {
|
const getMaxNum = useCallback((_deviceCountryCode) => {
|
||||||
if (_deviceCountryCode === "DE" || _deviceCountryCode === "GB") {
|
if (_deviceCountryCode === 'DE' || _deviceCountryCode === 'GB') {
|
||||||
return 11;
|
return 11;
|
||||||
} else if (_deviceCountryCode === "KR") {
|
} else if (_deviceCountryCode === 'KR') {
|
||||||
return 12;
|
return 12;
|
||||||
} else return 10;
|
} else return 10;
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const MSG_SUCCESS_SENT = $L("Text Send to") + " " + mobileNumber;
|
const MSG_SUCCESS_SENT = $L('Text Send to') + ' ' + mobileNumber;
|
||||||
const MSG_SEND_LINK = $L("Send a purchase link for this item via SMS");
|
const MSG_SEND_LINK = $L('Send a purchase link for this item via SMS');
|
||||||
|
|
||||||
const handleClickSelect = (_phoneNumber) => {
|
const handleClickSelect = (_phoneNumber) => {
|
||||||
setKeyPadOff((state) => !state);
|
setKeyPadOff((state) => !state);
|
||||||
setMobileNumber(_phoneNumber);
|
setMobileNumber(_phoneNumber);
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
Spotlight.focus("keypad-number-1");
|
Spotlight.focus('keypad-number-1');
|
||||||
}, 0);
|
}, 0);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -161,9 +163,9 @@ export default function MobileSendPopUp({
|
|||||||
|
|
||||||
const getRawPhoneNumber = useCallback(
|
const getRawPhoneNumber = useCallback(
|
||||||
(key) => {
|
(key) => {
|
||||||
let rawPhoneNumber = `${mobileNumber}${key}`.replace(/\D/g, "");
|
let rawPhoneNumber = `${mobileNumber}${key}`.replace(/\D/g, '');
|
||||||
if (rawPhoneNumber.length === getMaxNum(deviceCountryCode)) {
|
if (rawPhoneNumber.length === getMaxNum(deviceCountryCode)) {
|
||||||
Spotlight.focus("agreeAndSend");
|
Spotlight.focus('agreeAndSend');
|
||||||
}
|
}
|
||||||
// 테스트용: 12자리까지 허용
|
// 테스트용: 12자리까지 허용
|
||||||
if (rawPhoneNumber.length > 12) {
|
if (rawPhoneNumber.length > 12) {
|
||||||
@@ -182,11 +184,11 @@ export default function MobileSendPopUp({
|
|||||||
numberProto,
|
numberProto,
|
||||||
PhoneNumberFormat.NATIONAL
|
PhoneNumberFormat.NATIONAL
|
||||||
);
|
);
|
||||||
if (deviceCountryCode === "RU" && rawPhoneNumber.startsWith("8")) {
|
if (deviceCountryCode === 'RU' && rawPhoneNumber.startsWith('8')) {
|
||||||
rawPhoneNumber = rawPhoneNumber.substring(1);
|
rawPhoneNumber = rawPhoneNumber.substring(1);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
let formattedNumber = "";
|
let formattedNumber = '';
|
||||||
|
|
||||||
for (let i = 0; i < rawPhoneNumber.length; i++) {
|
for (let i = 0; i < rawPhoneNumber.length; i++) {
|
||||||
formattedNumber = asYouTypeFormatter.inputDigit(
|
formattedNumber = asYouTypeFormatter.inputDigit(
|
||||||
@@ -206,7 +208,7 @@ export default function MobileSendPopUp({
|
|||||||
);
|
);
|
||||||
|
|
||||||
const getBackspaceRawNumber = useCallback(() => {
|
const getBackspaceRawNumber = useCallback(() => {
|
||||||
let rawPhoneNumber = mobileNumber.replace(/\D/g, "").slice(0, -1);
|
let rawPhoneNumber = mobileNumber.replace(/\D/g, '').slice(0, -1);
|
||||||
const phoneUtil = PhoneNumberUtil.getInstance();
|
const phoneUtil = PhoneNumberUtil.getInstance();
|
||||||
const asYouTypeFormatter = new AsYouTypeFormatter(deviceCountryCode);
|
const asYouTypeFormatter = new AsYouTypeFormatter(deviceCountryCode);
|
||||||
|
|
||||||
@@ -221,7 +223,7 @@ export default function MobileSendPopUp({
|
|||||||
PhoneNumberFormat.NATIONAL
|
PhoneNumberFormat.NATIONAL
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
let formattedNumber = "";
|
let formattedNumber = '';
|
||||||
|
|
||||||
for (let i = 0; i < rawPhoneNumber.length; i++) {
|
for (let i = 0; i < rawPhoneNumber.length; i++) {
|
||||||
formattedNumber = asYouTypeFormatter.inputDigit(
|
formattedNumber = asYouTypeFormatter.inputDigit(
|
||||||
@@ -242,7 +244,7 @@ export default function MobileSendPopUp({
|
|||||||
(ev) => {
|
(ev) => {
|
||||||
if (ev && ev.key >= 0 && ev.key <= 9) {
|
if (ev && ev.key >= 0 && ev.key <= 9) {
|
||||||
getRawPhoneNumber(ev.key);
|
getRawPhoneNumber(ev.key);
|
||||||
} else if (ev.key === "Backspace") {
|
} else if (ev.key === 'Backspace') {
|
||||||
getBackspaceRawNumber();
|
getBackspaceRawNumber();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -250,9 +252,9 @@ export default function MobileSendPopUp({
|
|||||||
);
|
);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
on("keydown", handleKeydown);
|
on('keydown', handleKeydown);
|
||||||
return () => {
|
return () => {
|
||||||
off("keydown", handleKeydown);
|
off('keydown', handleKeydown);
|
||||||
};
|
};
|
||||||
}, [handleKeydown]);
|
}, [handleKeydown]);
|
||||||
|
|
||||||
@@ -264,7 +266,7 @@ export default function MobileSendPopUp({
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const timer = setTimeout(() =>
|
const timer = setTimeout(() =>
|
||||||
setInputDisabled(mobileSendPopUpSpotlightId === "keypad-number-1")
|
setInputDisabled(mobileSendPopUpSpotlightId === 'keypad-number-1')
|
||||||
);
|
);
|
||||||
|
|
||||||
return () => clearTimeout(timer);
|
return () => clearTimeout(timer);
|
||||||
@@ -277,16 +279,16 @@ export default function MobileSendPopUp({
|
|||||||
setMobileNumber(recentSentNumber[0]);
|
setMobileNumber(recentSentNumber[0]);
|
||||||
} else {
|
} else {
|
||||||
setKeyPadOff(false);
|
setKeyPadOff(false);
|
||||||
setMobileNumber("");
|
setMobileNumber('');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, [recentSentNumber]);
|
}, [recentSentNumber]);
|
||||||
|
|
||||||
const numKeypadClicked = useCallback(
|
const numKeypadClicked = useCallback(
|
||||||
(key) => {
|
(key) => {
|
||||||
if (key === "clear") {
|
if (key === 'clear') {
|
||||||
setMobileNumber("");
|
setMobileNumber('');
|
||||||
} else if (key == "backspace") {
|
} else if (key == 'backspace') {
|
||||||
getBackspaceRawNumber();
|
getBackspaceRawNumber();
|
||||||
} else {
|
} else {
|
||||||
getRawPhoneNumber(key);
|
getRawPhoneNumber(key);
|
||||||
@@ -315,7 +317,7 @@ export default function MobileSendPopUp({
|
|||||||
};
|
};
|
||||||
|
|
||||||
const handleAgreeSendClick = useCallback(() => {
|
const handleAgreeSendClick = useCallback(() => {
|
||||||
let naturalNumber = mobileNumber.replace(/\D/g, "");
|
let naturalNumber = mobileNumber.replace(/\D/g, '');
|
||||||
|
|
||||||
// 테스트용: 길이 체크를 더 유연하게 (10자리 또는 11자리 허용)
|
// 테스트용: 길이 체크를 더 유연하게 (10자리 또는 11자리 허용)
|
||||||
if (
|
if (
|
||||||
@@ -327,8 +329,8 @@ export default function MobileSendPopUp({
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (deviceCountryCode === "KR") {
|
if (deviceCountryCode === 'KR') {
|
||||||
naturalNumber = "82" + naturalNumber;
|
naturalNumber = '82' + naturalNumber;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (recentSentNumber && recentSentNumber.length > 0) {
|
if (recentSentNumber && recentSentNumber.length > 0) {
|
||||||
@@ -394,22 +396,22 @@ export default function MobileSendPopUp({
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 호텔일 경우 날려야 하는 경우
|
// 호텔일 경우 날려야 하는 경우
|
||||||
if (smsTpCd === "APP00205") {
|
if (smsTpCd === 'APP00205') {
|
||||||
params = { ...params, hotelId, hotelNm, hotelDtlUrl, curationId };
|
params = { ...params, hotelId, hotelNm, hotelDtlUrl, curationId };
|
||||||
}
|
}
|
||||||
if (smsTpCd === "APP00204") {
|
if (smsTpCd === 'APP00204') {
|
||||||
params = { ...params, curationId };
|
params = { ...params, curationId };
|
||||||
}
|
}
|
||||||
dispatch(sendSms(params));
|
dispatch(sendSms(params));
|
||||||
}
|
}
|
||||||
// EVT00101 & APP00207(welcome) EVT00103 & APP00209 (welcome+Prizes) : smsTpCd 값을 받지 않음
|
// EVT00101 & APP00207(welcome) EVT00103 & APP00209 (welcome+Prizes) : smsTpCd 값을 받지 않음
|
||||||
if (evntTpCd === "EVT00101" || evntTpCd === "EVT00103") {
|
if (evntTpCd === 'EVT00101' || evntTpCd === 'EVT00103') {
|
||||||
dispatch(
|
dispatch(
|
||||||
registerDeviceInfo({
|
registerDeviceInfo({
|
||||||
evntTpCd,
|
evntTpCd,
|
||||||
evntId,
|
evntId,
|
||||||
evntApplcnFlag: "Y",
|
evntApplcnFlag: 'Y',
|
||||||
entryMenu: "TermsPop",
|
entryMenu: 'TermsPop',
|
||||||
mbphNo: naturalNumber,
|
mbphNo: naturalNumber,
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
@@ -434,7 +436,7 @@ export default function MobileSendPopUp({
|
|||||||
onClose();
|
onClose();
|
||||||
dispatch(setShowPopup(ACTIVE_POPUP.smsPopup));
|
dispatch(setShowPopup(ACTIVE_POPUP.smsPopup));
|
||||||
|
|
||||||
setTimeout(() => Spotlight.focus("agreeAndSend"));
|
setTimeout(() => Spotlight.focus('agreeAndSend'));
|
||||||
},
|
},
|
||||||
[dispatch, smsRetCode]
|
[dispatch, smsRetCode]
|
||||||
);
|
);
|
||||||
@@ -450,7 +452,7 @@ export default function MobileSendPopUp({
|
|||||||
curationCouponSuccess === 0
|
curationCouponSuccess === 0
|
||||||
) {
|
) {
|
||||||
const logParams = {
|
const logParams = {
|
||||||
status: "send",
|
status: 'send',
|
||||||
nowMenu: nowMenu,
|
nowMenu: nowMenu,
|
||||||
partner: patncNm ?? shopByMobileLogRef?.current?.patncNm,
|
partner: patncNm ?? shopByMobileLogRef?.current?.patncNm,
|
||||||
productId: prdtId ?? shopByMobileLogRef?.current?.prdtId,
|
productId: prdtId ?? shopByMobileLogRef?.current?.prdtId,
|
||||||
@@ -465,8 +467,8 @@ export default function MobileSendPopUp({
|
|||||||
...shopByMobileLogRef.current,
|
...shopByMobileLogRef.current,
|
||||||
locDt: formatLocalDateTime(new Date()),
|
locDt: formatLocalDateTime(new Date()),
|
||||||
logTpNo: LOG_TP_NO.SHOP_BY_MOBILE.AGREE_AND_SEND,
|
logTpNo: LOG_TP_NO.SHOP_BY_MOBILE.AGREE_AND_SEND,
|
||||||
mbphNoFlag: "Y",
|
mbphNoFlag: 'Y',
|
||||||
trmsAgrFlag: "Y",
|
trmsAgrFlag: 'Y',
|
||||||
};
|
};
|
||||||
|
|
||||||
dispatch(sendLogShopByMobile(params));
|
dispatch(sendLogShopByMobile(params));
|
||||||
@@ -497,24 +499,24 @@ export default function MobileSendPopUp({
|
|||||||
}, [dispatch]);
|
}, [dispatch]);
|
||||||
|
|
||||||
const getSmsErrorMsg = useMemo(() => {
|
const getSmsErrorMsg = useMemo(() => {
|
||||||
const SMS_ERROR_502 = $L("The event information has not been registered");
|
const SMS_ERROR_502 = $L('The event information has not been registered');
|
||||||
const SMS_ERROR_903 = $L("You have exceeded the daily text limit.");
|
const SMS_ERROR_903 = $L('You have exceeded the daily text limit.');
|
||||||
const SMS_ERROR_904 = $L(
|
const SMS_ERROR_904 = $L(
|
||||||
"You have exceeded the text limit for this product."
|
'You have exceeded the text limit for this product.'
|
||||||
);
|
);
|
||||||
const SMS_ERROR_905 = $L(
|
const SMS_ERROR_905 = $L(
|
||||||
"This number is currently blocked. To receive a message, please send UNSTOP to the number below. 07860 064195"
|
'This number is currently blocked. To receive a message, please send UNSTOP to the number below. 07860 064195'
|
||||||
);
|
);
|
||||||
const SMS_ERROR_906 = $L("Sorry. This item is sold out.");
|
const SMS_ERROR_906 = $L('Sorry. This item is sold out.');
|
||||||
const SMS_ERROR_600 = $L("This device had received first time coupon.");
|
const SMS_ERROR_600 = $L('This device had received first time coupon.');
|
||||||
const SMS_ERROR_601 = $L("There is no coupon.");
|
const SMS_ERROR_601 = $L('There is no coupon.');
|
||||||
const SMS_ERROR_900 = $L("Failed to send text to {mobileNumber}").replace(
|
const SMS_ERROR_900 = $L('Failed to send text to {mobileNumber}').replace(
|
||||||
"{mobileNumber}",
|
'{mobileNumber}',
|
||||||
mobileNumber
|
mobileNumber
|
||||||
);
|
);
|
||||||
const SMS_ERROR_907 = $L(
|
const SMS_ERROR_907 = $L(
|
||||||
"Only {length} digits is permitted. Please check again"
|
'Only {length} digits is permitted. Please check again'
|
||||||
).replace("{length}", getMaxNum(deviceCountryCode));
|
).replace('{length}', getMaxNum(deviceCountryCode));
|
||||||
|
|
||||||
switch (smsRetCode) {
|
switch (smsRetCode) {
|
||||||
case 502:
|
case 502:
|
||||||
@@ -542,12 +544,12 @@ export default function MobileSendPopUp({
|
|||||||
|
|
||||||
const getEvntErrorMsg = useMemo(() => {
|
const getEvntErrorMsg = useMemo(() => {
|
||||||
if (curationCouponSuccess === 600) {
|
if (curationCouponSuccess === 600) {
|
||||||
return $L("This device had received first time coupon.");
|
return $L('This device had received first time coupon.');
|
||||||
} else if (curationCouponSuccess === 601) {
|
} else if (curationCouponSuccess === 601) {
|
||||||
return $L("There is no coupon.");
|
return $L('There is no coupon.');
|
||||||
} else {
|
} else {
|
||||||
return $L("Failed to sent text to {mobileNumber}").replace(
|
return $L('Failed to sent text to {mobileNumber}').replace(
|
||||||
"{mobileNumber}",
|
'{mobileNumber}',
|
||||||
mobileNumber
|
mobileNumber
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -571,7 +573,7 @@ export default function MobileSendPopUp({
|
|||||||
regDeviceInfoRetCode === undefined &&
|
regDeviceInfoRetCode === undefined &&
|
||||||
curationCouponSuccess === undefined && (
|
curationCouponSuccess === undefined && (
|
||||||
<TPopUp
|
<TPopUp
|
||||||
kind={"mobileSendPopup"}
|
kind={'mobileSendPopup'}
|
||||||
className={css.container}
|
className={css.container}
|
||||||
open={open}
|
open={open}
|
||||||
onClose={onClose}
|
onClose={onClose}
|
||||||
@@ -602,7 +604,10 @@ export default function MobileSendPopUp({
|
|||||||
<div className={css.headerTopRow}>
|
<div className={css.headerTopRow}>
|
||||||
{brandLogo && (
|
{brandLogo && (
|
||||||
<img
|
<img
|
||||||
className={css.headerTopRow__brandLogo}
|
className={classNames(
|
||||||
|
css.headerTopRow__brandLogo,
|
||||||
|
partnerNm === 'QVC' && css.headerTopRow__brandLogo__qvc
|
||||||
|
)}
|
||||||
src={brandLogo}
|
src={brandLogo}
|
||||||
alt="Brand"
|
alt="Brand"
|
||||||
/>
|
/>
|
||||||
@@ -639,8 +644,8 @@ export default function MobileSendPopUp({
|
|||||||
onClick={handleInputClick}
|
onClick={handleInputClick}
|
||||||
spotlightDisabled={inputDisabled}
|
spotlightDisabled={inputDisabled}
|
||||||
>
|
>
|
||||||
{deviceCountryCode && deviceCountryCode === "RU" && (
|
{deviceCountryCode && deviceCountryCode === 'RU' && (
|
||||||
<span className={css.rucInput}>{"+7 "}</span>
|
<span className={css.rucInput}>{'+7 '}</span>
|
||||||
)}
|
)}
|
||||||
<span>{mobileNumber}</span>
|
<span>{mobileNumber}</span>
|
||||||
</SpottableComponent>
|
</SpottableComponent>
|
||||||
@@ -662,10 +667,10 @@ export default function MobileSendPopUp({
|
|||||||
<span
|
<span
|
||||||
dangerouslySetInnerHTML={{
|
dangerouslySetInnerHTML={{
|
||||||
__html: `${$L(
|
__html: `${$L(
|
||||||
"By clicking Agree and Send button, I agree that LGE may collect and store my cell phone number to send text messages as I requested, for data analysis and for feature-enhancement purposes. By entering my cell phone number, I agree to receive messages from LGE with information on how to purchase the product I selected. Message and data rates may apply."
|
'By clicking Agree and Send button, I agree that LGE may collect and store my cell phone number to send text messages as I requested, for data analysis and for feature-enhancement purposes. By entering my cell phone number, I agree to receive messages from LGE with information on how to purchase the product I selected. Message and data rates may apply.'
|
||||||
)}`,
|
)}`,
|
||||||
}}
|
}}
|
||||||
className={deviceCountryCode === "RU" && css.instructionRu}
|
className={deviceCountryCode === 'RU' && css.instructionRu}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
@@ -698,11 +703,11 @@ export default function MobileSendPopUp({
|
|||||||
<Container className={css.container__btnContainer}>
|
<Container className={css.container__btnContainer}>
|
||||||
<TButton
|
<TButton
|
||||||
onClick={handleAgreeSendClick}
|
onClick={handleAgreeSendClick}
|
||||||
spotlightId={"agreeAndSend"}
|
spotlightId={'agreeAndSend'}
|
||||||
>
|
>
|
||||||
{$L("Agree and Send")}
|
{$L('Agree and Send')}
|
||||||
</TButton>
|
</TButton>
|
||||||
<TButton onClick={onClose}>{$L("Cancel")}</TButton>
|
<TButton onClick={onClose}>{$L('Cancel')}</TButton>
|
||||||
</Container>
|
</Container>
|
||||||
</TPopUp>
|
</TPopUp>
|
||||||
)}
|
)}
|
||||||
@@ -714,7 +719,7 @@ export default function MobileSendPopUp({
|
|||||||
text={smsTpCd ? getSmsErrorMsg : getEvntErrorMsg}
|
text={smsTpCd ? getSmsErrorMsg : getEvntErrorMsg}
|
||||||
onClick={_onClose}
|
onClick={_onClose}
|
||||||
hasButton
|
hasButton
|
||||||
button1Text={$L("OK")}
|
button1Text={$L('OK')}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
{(smsRetCode === 0 ||
|
{(smsRetCode === 0 ||
|
||||||
@@ -727,7 +732,7 @@ export default function MobileSendPopUp({
|
|||||||
text={MSG_SUCCESS_SENT}
|
text={MSG_SUCCESS_SENT}
|
||||||
onClick={onClose}
|
onClick={onClose}
|
||||||
hasButton
|
hasButton
|
||||||
button1Text={$L("OK")}
|
button1Text={$L('OK')}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
</>
|
</>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
@import "../../style/CommonStyle.module.less";
|
@import '../../style/CommonStyle.module.less';
|
||||||
@import "../../style/utils.module.less";
|
@import '../../style/utils.module.less';
|
||||||
|
|
||||||
/* 🆕 [NEW] Figma 디자인용 타이틀 헤드 스타일 */
|
/* 🆕 [NEW] Figma 디자인용 타이틀 헤드 스타일 */
|
||||||
.titleHead {
|
.titleHead {
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
text-align: left; // center → left
|
text-align: left; // center → left
|
||||||
color: black;
|
color: black;
|
||||||
font-size: 32px;
|
font-size: 32px;
|
||||||
font-family: "LG Smart UI";
|
font-family: 'LG Smart UI';
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
line-height: 42px;
|
line-height: 42px;
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
@@ -32,12 +32,15 @@
|
|||||||
height: 50px;
|
height: 50px;
|
||||||
margin-right: 15px; // TV 호환: gap 대신 margin 사용
|
margin-right: 15px; // TV 호환: gap 대신 margin 사용
|
||||||
border-radius: 100%;
|
border-radius: 100%;
|
||||||
|
&.headerTopRow__brandLogo__qvc {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.headerTopRow__productId {
|
.headerTopRow__productId {
|
||||||
color: #808080;
|
color: #808080;
|
||||||
font-size: 24px;
|
font-size: 24px;
|
||||||
font-family: "LG Smart UI";
|
font-family: 'LG Smart UI';
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
line-height: 18px;
|
line-height: 18px;
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
@@ -57,7 +60,7 @@
|
|||||||
top: 0;
|
top: 0;
|
||||||
z-index: 0;
|
z-index: 0;
|
||||||
|
|
||||||
content: "";
|
content: '';
|
||||||
}
|
}
|
||||||
display: flex;
|
display: flex;
|
||||||
> .container__header__productImg,
|
> .container__header__productImg,
|
||||||
@@ -178,7 +181,7 @@
|
|||||||
.flex {
|
.flex {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
flex-wrap:wrap;
|
flex-wrap: wrap;
|
||||||
}
|
}
|
||||||
.instruction {
|
.instruction {
|
||||||
width: 492.5px; // 고정 너비
|
width: 492.5px; // 고정 너비
|
||||||
|
|||||||
Reference in New Issue
Block a user