[전체] userInfo -> userNumber 변경 /
reducer appStatus.loginUserData 구조 변경
This commit is contained in:
@@ -1,36 +1,53 @@
|
|||||||
import React, { useCallback, useEffect, useState } from "react";
|
import React, {
|
||||||
|
useCallback,
|
||||||
|
useEffect,
|
||||||
|
useState,
|
||||||
|
} from 'react';
|
||||||
|
|
||||||
import { useDispatch, useSelector } from "react-redux";
|
import {
|
||||||
|
useDispatch,
|
||||||
|
useSelector,
|
||||||
|
} from 'react-redux';
|
||||||
|
|
||||||
import platform from "@enact/core/platform";
|
import platform from '@enact/core/platform';
|
||||||
import ThemeDecorator from "@enact/sandstone/ThemeDecorator";
|
import ThemeDecorator from '@enact/sandstone/ThemeDecorator';
|
||||||
|
|
||||||
import appinfo from "../../webos-meta/appinfo.json";
|
import appinfo from '../../webos-meta/appinfo.json';
|
||||||
import {
|
import {
|
||||||
changeAppStatus,
|
changeAppStatus,
|
||||||
getDeviceId,
|
getDeviceId,
|
||||||
getHttpHeaderForServiceRequest,
|
getHttpHeaderForServiceRequest,
|
||||||
getSystemSettings,
|
getSystemSettings,
|
||||||
setExitApp,
|
setExitApp,
|
||||||
} from "../actions/commonActions";
|
} from '../actions/commonActions';
|
||||||
import { getHomeMenu, getHomeTerms } from "../actions/homeActions";
|
import {
|
||||||
|
getHomeMenu,
|
||||||
|
getHomeTerms,
|
||||||
|
} from '../actions/homeActions';
|
||||||
import {
|
import {
|
||||||
getMyRecommandedKeyword,
|
getMyRecommandedKeyword,
|
||||||
getMyUpcomingAlertShow,
|
getMyUpcomingAlertShow,
|
||||||
setMyTermsWithdraw,
|
setMyTermsWithdraw,
|
||||||
} from "../actions/myPageActions";
|
} from '../actions/myPageActions';
|
||||||
import { pushPanel } from "../actions/panelActions";
|
import { pushPanel } from '../actions/panelActions';
|
||||||
import { countryCode, ricCode } from "../api/apiConfig";
|
import {
|
||||||
import TPopUp from "../components/TPopUp/TPopUp";
|
countryCode,
|
||||||
import usePrevious from "../hooks/usePrevious";
|
ricCode,
|
||||||
import { logoutAccount } from "../lunaSend";
|
} from '../api/apiConfig';
|
||||||
import { checkValidCountry } from "../lunaSend/common";
|
import TPopUp from '../components/TPopUp/TPopUp';
|
||||||
import { lunaTest } from "../lunaSend/lunaTest";
|
import usePrevious from '../hooks/usePrevious';
|
||||||
import * as Config from "../utils/Config";
|
import { logoutAccount } from '../lunaSend';
|
||||||
import { $L, clearLaunchParams, getLaunchParams } from "../utils/helperMethods";
|
import { checkValidCountry } from '../lunaSend/common';
|
||||||
import MainView from "../views/MainView/MainView";
|
import { lunaTest } from '../lunaSend/lunaTest';
|
||||||
import css from "./App.module.less";
|
import * as Config from '../utils/Config';
|
||||||
import { handleDeepLink } from "./deepLinkHandler";
|
import {
|
||||||
|
$L,
|
||||||
|
clearLaunchParams,
|
||||||
|
getLaunchParams,
|
||||||
|
} from '../utils/helperMethods';
|
||||||
|
import MainView from '../views/MainView/MainView';
|
||||||
|
import css from './App.module.less';
|
||||||
|
import { handleDeepLink } from './deepLinkHandler';
|
||||||
|
|
||||||
let foreGroundChangeTimer = null;
|
let foreGroundChangeTimer = null;
|
||||||
|
|
||||||
@@ -188,7 +205,7 @@ function AppBase(props) {
|
|||||||
);
|
);
|
||||||
dispatch(
|
dispatch(
|
||||||
getHomeTerms({
|
getHomeTerms({
|
||||||
mbrNo: appStatus.loginUserData.userInfo,
|
mbrNo: appStatus.loginUserData.userNumber,
|
||||||
trmsTpCdList: "MST00401, MST00402",
|
trmsTpCdList: "MST00401, MST00402",
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -155,4 +155,7 @@ export const types = {
|
|||||||
"GET_MY_INFO_ORDER_CANCEL_COLUMNS_SEARCH",
|
"GET_MY_INFO_ORDER_CANCEL_COLUMNS_SEARCH",
|
||||||
UPDATE_ORDER_PARTIAL_CANCEL: "UPDATE_ORDER_PARTIAL_CANCEL",
|
UPDATE_ORDER_PARTIAL_CANCEL: "UPDATE_ORDER_PARTIAL_CANCEL",
|
||||||
PAYMENT_TOTAL_CANCEL: "PAYMENT_TOTAL_CANCEL",
|
PAYMENT_TOTAL_CANCEL: "PAYMENT_TOTAL_CANCEL",
|
||||||
|
|
||||||
|
// emp actions
|
||||||
|
GET_SHOPTIME_TERMS: "GET_SHOPTIME_TERMS",
|
||||||
};
|
};
|
||||||
|
|||||||
30
com.twin.app.shoptime/src/actions/empActions.js
Normal file
30
com.twin.app.shoptime/src/actions/empActions.js
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
import { URLS } from '../api/apiConfig';
|
||||||
|
import { TAxios } from '../api/TAxios';
|
||||||
|
import { types } from './actionTypes';
|
||||||
|
|
||||||
|
// IF-LGSPM-373 EMP Shoptime 선택 약관 조회
|
||||||
|
export const getShoptimeTerms = () => (dispatch, getState) => {
|
||||||
|
const onSuccess = (response) => {
|
||||||
|
console.log("getShoptimeTerms onSuccess ", response.data);
|
||||||
|
|
||||||
|
dispatch({
|
||||||
|
type: types.GET_SHOPTIME_TERMS,
|
||||||
|
payload: response.data.data,
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const onFail = (error) => {
|
||||||
|
console.error("getShoptimeTerms onFail ", error);
|
||||||
|
};
|
||||||
|
|
||||||
|
TAxios(
|
||||||
|
dispatch,
|
||||||
|
getState,
|
||||||
|
"get",
|
||||||
|
URLS.GET_SHOPTIME_TERMS,
|
||||||
|
{},
|
||||||
|
{},
|
||||||
|
onSuccess,
|
||||||
|
onFail
|
||||||
|
);
|
||||||
|
};
|
||||||
@@ -125,6 +125,9 @@ export const URLS = {
|
|||||||
UPDATE_ORDER_PARTIAL_CANCEL: "/lgsp/v1/myinfo/order/orderPartialCancel.lge",
|
UPDATE_ORDER_PARTIAL_CANCEL: "/lgsp/v1/myinfo/order/orderPartialCancel.lge",
|
||||||
PAYMENT_TOTAL_CANCEL: "/lgsp/v1/myinfo/order/paymentTotalCancel.lge",
|
PAYMENT_TOTAL_CANCEL: "/lgsp/v1/myinfo/order/paymentTotalCancel.lge",
|
||||||
|
|
||||||
|
// emp controller
|
||||||
|
GET_SHOPTIME_TERMS: "/lgsp/m/v1/emp/shoptime/terms.lge",
|
||||||
|
|
||||||
// IF-LGSP-LOG-001 log live controller
|
// IF-LGSP-LOG-001 log live controller
|
||||||
LOG_LIVE: "/lgsp/v1/log/live.lge",
|
LOG_LIVE: "/lgsp/v1/log/live.lge",
|
||||||
|
|
||||||
|
|||||||
@@ -4,41 +4,50 @@ import React, {
|
|||||||
useMemo,
|
useMemo,
|
||||||
useRef,
|
useRef,
|
||||||
useState,
|
useState,
|
||||||
} from "react";
|
} from 'react';
|
||||||
|
|
||||||
import classNames from "classnames";
|
import classNames from 'classnames';
|
||||||
import { useDispatch, useSelector } from "react-redux";
|
import {
|
||||||
|
useDispatch,
|
||||||
|
useSelector,
|
||||||
|
} from 'react-redux';
|
||||||
|
|
||||||
//아이콘
|
//아이콘
|
||||||
import { Job } from "@enact/core/util";
|
import { Job } from '@enact/core/util';
|
||||||
//enact
|
//enact
|
||||||
import Skinnable from "@enact/sandstone/Skinnable";
|
import Skinnable from '@enact/sandstone/Skinnable';
|
||||||
import Spotlight from "@enact/spotlight";
|
import Spotlight from '@enact/spotlight';
|
||||||
import SpotlightContainerDecorator from "@enact/spotlight/SpotlightContainerDecorator";
|
import SpotlightContainerDecorator
|
||||||
import { Cancelable } from "@enact/ui/Cancelable";
|
from '@enact/spotlight/SpotlightContainerDecorator';
|
||||||
|
import { Cancelable } from '@enact/ui/Cancelable';
|
||||||
|
|
||||||
//이미지
|
//이미지
|
||||||
import shoptimeFullIcon from "../../../assets/images/icons/ic-lnb-logo-shoptime@3x.png";
|
import shoptimeFullIcon
|
||||||
import { gnbOpened } from "../../actions/commonActions";
|
from '../../../assets/images/icons/ic-lnb-logo-shoptime@3x.png';
|
||||||
import { updateSpotlightId } from "../../actions/homeActions";
|
import { gnbOpened } from '../../actions/commonActions';
|
||||||
import { resetPanels } from "../../actions/panelActions";
|
import { updateSpotlightId } from '../../actions/homeActions';
|
||||||
import useLogService from "../../hooks/useLogService";
|
import { resetPanels } from '../../actions/panelActions';
|
||||||
import useScrollTo from "../../hooks/useScrollTo";
|
import useLogService from '../../hooks/useLogService';
|
||||||
import { LOG_MENU, LOG_TP_NO, panel_names } from "../../utils/Config";
|
import useScrollTo from '../../hooks/useScrollTo';
|
||||||
import { formatGMTString } from "../../utils/helperMethods";
|
import {
|
||||||
import { SpotlightIds } from "../../utils/SpotlightIds";
|
LOG_MENU,
|
||||||
import TScroller from "../TScroller/TScroller";
|
LOG_TP_NO,
|
||||||
import CategoryIcon from "./iconComponents/CategoryIcon";
|
panel_names,
|
||||||
import FeaturedBrandIcon from "./iconComponents/FeaturedBrandIcon";
|
} from '../../utils/Config';
|
||||||
import HomeIcon from "./iconComponents/HomeIcon";
|
import { formatGMTString } from '../../utils/helperMethods';
|
||||||
import HotPicksIcon from "./iconComponents/HotPicksIcon";
|
import { SpotlightIds } from '../../utils/SpotlightIds';
|
||||||
import MyPageIcon from "./iconComponents/MyPageIcon";
|
import TScroller from '../TScroller/TScroller';
|
||||||
import OnSaleIcon from "./iconComponents/OnSaleIcon";
|
import CategoryIcon from './iconComponents/CategoryIcon';
|
||||||
import SearchIcon from "./iconComponents/SearchIcon";
|
import FeaturedBrandIcon from './iconComponents/FeaturedBrandIcon';
|
||||||
import TrendingNowIcon from "./iconComponents/TrendingNowIcon";
|
import HomeIcon from './iconComponents/HomeIcon';
|
||||||
import TabItem from "./TabItem";
|
import HotPicksIcon from './iconComponents/HotPicksIcon';
|
||||||
import TabItemSub from "./TabItemSub";
|
import MyPageIcon from './iconComponents/MyPageIcon';
|
||||||
import css from "./TabLayout.module.less";
|
import OnSaleIcon from './iconComponents/OnSaleIcon';
|
||||||
|
import SearchIcon from './iconComponents/SearchIcon';
|
||||||
|
import TrendingNowIcon from './iconComponents/TrendingNowIcon';
|
||||||
|
import TabItem from './TabItem';
|
||||||
|
import TabItemSub from './TabItemSub';
|
||||||
|
import css from './TabLayout.module.less';
|
||||||
|
|
||||||
const Container = SpotlightContainerDecorator(
|
const Container = SpotlightContainerDecorator(
|
||||||
{ enterTo: "default-element", preserveId: true },
|
{ enterTo: "default-element", preserveId: true },
|
||||||
@@ -257,7 +266,7 @@ export default function TabLayout({ topPanelName, onTabActivated, panelInfo }) {
|
|||||||
],
|
],
|
||||||
}))
|
}))
|
||||||
.filter((item) => {
|
.filter((item) => {
|
||||||
if (loginUserData.userInfo === null) {
|
if (loginUserData.userNumber === null) {
|
||||||
return item.title !== "My Orders";
|
return item.title !== "My Orders";
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -74,44 +74,43 @@ export const getLoginUserData = (
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
onSuccess({
|
onSuccess({
|
||||||
"subscribed": false,
|
subscribed: false,
|
||||||
"returnValue": true,
|
returnValue: true,
|
||||||
"multipleLoginUserData": [
|
multipleLoginUserData: [],
|
||||||
],
|
id: "twin@t-win.kr",
|
||||||
"id": "twin@t-win.kr",
|
inactiveID: "",
|
||||||
"inactiveID": "",
|
lastSignInUserNo: "US2210240095608",
|
||||||
"lastSignInUserNo": "US2210240095608",
|
userData: {
|
||||||
"userData": {
|
sdpUserNumber: "80995804",
|
||||||
"sdpUserNumber": "80995804",
|
needToSetNickname: false,
|
||||||
"needToSetNickname": false,
|
adultAuthStatus: "needAge",
|
||||||
"adultAuthStatus": "needAge",
|
serverId: "twin@t-win.kr",
|
||||||
"serverId": "twin@t-win.kr",
|
countryCode: "US",
|
||||||
"countryCode": "US",
|
userNumber: "US2210240095608",
|
||||||
"userNumber": "US2210240095608",
|
defaultNick: false,
|
||||||
"defaultNick": false,
|
isRequiredTerm: false,
|
||||||
"isRequiredTerm": false,
|
id: "twin@t-win.kr",
|
||||||
"id": "twin@t-win.kr",
|
userID: "twin@t-win.kr",
|
||||||
"userID": "twin@t-win.kr",
|
serviceList: [
|
||||||
"serviceList": [
|
{
|
||||||
{
|
svcName: "LG Smart World(TV)",
|
||||||
"svcName": "LG Smart World(TV)",
|
svcCode: "SVC301",
|
||||||
"svcCode": "SVC301",
|
joinDate: "02-13-2024",
|
||||||
"joinDate": "02-13-2024",
|
isService: "Y",
|
||||||
"isService": "Y"
|
},
|
||||||
},
|
{
|
||||||
{
|
svcName: "MC OAuth",
|
||||||
"svcName": "MC OAuth",
|
svcCode: "SVC710",
|
||||||
"svcCode": "SVC710",
|
joinDate: "02-13-2024",
|
||||||
"joinDate": "02-13-2024",
|
isService: "Y",
|
||||||
"isService": "Y"
|
},
|
||||||
}
|
],
|
||||||
],
|
profileNick: "LGEUSER0",
|
||||||
"profileNick": "LGEUSER0",
|
iconNick: "L",
|
||||||
"iconNick": "L",
|
needToCheckTerms: false,
|
||||||
"needToCheckTerms": false,
|
accountType: "LGE",
|
||||||
"accountType": "LGE",
|
profileBg: "#7360E7",
|
||||||
"profileBg": "#7360E7"
|
},
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -136,7 +135,7 @@ export const logoutAccount = (
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
onSuccess({
|
onSuccess({
|
||||||
useId: null,
|
userId: null,
|
||||||
userInfo: null,
|
userInfo: null,
|
||||||
email: null,
|
email: null,
|
||||||
returnValue: true,
|
returnValue: true,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { types } from "../actions/actionTypes";
|
import { types } from '../actions/actionTypes';
|
||||||
|
|
||||||
const initialState = {
|
const initialState = {
|
||||||
appStatus: {
|
appStatus: {
|
||||||
@@ -12,7 +12,7 @@ const initialState = {
|
|||||||
loginUserData: {},
|
loginUserData: {},
|
||||||
toast: false,
|
toast: false,
|
||||||
toastText: null,
|
toastText: null,
|
||||||
captionEnable: false
|
captionEnable: false,
|
||||||
},
|
},
|
||||||
httpHeader: null,
|
httpHeader: null,
|
||||||
isGnbOpened: false,
|
isGnbOpened: false,
|
||||||
@@ -78,13 +78,15 @@ export const commonReducer = (state = initialState, action) => {
|
|||||||
...state,
|
...state,
|
||||||
httpHeader: action.payload,
|
httpHeader: action.payload,
|
||||||
};
|
};
|
||||||
case types.GET_LOGIN_USER_DATA:{
|
|
||||||
const userInfo = action.payload?.userData?.userNumber ? action.payload.userData.userNumber: action.payload?.userInfo;
|
case types.GET_LOGIN_USER_DATA: {
|
||||||
|
const userData = action.payload?.userData;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...state,
|
...state,
|
||||||
appStatus: {
|
appStatus: {
|
||||||
...state.appStatus,
|
...state.appStatus,
|
||||||
loginUserData: {userInfo},
|
loginUserData: { ...userData },
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
18
com.twin.app.shoptime/src/reducers/empReducer.js
Normal file
18
com.twin.app.shoptime/src/reducers/empReducer.js
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
import { types } from '../actions/actionTypes';
|
||||||
|
|
||||||
|
const initialState = {
|
||||||
|
empTermsData: {},
|
||||||
|
};
|
||||||
|
|
||||||
|
export const empReducer = (state = initialState, action) => {
|
||||||
|
switch (action.type) {
|
||||||
|
case types.GET_SHOPTIME_TERMS:
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
empTermsData: action.payload,
|
||||||
|
};
|
||||||
|
|
||||||
|
default:
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -14,6 +14,7 @@ import {
|
|||||||
getTaxInfos,
|
getTaxInfos,
|
||||||
} from '../../actions/checkoutActions';
|
} from '../../actions/checkoutActions';
|
||||||
import { changeAppStatus } from '../../actions/commonActions';
|
import { changeAppStatus } from '../../actions/commonActions';
|
||||||
|
import { getShoptimeTerms } from '../../actions/empActions';
|
||||||
import { popPanel } from '../../actions/panelActions';
|
import { popPanel } from '../../actions/panelActions';
|
||||||
import TBody from '../../components/TBody/TBody';
|
import TBody from '../../components/TBody/TBody';
|
||||||
import THeader from '../../components/THeader/THeader';
|
import THeader from '../../components/THeader/THeader';
|
||||||
@@ -31,7 +32,7 @@ import SummaryContainer from './container/SummaryCotainer';
|
|||||||
export default function CheckOutPanel() {
|
export default function CheckOutPanel() {
|
||||||
const dispatch = useDispatch();
|
const dispatch = useDispatch();
|
||||||
const panels = useSelector((state) => state.panels.panels);
|
const panels = useSelector((state) => state.panels.panels);
|
||||||
const { userInfo } = useSelector(
|
const { userNumber } = useSelector(
|
||||||
(state) => state.common.appStatus.loginUserData
|
(state) => state.common.appStatus.loginUserData
|
||||||
);
|
);
|
||||||
const checkoutPanelInfo = panels.find(
|
const checkoutPanelInfo = panels.find(
|
||||||
@@ -46,13 +47,12 @@ export default function CheckOutPanel() {
|
|||||||
const [orderSideBarOpen, setOrderSideBarOpen] = useState(false);
|
const [orderSideBarOpen, setOrderSideBarOpen] = useState(false);
|
||||||
const [offerSideBarOpen, setOfferSideBarOpen] = useState(false);
|
const [offerSideBarOpen, setOfferSideBarOpen] = useState(false);
|
||||||
|
|
||||||
console.log("chw", infoForCheckoutData);
|
|
||||||
console.log("chw", productData);
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
dispatch(getShoptimeTerms());
|
||||||
|
|
||||||
dispatch(
|
dispatch(
|
||||||
getMyInfoCheckoutInfo({
|
getMyInfoCheckoutInfo({
|
||||||
mbrNo: userInfo,
|
mbrNo: userNumber,
|
||||||
dirPurcSelYn: "Y",
|
dirPurcSelYn: "Y",
|
||||||
cartList: [
|
cartList: [
|
||||||
{
|
{
|
||||||
@@ -69,7 +69,7 @@ export default function CheckOutPanel() {
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
dispatch(
|
dispatch(
|
||||||
getTaxInfos({
|
getTaxInfos({
|
||||||
mbrNo: userInfo,
|
mbrNo: userNumber,
|
||||||
bilAddrSno: infoForCheckoutData?.bilAddrSno,
|
bilAddrSno: infoForCheckoutData?.bilAddrSno,
|
||||||
dlvrAddrSno: infoForCheckoutData?.dlvrAddrSno,
|
dlvrAddrSno: infoForCheckoutData?.dlvrAddrSno,
|
||||||
reqCheckoutTaxInfoItemList: [
|
reqCheckoutTaxInfoItemList: [
|
||||||
@@ -114,7 +114,7 @@ export default function CheckOutPanel() {
|
|||||||
onClick={onBackClick}
|
onClick={onBackClick}
|
||||||
/>
|
/>
|
||||||
<div className={css.Wrap}>
|
<div className={css.Wrap}>
|
||||||
<SummaryContainer userInfo={userInfo} />
|
<SummaryContainer userInfo={userNumber} />
|
||||||
<InformationContainer
|
<InformationContainer
|
||||||
toggleOrderSideBar={toggleOrderSideBar}
|
toggleOrderSideBar={toggleOrderSideBar}
|
||||||
toggleOfferSideBar={toggleOfferSideBar}
|
toggleOfferSideBar={toggleOfferSideBar}
|
||||||
|
|||||||
@@ -28,10 +28,6 @@ export default function FixedSideBar({ closeSideBar }) {
|
|||||||
</div>
|
</div>
|
||||||
<div className={css.sideCoupon}>
|
<div className={css.sideCoupon}>
|
||||||
<div className={css.right}>COUPON</div>
|
<div className={css.right}>COUPON</div>
|
||||||
<div className={css.left}>
|
|
||||||
{$L("Maximum Benefit")}
|
|
||||||
<TCheckBox onToggle={true} />
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className={classNames(css.sideItemList, css.hasCoupon)}>
|
<div className={classNames(css.sideItemList, css.hasCoupon)}>
|
||||||
|
|||||||
@@ -19,8 +19,6 @@ export default function OrderItemsSideBar({ closeSideBar }) {
|
|||||||
(state) => state.checkout?.checkoutData?.productList
|
(state) => state.checkout?.checkoutData?.productList
|
||||||
);
|
);
|
||||||
|
|
||||||
console.log("chw", orderItemList);
|
|
||||||
|
|
||||||
const renderItem = useCallback(
|
const renderItem = useCallback(
|
||||||
({ index, ...rest }) => {
|
({ index, ...rest }) => {
|
||||||
const item = orderItemList[index];
|
const item = orderItemList[index];
|
||||||
|
|||||||
@@ -26,6 +26,17 @@ const Container = SpotlightContainerDecorator(
|
|||||||
"div"
|
"div"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const DEFAULT_SUMMARY = {
|
||||||
|
itemPrice: "0",
|
||||||
|
shPrice: "0",
|
||||||
|
couponPrice: "0",
|
||||||
|
itemsTotal: "0",
|
||||||
|
taxTotal: "0",
|
||||||
|
itemsTaxTotal: "0",
|
||||||
|
currSign: "",
|
||||||
|
currSignLoc: "",
|
||||||
|
};
|
||||||
|
|
||||||
export default function SummaryContainer({ userInfo }) {
|
export default function SummaryContainer({ userInfo }) {
|
||||||
const dispatch = useDispatch();
|
const dispatch = useDispatch();
|
||||||
|
|
||||||
@@ -33,11 +44,9 @@ export default function SummaryContainer({ userInfo }) {
|
|||||||
const termsData = useSelector((state) => state.home.termsData);
|
const termsData = useSelector((state) => state.home.termsData);
|
||||||
const taxInfosData = useSelector((state) => state.checkout?.taxInfosData);
|
const taxInfosData = useSelector((state) => state.checkout?.taxInfosData);
|
||||||
|
|
||||||
console.log("chw", taxInfosData);
|
|
||||||
|
|
||||||
const checkoutTermsData = useMemo(
|
const checkoutTermsData = useMemo(
|
||||||
() =>
|
() =>
|
||||||
termsData?.data?.terms
|
(termsData?.data?.terms || [])
|
||||||
.filter(
|
.filter(
|
||||||
(item) => item.trmsTpCd === "MST00403" || item.trmsTpCd === "MST00404"
|
(item) => item.trmsTpCd === "MST00403" || item.trmsTpCd === "MST00404"
|
||||||
)
|
)
|
||||||
@@ -51,20 +60,11 @@ export default function SummaryContainer({ userInfo }) {
|
|||||||
[termsData]
|
[termsData]
|
||||||
);
|
);
|
||||||
|
|
||||||
const [summary, setSummary] = useState({
|
const [summary, setSummary] = useState(DEFAULT_SUMMARY);
|
||||||
itemPrice: "0",
|
|
||||||
shPrice: "0",
|
|
||||||
couponPrice: "0",
|
|
||||||
itemsTotal: "0",
|
|
||||||
taxTotal: "0",
|
|
||||||
itemsTaxTotal: "0",
|
|
||||||
currSign: "",
|
|
||||||
currSignLoc: "",
|
|
||||||
});
|
|
||||||
|
|
||||||
const itemSetting = useCallback(
|
const itemSetting = useCallback(
|
||||||
(productList) => {
|
(productList) => {
|
||||||
if (!productList || productList.length === 0) return;
|
if (!productList?.length) return;
|
||||||
|
|
||||||
let itemCnt = 0; // 상품 함계
|
let itemCnt = 0; // 상품 함계
|
||||||
let shCnt = 0; // 배송비 합계
|
let shCnt = 0; // 배송비 합계
|
||||||
@@ -77,10 +77,9 @@ export default function SummaryContainer({ userInfo }) {
|
|||||||
productList.forEach((info) => {
|
productList.forEach((info) => {
|
||||||
const itemPrice = info.price3 || info.price2;
|
const itemPrice = info.price3 || info.price2;
|
||||||
itemCnt += itemPrice * parseInt(info.prodQty, 10);
|
itemCnt += itemPrice * parseInt(info.prodQty, 10);
|
||||||
|
|
||||||
shCnt += parseFloat(info.shippingCharge || 0);
|
shCnt += parseFloat(info.shippingCharge || 0);
|
||||||
|
|
||||||
if (info.prdtCoupon && info.prdtCoupon.length > 0) {
|
if (info.prdtCoupon?.length) {
|
||||||
couponCnt += info.prdtCoupon.reduce(
|
couponCnt += info.prdtCoupon.reduce(
|
||||||
(acc, coupon) => acc + parseFloat(coupon.discountAmount || 0),
|
(acc, coupon) => acc + parseFloat(coupon.discountAmount || 0),
|
||||||
0
|
0
|
||||||
@@ -88,19 +87,8 @@ export default function SummaryContainer({ userInfo }) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (
|
shCnt = taxInfosData.totDlvrAmt ?? shCnt;
|
||||||
taxInfosData.totDlvrAmt !== null &&
|
taxCnt = taxInfosData.billing?.taxTotAmt ?? taxCnt;
|
||||||
taxInfosData.totDlvrAmt !== undefined
|
|
||||||
) {
|
|
||||||
shCnt = taxInfosData.totDlvrAmt;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (
|
|
||||||
taxInfosData.billing?.taxTotAmt !== null &&
|
|
||||||
taxInfosData.billing?.taxTotAmt !== undefined
|
|
||||||
) {
|
|
||||||
taxCnt = taxInfosData.billing.taxTotAmt;
|
|
||||||
}
|
|
||||||
|
|
||||||
itemsTotal = itemCnt + shCnt;
|
itemsTotal = itemCnt + shCnt;
|
||||||
itemsTaxTotal = itemsTotal + taxCnt;
|
itemsTaxTotal = itemsTotal + taxCnt;
|
||||||
@@ -118,14 +106,12 @@ export default function SummaryContainer({ userInfo }) {
|
|||||||
currSign: productList[0]?.currSign || "",
|
currSign: productList[0]?.currSign || "",
|
||||||
currSignLoc: productList[0]?.currSignLoc || "",
|
currSignLoc: productList[0]?.currSignLoc || "",
|
||||||
}));
|
}));
|
||||||
|
|
||||||
console.log("chw", summary);
|
|
||||||
},
|
},
|
||||||
[taxInfosData]
|
[taxInfosData]
|
||||||
);
|
);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (productList && productList.length > 0) {
|
if (productList?.length) {
|
||||||
itemSetting(productList);
|
itemSetting(productList);
|
||||||
}
|
}
|
||||||
}, [productList, itemSetting]);
|
}, [productList, itemSetting]);
|
||||||
|
|||||||
@@ -1,30 +1,43 @@
|
|||||||
import React, { useCallback, useEffect, useRef, useState } from "react";
|
import React, {
|
||||||
|
useCallback,
|
||||||
|
useEffect,
|
||||||
|
useRef,
|
||||||
|
useState,
|
||||||
|
} from 'react';
|
||||||
|
|
||||||
import classNames from "classnames";
|
import classNames from 'classnames';
|
||||||
import { useDispatch, useSelector } from "react-redux";
|
import {
|
||||||
|
useDispatch,
|
||||||
|
useSelector,
|
||||||
|
} from 'react-redux';
|
||||||
|
|
||||||
import Spotlight from "@enact/spotlight";
|
import Spotlight from '@enact/spotlight';
|
||||||
import SpotlightContainerDecorator from "@enact/spotlight/SpotlightContainerDecorator";
|
import SpotlightContainerDecorator
|
||||||
import Spottable from "@enact/spotlight/Spottable";
|
from '@enact/spotlight/SpotlightContainerDecorator';
|
||||||
|
import Spottable from '@enact/spotlight/Spottable';
|
||||||
|
|
||||||
import { setHidePopup, setShowPopup } from "../../../actions/commonActions";
|
import {
|
||||||
|
setHidePopup,
|
||||||
|
setShowPopup,
|
||||||
|
} from '../../../actions/commonActions';
|
||||||
import {
|
import {
|
||||||
getProductCouponDownload,
|
getProductCouponDownload,
|
||||||
getProductCouponSearch,
|
getProductCouponSearch,
|
||||||
getProductCouponTotDownload,
|
getProductCouponTotDownload,
|
||||||
} from "../../../actions/couponActions";
|
} from '../../../actions/couponActions';
|
||||||
import { pushPanel } from "../../../actions/panelActions";
|
import { pushPanel } from '../../../actions/panelActions';
|
||||||
import { getProductOption } from "../../../actions/productActions";
|
import { getProductOption } from '../../../actions/productActions';
|
||||||
import TButton from "../../../components/TButton/TButton";
|
import TButton from '../../../components/TButton/TButton';
|
||||||
import TPopUp from "../../../components/TPopUp/TPopUp";
|
import TPopUp from '../../../components/TPopUp/TPopUp';
|
||||||
import TQRCode from "../../../components/TQRCode/TQRCode";
|
import TQRCode from '../../../components/TQRCode/TQRCode';
|
||||||
import TScroller from "../../../components/TScroller/TScroller";
|
import TScroller from '../../../components/TScroller/TScroller';
|
||||||
import TVirtualGridList from "../../../components/TVirtualGridList/TVirtualGridList";
|
import TVirtualGridList
|
||||||
import usePriceInfo from "../../../hooks/usePriceInfo";
|
from '../../../components/TVirtualGridList/TVirtualGridList';
|
||||||
import * as Config from "../../../utils/Config";
|
import usePriceInfo from '../../../hooks/usePriceInfo';
|
||||||
import { $L } from "../../../utils/helperMethods";
|
import * as Config from '../../../utils/Config';
|
||||||
import FavoriteBtn from "../components/FavoriteBtn";
|
import { $L } from '../../../utils/helperMethods';
|
||||||
import css from "./SingleOption.module.less";
|
import FavoriteBtn from '../components/FavoriteBtn';
|
||||||
|
import css from './SingleOption.module.less';
|
||||||
|
|
||||||
const Container = SpotlightContainerDecorator(
|
const Container = SpotlightContainerDecorator(
|
||||||
{ enterTo: "default-element" },
|
{ enterTo: "default-element" },
|
||||||
@@ -50,7 +63,7 @@ export default function SingleOption({
|
|||||||
const { popupVisible, activePopup } = useSelector(
|
const { popupVisible, activePopup } = useSelector(
|
||||||
(state) => state.common.popup
|
(state) => state.common.popup
|
||||||
);
|
);
|
||||||
const { userInfo } = useSelector(
|
const { userNumber } = useSelector(
|
||||||
(state) => state.common.appStatus.loginUserData
|
(state) => state.common.appStatus.loginUserData
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -96,7 +109,7 @@ export default function SingleOption({
|
|||||||
getProductCouponSearch({
|
getProductCouponSearch({
|
||||||
patnrId: selectedPatnrId,
|
patnrId: selectedPatnrId,
|
||||||
prdtId: selectedPrdtId,
|
prdtId: selectedPrdtId,
|
||||||
mbrNo: userInfo,
|
mbrNo: userNumber,
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
}, [dispatch, selectedPatnrId, selectedPrdtId, productData]);
|
}, [dispatch, selectedPatnrId, selectedPrdtId, productData]);
|
||||||
@@ -167,7 +180,7 @@ export default function SingleOption({
|
|||||||
}, [activePopup, selectedBtnOptIdx, selectedOptionItemIndex]);
|
}, [activePopup, selectedBtnOptIdx, selectedOptionItemIndex]);
|
||||||
|
|
||||||
const handleLoginPopup = useCallback(() => {
|
const handleLoginPopup = useCallback(() => {
|
||||||
if (!loginUserData.userInfo) {
|
if (!loginUserData.userNumber) {
|
||||||
dispatch(setShowPopup(Config.ACTIVE_POPUP.loginPopup));
|
dispatch(setShowPopup(Config.ACTIVE_POPUP.loginPopup));
|
||||||
} else {
|
} else {
|
||||||
dispatch(
|
dispatch(
|
||||||
@@ -188,7 +201,7 @@ export default function SingleOption({
|
|||||||
|
|
||||||
const handleCouponClick = useCallback(
|
const handleCouponClick = useCallback(
|
||||||
(idx, promotion) => {
|
(idx, promotion) => {
|
||||||
if (!loginUserData.userInfo) {
|
if (!loginUserData.userNumber) {
|
||||||
dispatch(setShowPopup(Config.ACTIVE_POPUP.loginPopup));
|
dispatch(setShowPopup(Config.ACTIVE_POPUP.loginPopup));
|
||||||
return;
|
return;
|
||||||
} else if (promotion === "SPECIAL PROMOTION") {
|
} else if (promotion === "SPECIAL PROMOTION") {
|
||||||
@@ -203,17 +216,20 @@ export default function SingleOption({
|
|||||||
);
|
);
|
||||||
|
|
||||||
const handleCouponTotDownload = useCallback(() => {
|
const handleCouponTotDownload = useCallback(() => {
|
||||||
if (selectedCoupon && userInfo) {
|
if (selectedCoupon && userNumber) {
|
||||||
const couponCodesArray = couponCodes
|
const couponCodesArray = couponCodes
|
||||||
.split(",")
|
.split(",")
|
||||||
.map((code) => parseInt(code.trim()));
|
.map((code) => parseInt(code.trim()));
|
||||||
setDownloadCouponArr((prevArr) => [...prevArr, ...couponCodesArray]);
|
setDownloadCouponArr((prevArr) => [...prevArr, ...couponCodesArray]);
|
||||||
|
|
||||||
dispatch(
|
dispatch(
|
||||||
getProductCouponTotDownload({ mbrNo: userInfo, cpnSnoAll: couponCodes })
|
getProductCouponTotDownload({
|
||||||
|
mbrNo: userNumber,
|
||||||
|
cpnSnoAll: couponCodes,
|
||||||
|
})
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}, [dispatch, selectedCoupon, userInfo, couponCodes]);
|
}, [dispatch, selectedCoupon, userNumber, couponCodes]);
|
||||||
|
|
||||||
const onClose = useCallback(() => {
|
const onClose = useCallback(() => {
|
||||||
Spotlight.focus("tbody");
|
Spotlight.focus("tbody");
|
||||||
@@ -320,7 +336,9 @@ export default function SingleOption({
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
setDownloadCouponArr((prevArr) => [...prevArr, cpnSno]);
|
setDownloadCouponArr((prevArr) => [...prevArr, cpnSno]);
|
||||||
dispatch(getProductCouponDownload({ mbrNo: userInfo, cpnSno: cpnSno }));
|
dispatch(
|
||||||
|
getProductCouponDownload({ mbrNo: userNumber, cpnSno: cpnSno })
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -1,14 +1,24 @@
|
|||||||
import React, { useCallback, useEffect, useState } from "react";
|
import React, {
|
||||||
|
useCallback,
|
||||||
|
useEffect,
|
||||||
|
useState,
|
||||||
|
} from 'react';
|
||||||
|
|
||||||
import { useDispatch, useSelector } from "react-redux";
|
import {
|
||||||
|
useDispatch,
|
||||||
|
useSelector,
|
||||||
|
} from 'react-redux';
|
||||||
|
|
||||||
import { setHidePopup, setShowPopup } from "../../../actions/commonActions";
|
import {
|
||||||
import { getEventIssuedStaus } from "../../../actions/eventActions";
|
setHidePopup,
|
||||||
import MobileSendPopUp from "../../../components/MobileSend/MobileSendPopUp";
|
setShowPopup,
|
||||||
import TPopUp from "../../../components/TPopUp/TPopUp";
|
} from '../../../actions/commonActions';
|
||||||
import { ACTIVE_POPUP } from "../../../utils/Config";
|
import { getEventIssuedStaus } from '../../../actions/eventActions';
|
||||||
import { $L } from "../../../utils/helperMethods";
|
import MobileSendPopUp from '../../../components/MobileSend/MobileSendPopUp';
|
||||||
import css from "../EventPopUpBanner/EventPopUpBanner.module.less";
|
import TPopUp from '../../../components/TPopUp/TPopUp';
|
||||||
|
import { ACTIVE_POPUP } from '../../../utils/Config';
|
||||||
|
import { $L } from '../../../utils/helperMethods';
|
||||||
|
import css from '../EventPopUpBanner/EventPopUpBanner.module.less';
|
||||||
|
|
||||||
export default function EventPopUpBanner({ open = true }) {
|
export default function EventPopUpBanner({ open = true }) {
|
||||||
const dispatch = useDispatch();
|
const dispatch = useDispatch();
|
||||||
@@ -51,7 +61,7 @@ export default function EventPopUpBanner({ open = true }) {
|
|||||||
|
|
||||||
case "EVT00106":
|
case "EVT00106":
|
||||||
console.log("Direct Coupon");
|
console.log("Direct Coupon");
|
||||||
if (!loginUserData.userInfo) {
|
if (!loginUserData.userNumber) {
|
||||||
dispatch(setShowPopup(ACTIVE_POPUP.loginPopup));
|
dispatch(setShowPopup(ACTIVE_POPUP.loginPopup));
|
||||||
} else {
|
} else {
|
||||||
console.log("Direct Coupon");
|
console.log("Direct Coupon");
|
||||||
|
|||||||
@@ -1,45 +1,57 @@
|
|||||||
import React, { useCallback, useEffect, useRef, useState } from "react";
|
import React, {
|
||||||
|
useCallback,
|
||||||
|
useEffect,
|
||||||
|
useRef,
|
||||||
|
useState,
|
||||||
|
} from 'react';
|
||||||
|
|
||||||
import classNames from "classnames";
|
import classNames from 'classnames';
|
||||||
import { useDispatch, useSelector } from "react-redux";
|
import {
|
||||||
|
useDispatch,
|
||||||
|
useSelector,
|
||||||
|
} from 'react-redux';
|
||||||
|
|
||||||
import { Job } from "@enact/core/util";
|
import { Job } from '@enact/core/util';
|
||||||
import Spotlight from "@enact/spotlight";
|
import Spotlight from '@enact/spotlight';
|
||||||
import SpotlightContainerDecorator from "@enact/spotlight/SpotlightContainerDecorator";
|
import SpotlightContainerDecorator
|
||||||
import Spottable from "@enact/spotlight/Spottable";
|
from '@enact/spotlight/SpotlightContainerDecorator';
|
||||||
|
import Spottable from '@enact/spotlight/Spottable';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
alertToast,
|
alertToast,
|
||||||
setHidePopup,
|
setHidePopup,
|
||||||
setShowPopup,
|
setShowPopup,
|
||||||
} from "../../actions/commonActions";
|
} from '../../actions/commonActions';
|
||||||
import { getProductCouponDownload } from "../../actions/couponActions";
|
import { getProductCouponDownload } from '../../actions/couponActions';
|
||||||
import { getThemeCurationInfo } from "../../actions/homeActions";
|
import { getThemeCurationInfo } from '../../actions/homeActions';
|
||||||
import {
|
import {
|
||||||
pushPanel,
|
pushPanel,
|
||||||
resetPanels,
|
resetPanels,
|
||||||
updatePanel,
|
updatePanel,
|
||||||
} from "../../actions/panelActions";
|
} from '../../actions/panelActions';
|
||||||
import { startVideoPlayer } from "../../actions/playActions";
|
import { startVideoPlayer } from '../../actions/playActions';
|
||||||
import MobileSendPopUp from "../../components/MobileSend/MobileSendPopUp";
|
import MobileSendPopUp from '../../components/MobileSend/MobileSendPopUp';
|
||||||
import TBody from "../../components/TBody/TBody";
|
import TBody from '../../components/TBody/TBody';
|
||||||
import TPanel from "../../components/TPanel/TPanel";
|
import TPanel from '../../components/TPanel/TPanel';
|
||||||
import useLogService from "../../hooks/useLogService";
|
import useLogService from '../../hooks/useLogService';
|
||||||
import usePrevious from "../../hooks/usePrevious";
|
import usePrevious from '../../hooks/usePrevious';
|
||||||
import useScrollTo from "../../hooks/useScrollTo";
|
import useScrollTo from '../../hooks/useScrollTo';
|
||||||
import * as Config from "../../utils/Config";
|
import * as Config from '../../utils/Config';
|
||||||
import { LOG_TP_NO, panel_names } from "../../utils/Config";
|
import {
|
||||||
import { $L } from "../../utils/helperMethods";
|
LOG_TP_NO,
|
||||||
import css from "./HotPicks.module.less";
|
panel_names,
|
||||||
import TCFI from "./Type/TCFI/TCFI";
|
} from '../../utils/Config';
|
||||||
import TCFI_2 from "./Type/TCFI_2/TCFI_2";
|
import { $L } from '../../utils/helperMethods';
|
||||||
import TCFI_3 from "./Type/TCFI_3/TCFI_3";
|
import css from './HotPicks.module.less';
|
||||||
import TCFI_4 from "./Type/TCFI_4/TCFI_4";
|
import TCFI from './Type/TCFI/TCFI';
|
||||||
import TCFV from "./Type/TCFV/TCFV";
|
import TCFI_2 from './Type/TCFI_2/TCFI_2';
|
||||||
import TCFV_2 from "./Type/TCFV_2/TCFV_2";
|
import TCFI_3 from './Type/TCFI_3/TCFI_3';
|
||||||
import TCFV_3 from "./Type/TCFV_3/TCFV_3";
|
import TCFI_4 from './Type/TCFI_4/TCFI_4';
|
||||||
import TCFV_4 from "./Type/TCFV_4/TCFV_4";
|
import TCFV from './Type/TCFV/TCFV';
|
||||||
import TCHH from "./Type/TCHH/TCHH";
|
import TCFV_2 from './Type/TCFV_2/TCFV_2';
|
||||||
|
import TCFV_3 from './Type/TCFV_3/TCFV_3';
|
||||||
|
import TCFV_4 from './Type/TCFV_4/TCFV_4';
|
||||||
|
import TCHH from './Type/TCHH/TCHH';
|
||||||
|
|
||||||
const SpottableComponent = Spottable("button");
|
const SpottableComponent = Spottable("button");
|
||||||
|
|
||||||
@@ -65,8 +77,8 @@ export default function HotPicksPanel({ panelInfo }) {
|
|||||||
const { popupVisible, activePopup } = useSelector(
|
const { popupVisible, activePopup } = useSelector(
|
||||||
(state) => state.common.popup
|
(state) => state.common.popup
|
||||||
);
|
);
|
||||||
const userInfo = useSelector(
|
const userNumber = useSelector(
|
||||||
(state) => state.common?.appStatus.loginUserData.userInfo
|
(state) => state.common?.appStatus.loginUserData.userNumber
|
||||||
);
|
);
|
||||||
|
|
||||||
const [movingPage, setMovingPage] = useState(false);
|
const [movingPage, setMovingPage] = useState(false);
|
||||||
@@ -219,7 +231,7 @@ export default function HotPicksPanel({ panelInfo }) {
|
|||||||
if (evntTpCd === "EVT00107") {
|
if (evntTpCd === "EVT00107") {
|
||||||
dispatch(
|
dispatch(
|
||||||
getProductCouponDownload({
|
getProductCouponDownload({
|
||||||
mbrNo: userInfo,
|
mbrNo: userNumber,
|
||||||
cpnSno: eventInfoV2.billCpnSno,
|
cpnSno: eventInfoV2.billCpnSno,
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,37 +1,52 @@
|
|||||||
import React, { useCallback, useEffect, useRef, useState } from "react";
|
import React, {
|
||||||
|
useCallback,
|
||||||
|
useEffect,
|
||||||
|
useRef,
|
||||||
|
useState,
|
||||||
|
} from 'react';
|
||||||
|
|
||||||
import { useDispatch, useSelector } from "react-redux";
|
import {
|
||||||
|
useDispatch,
|
||||||
|
useSelector,
|
||||||
|
} from 'react-redux';
|
||||||
|
|
||||||
import Spotlight from "@enact/spotlight";
|
import Spotlight from '@enact/spotlight';
|
||||||
import SpotlightContainerDecorator from "@enact/spotlight/SpotlightContainerDecorator";
|
import SpotlightContainerDecorator
|
||||||
|
from '@enact/spotlight/SpotlightContainerDecorator';
|
||||||
|
|
||||||
import ic_profile from "../../../../../assets/images/icons/ic-profile.svg";
|
import ic_profile from '../../../../../assets/images/icons/ic-profile.svg';
|
||||||
import myinfo_login from "../../../../../assets/images/img-banner-myinfo-login@3x.png";
|
import myinfo_login
|
||||||
import { getMyInfoBillingSearch } from "../../../../actions/billingActions";
|
from '../../../../../assets/images/img-banner-myinfo-login@3x.png';
|
||||||
import { getMyInfoCardSearch } from "../../../../actions/cardActions";
|
import { getMyInfoBillingSearch } from '../../../../actions/billingActions';
|
||||||
|
import { getMyInfoCardSearch } from '../../../../actions/cardActions';
|
||||||
import {
|
import {
|
||||||
launchMembershipApp,
|
launchMembershipApp,
|
||||||
logoutAccount,
|
logoutAccount,
|
||||||
setHidePopup,
|
setHidePopup,
|
||||||
setShowPopup,
|
setShowPopup,
|
||||||
} from "../../../../actions/commonActions";
|
} from '../../../../actions/commonActions';
|
||||||
import { getProductCouponInfo } from "../../../../actions/couponActions";
|
import { getProductCouponInfo } from '../../../../actions/couponActions';
|
||||||
import { getMyInfoShippingSearch } from "../../../../actions/shippingActions";
|
import { getMyInfoShippingSearch } from '../../../../actions/shippingActions';
|
||||||
import TBody from "../../../../components/TBody/TBody";
|
import TBody from '../../../../components/TBody/TBody';
|
||||||
import TButton, { SIZES, TYPES } from "../../../../components/TButton/TButton";
|
import TButton, {
|
||||||
|
SIZES,
|
||||||
|
TYPES,
|
||||||
|
} from '../../../../components/TButton/TButton';
|
||||||
import TButtonTab, {
|
import TButtonTab, {
|
||||||
LIST_TYPE,
|
LIST_TYPE,
|
||||||
} from "../../../../components/TButtonTab/TButtonTab";
|
} from '../../../../components/TButtonTab/TButtonTab';
|
||||||
import THeader from "../../../../components/THeader/THeader";
|
import THeader from '../../../../components/THeader/THeader';
|
||||||
import TPopUp from "../../../../components/TPopUp/TPopUp";
|
import TPopUp from '../../../../components/TPopUp/TPopUp';
|
||||||
import TQRCode from "../../../../components/TQRCode/TQRCode";
|
import TQRCode from '../../../../components/TQRCode/TQRCode';
|
||||||
import * as Config from "../../../../utils/Config";
|
import * as Config from '../../../../utils/Config';
|
||||||
import { $L } from "../../../../utils/helperMethods";
|
import { $L } from '../../../../utils/helperMethods';
|
||||||
import css from "../MyInfo/MyInfo.module.less";
|
import css from '../MyInfo/MyInfo.module.less';
|
||||||
import BillingAddressTab from "./MyInfoTabContents/BillingAddressTab/BillingAddressTab";
|
import BillingAddressTab
|
||||||
import CouponTab from "./MyInfoTabContents/CouponTab/CouponTab";
|
from './MyInfoTabContents/BillingAddressTab/BillingAddressTab';
|
||||||
import PaymentTab from "./MyInfoTabContents/PaymentTab/PaymentTab";
|
import CouponTab from './MyInfoTabContents/CouponTab/CouponTab';
|
||||||
import ShippingAddressTab from "./MyInfoTabContents/ShippingAddressTab/ShippingAddressTab";
|
import PaymentTab from './MyInfoTabContents/PaymentTab/PaymentTab';
|
||||||
|
import ShippingAddressTab
|
||||||
|
from './MyInfoTabContents/ShippingAddressTab/ShippingAddressTab';
|
||||||
|
|
||||||
const TabContainer = SpotlightContainerDecorator(
|
const TabContainer = SpotlightContainerDecorator(
|
||||||
{ enterTo: "last-focused" },
|
{ enterTo: "last-focused" },
|
||||||
@@ -63,7 +78,7 @@ export default function MyInfo({ title, cbScrollTo }) {
|
|||||||
|
|
||||||
const dispatch = useDispatch();
|
const dispatch = useDispatch();
|
||||||
|
|
||||||
const { userId, userInfo, email } = useSelector(
|
const { id, userNumber, userID } = useSelector(
|
||||||
(state) => state.common.appStatus.loginUserData
|
(state) => state.common.appStatus.loginUserData
|
||||||
);
|
);
|
||||||
const { popupVisible, activePopup } = useSelector(
|
const { popupVisible, activePopup } = useSelector(
|
||||||
@@ -97,13 +112,13 @@ export default function MyInfo({ title, cbScrollTo }) {
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setTab(panelInfos.panelInfo.menuOrd ? panelInfos.panelInfo.menuOrd : 0);
|
setTab(panelInfos.panelInfo.menuOrd ? panelInfos.panelInfo.menuOrd : 0);
|
||||||
|
|
||||||
if (userInfo) {
|
if (userNumber) {
|
||||||
dispatch(getMyInfoCardSearch({ mbrNo: userInfo }));
|
dispatch(getMyInfoCardSearch({ mbrNo: userNumber }));
|
||||||
dispatch(getMyInfoBillingSearch({ mbrNo: userInfo }));
|
dispatch(getMyInfoBillingSearch({ mbrNo: userNumber }));
|
||||||
dispatch(getMyInfoShippingSearch({ mbrNo: userInfo }));
|
dispatch(getMyInfoShippingSearch({ mbrNo: userNumber }));
|
||||||
dispatch(getProductCouponInfo({ mbrNo: userInfo }));
|
dispatch(getProductCouponInfo({ mbrNo: userNumber }));
|
||||||
}
|
}
|
||||||
}, [userInfo, dispatch, panelInfos]);
|
}, [userNumber, dispatch, panelInfos]);
|
||||||
|
|
||||||
const handleItemClick = useCallback(
|
const handleItemClick = useCallback(
|
||||||
({ index }) => {
|
({ index }) => {
|
||||||
@@ -115,7 +130,7 @@ export default function MyInfo({ title, cbScrollTo }) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (userInfo) {
|
if (userNumber) {
|
||||||
const initFoucsedItem = document.querySelector(
|
const initFoucsedItem = document.querySelector(
|
||||||
'[data-spotlight-id="tab-0"]'
|
'[data-spotlight-id="tab-0"]'
|
||||||
);
|
);
|
||||||
@@ -128,7 +143,7 @@ export default function MyInfo({ title, cbScrollTo }) {
|
|||||||
Spotlight.focus("mypage-login-button");
|
Spotlight.focus("mypage-login-button");
|
||||||
}, 0);
|
}, 0);
|
||||||
}
|
}
|
||||||
}, [userInfo]);
|
}, [userNumber]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
return () => {
|
return () => {
|
||||||
@@ -171,17 +186,17 @@ export default function MyInfo({ title, cbScrollTo }) {
|
|||||||
<div className={css.infoTopBox}>
|
<div className={css.infoTopBox}>
|
||||||
<img src={ic_profile} className={css.profileImg} />
|
<img src={ic_profile} className={css.profileImg} />
|
||||||
<div className={css.textBox}>
|
<div className={css.textBox}>
|
||||||
{userInfo
|
{userNumber
|
||||||
? $L("Hi, {userId}").replace("{userId}", userId)
|
? $L("Hi, {userId}").replace("{userId}", id)
|
||||||
: $L("Please log in to use your LG Shoptime.")}
|
: $L("Please log in to use your LG Shoptime.")}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className={css.infoBottomBox}>
|
<div className={css.infoBottomBox}>
|
||||||
<div className={css.emailBox}>
|
<div className={css.emailBox}>
|
||||||
<div className={css.email}>Email</div>
|
<div className={css.email}>Email</div>
|
||||||
<div className={css.email}>{userInfo ? email : "-"}</div>
|
<div className={css.email}>{userNumber ? userID : "-"}</div>
|
||||||
</div>
|
</div>
|
||||||
{userInfo ? (
|
{userNumber ? (
|
||||||
<TButton
|
<TButton
|
||||||
type={TYPES.normal}
|
type={TYPES.normal}
|
||||||
className={css.logoutButton}
|
className={css.logoutButton}
|
||||||
@@ -201,7 +216,7 @@ export default function MyInfo({ title, cbScrollTo }) {
|
|||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{userInfo ? (
|
{userNumber ? (
|
||||||
<>
|
<>
|
||||||
{buttonTabList && buttonTabList.length > 0 && (
|
{buttonTabList && buttonTabList.length > 0 && (
|
||||||
<TabContainer className={css.tabContainer}>
|
<TabContainer className={css.tabContainer}>
|
||||||
|
|||||||
@@ -1,10 +1,19 @@
|
|||||||
import React, { useCallback, useEffect, useRef, useState } from "react";
|
import React, {
|
||||||
|
useCallback,
|
||||||
|
useEffect,
|
||||||
|
useRef,
|
||||||
|
useState,
|
||||||
|
} from 'react';
|
||||||
|
|
||||||
import classNames from "classnames";
|
import classNames from 'classnames';
|
||||||
import { useDispatch, useSelector } from "react-redux";
|
import {
|
||||||
|
useDispatch,
|
||||||
|
useSelector,
|
||||||
|
} from 'react-redux';
|
||||||
|
|
||||||
import Spotlight from "@enact/spotlight";
|
import Spotlight from '@enact/spotlight';
|
||||||
import SpotlightContainerDecorator from "@enact/spotlight/SpotlightContainerDecorator";
|
import SpotlightContainerDecorator
|
||||||
|
from '@enact/spotlight/SpotlightContainerDecorator';
|
||||||
|
|
||||||
// getMyinfoOrderCancelColumnsSearch : 회원 주문 취소/반품/교환 사유 조회
|
// getMyinfoOrderCancelColumnsSearch : 회원 주문 취소/반품/교환 사유 조회
|
||||||
// getMyinfoOrderCancelSearch : 회원 주문 취소/반품/교환 조회 - 디테일
|
// getMyinfoOrderCancelSearch : 회원 주문 취소/반품/교환 조회 - 디테일
|
||||||
@@ -15,7 +24,7 @@ import {
|
|||||||
getMyinfoOrderCancelSearch,
|
getMyinfoOrderCancelSearch,
|
||||||
paymentTotalCancel,
|
paymentTotalCancel,
|
||||||
updateOrderPartialCancel,
|
updateOrderPartialCancel,
|
||||||
} from "../../../../actions/cancelActions";
|
} from '../../../../actions/cancelActions';
|
||||||
// getMyinfoOrderSearch : 회원 주문 정보 조회
|
// getMyinfoOrderSearch : 회원 주문 정보 조회
|
||||||
// getMyinfoOrderDetailSearch : 회원 주문 상세 정보 조회 - 디테일
|
// getMyinfoOrderDetailSearch : 회원 주문 상세 정보 조회 - 디테일
|
||||||
// getMyinfoOrderShippingSearch : 회원 주문 배송 상세 정보 조회
|
// getMyinfoOrderShippingSearch : 회원 주문 배송 상세 정보 조회
|
||||||
@@ -23,21 +32,22 @@ import {
|
|||||||
getMyinfoOrderDetailSearch,
|
getMyinfoOrderDetailSearch,
|
||||||
getMyinfoOrderSearch,
|
getMyinfoOrderSearch,
|
||||||
getMyinfoOrderShippingSearch,
|
getMyinfoOrderShippingSearch,
|
||||||
} from "../../../../actions/orderActions";
|
} from '../../../../actions/orderActions';
|
||||||
import TBody from "../../../../components/TBody/TBody";
|
import TBody from '../../../../components/TBody/TBody';
|
||||||
import TButtonScroller from "../../../../components/TButtonScroller/TButtonScroller";
|
import TButtonScroller
|
||||||
|
from '../../../../components/TButtonScroller/TButtonScroller';
|
||||||
import TButtonTab, {
|
import TButtonTab, {
|
||||||
LIST_TYPE,
|
LIST_TYPE,
|
||||||
} from "../../../../components/TButtonTab/TButtonTab";
|
} from '../../../../components/TButtonTab/TButtonTab';
|
||||||
import TDropDown from "../../../../components/TDropDown/TDropDown";
|
import TDropDown from '../../../../components/TDropDown/TDropDown';
|
||||||
import THeader from "../../../../components/THeader/THeader";
|
import THeader from '../../../../components/THeader/THeader';
|
||||||
import TPopUp from "../../../../components/TPopUp/TPopUp";
|
import TPopUp from '../../../../components/TPopUp/TPopUp';
|
||||||
import TScroller from "../../../../components/TScroller/TScroller";
|
import TScroller from '../../../../components/TScroller/TScroller';
|
||||||
import { $L } from "../../../../utils/helperMethods";
|
import { $L } from '../../../../utils/helperMethods';
|
||||||
import css from "./MyOrders.module.less";
|
import css from './MyOrders.module.less';
|
||||||
import MyOrdersPopUp from "./MyOrdersPopUp";
|
import MyOrdersPopUp from './MyOrdersPopUp';
|
||||||
import CancelOrderList from "./OrderList/CancelOrderList";
|
import CancelOrderList from './OrderList/CancelOrderList';
|
||||||
import OrderList from "./OrderList/OrderList";
|
import OrderList from './OrderList/OrderList';
|
||||||
|
|
||||||
const TabContainer = SpotlightContainerDecorator(
|
const TabContainer = SpotlightContainerDecorator(
|
||||||
{ enterTo: "last-focused" },
|
{ enterTo: "last-focused" },
|
||||||
@@ -57,7 +67,7 @@ export default function MyOrders({ title, cbScrollTo }) {
|
|||||||
const tabList = [$L("ORDERS"), $L("CANCELLED ORDERS")];
|
const tabList = [$L("ORDERS"), $L("CANCELLED ORDERS")];
|
||||||
const dispatch = useDispatch();
|
const dispatch = useDispatch();
|
||||||
|
|
||||||
const { userInfo } = useSelector(
|
const { userNumber } = useSelector(
|
||||||
(state) => state.common.appStatus.loginUserData
|
(state) => state.common.appStatus.loginUserData
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -156,7 +166,7 @@ export default function MyOrders({ title, cbScrollTo }) {
|
|||||||
timerRef.current = setTimeout(() => {
|
timerRef.current = setTimeout(() => {
|
||||||
Spotlight.focus(initFoucsedItem);
|
Spotlight.focus(initFoucsedItem);
|
||||||
}, 0);
|
}, 0);
|
||||||
}, [userInfo]);
|
}, [userNumber]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
return () => {
|
return () => {
|
||||||
@@ -169,11 +179,11 @@ export default function MyOrders({ title, cbScrollTo }) {
|
|||||||
if (
|
if (
|
||||||
appStatus &&
|
appStatus &&
|
||||||
appStatus.loginUserData &&
|
appStatus.loginUserData &&
|
||||||
appStatus.loginUserData.userInfo
|
appStatus.loginUserData.userNumber
|
||||||
) {
|
) {
|
||||||
dispatch(
|
dispatch(
|
||||||
getMyinfoOrderSearch({
|
getMyinfoOrderSearch({
|
||||||
mbrNo: appStatus.loginUserData.userInfo,
|
mbrNo: appStatus.loginUserData.userNumber,
|
||||||
srchMonth: dropDownTab === 0 ? 3 : 6,
|
srchMonth: dropDownTab === 0 ? 3 : 6,
|
||||||
cancelOrderYn: "N",
|
cancelOrderYn: "N",
|
||||||
})
|
})
|
||||||
@@ -186,11 +196,11 @@ export default function MyOrders({ title, cbScrollTo }) {
|
|||||||
if (
|
if (
|
||||||
appStatus &&
|
appStatus &&
|
||||||
appStatus.loginUserData &&
|
appStatus.loginUserData &&
|
||||||
appStatus.loginUserData.userInfo
|
appStatus.loginUserData.userNumber
|
||||||
) {
|
) {
|
||||||
dispatch(
|
dispatch(
|
||||||
getMyinfoOrderSearch({
|
getMyinfoOrderSearch({
|
||||||
mbrNo: appStatus.loginUserData.userInfo,
|
mbrNo: appStatus.loginUserData.userNumber,
|
||||||
srchMonth: dropDownTab === 0 ? 3 : 6,
|
srchMonth: dropDownTab === 0 ? 3 : 6,
|
||||||
cancelOrderYn: "Y",
|
cancelOrderYn: "Y",
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,28 +1,40 @@
|
|||||||
import React, { useCallback, useEffect, useMemo, useState } from "react";
|
import React, {
|
||||||
|
useCallback,
|
||||||
|
useEffect,
|
||||||
|
useMemo,
|
||||||
|
useState,
|
||||||
|
} from 'react';
|
||||||
|
|
||||||
import { useDispatch, useSelector } from "react-redux";
|
import {
|
||||||
|
useDispatch,
|
||||||
|
useSelector,
|
||||||
|
} from 'react-redux';
|
||||||
|
|
||||||
import Spotlight from "@enact/spotlight";
|
import Spotlight from '@enact/spotlight';
|
||||||
import SpotlightContainerDecorator from "@enact/spotlight/SpotlightContainerDecorator";
|
import SpotlightContainerDecorator
|
||||||
|
from '@enact/spotlight/SpotlightContainerDecorator';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
alertToast,
|
alertToast,
|
||||||
launchMembershipApp,
|
launchMembershipApp,
|
||||||
setHidePopup,
|
setHidePopup,
|
||||||
setShowPopup,
|
setShowPopup,
|
||||||
} from "../../actions/commonActions";
|
} from '../../actions/commonActions';
|
||||||
import { getProductCouponDownload } from "../../actions/couponActions";
|
import { getProductCouponDownload } from '../../actions/couponActions';
|
||||||
import { getWelcomeEventInfo } from "../../actions/eventActions";
|
import { getWelcomeEventInfo } from '../../actions/eventActions';
|
||||||
import { popPanel, pushPanel } from "../../actions/panelActions";
|
import {
|
||||||
import { startVideoPlayer } from "../../actions/playActions";
|
popPanel,
|
||||||
import MobileSendPopUp from "../../components/MobileSend/MobileSendPopUp";
|
pushPanel,
|
||||||
import TButton, { TYPES } from "../../components/TButton/TButton";
|
} from '../../actions/panelActions';
|
||||||
import TButtonScroller from "../../components/TButtonScroller/TButtonScroller";
|
import { startVideoPlayer } from '../../actions/playActions';
|
||||||
import TPanel from "../../components/TPanel/TPanel";
|
import MobileSendPopUp from '../../components/MobileSend/MobileSendPopUp';
|
||||||
import TPopUp from "../../components/TPopUp/TPopUp";
|
import TButton, { TYPES } from '../../components/TButton/TButton';
|
||||||
import * as Config from "../../utils/Config";
|
import TButtonScroller from '../../components/TButtonScroller/TButtonScroller';
|
||||||
import { $L } from "../../utils/helperMethods";
|
import TPanel from '../../components/TPanel/TPanel';
|
||||||
import css from "../WelcomeEventPanel/WelcomeEventPanel.module.less";
|
import TPopUp from '../../components/TPopUp/TPopUp';
|
||||||
|
import * as Config from '../../utils/Config';
|
||||||
|
import { $L } from '../../utils/helperMethods';
|
||||||
|
import css from '../WelcomeEventPanel/WelcomeEventPanel.module.less';
|
||||||
|
|
||||||
const Container = SpotlightContainerDecorator(
|
const Container = SpotlightContainerDecorator(
|
||||||
{ enterTo: "last-focused" },
|
{ enterTo: "last-focused" },
|
||||||
@@ -35,8 +47,8 @@ const WelcomeEventPanel = () => {
|
|||||||
const { billCpnSno, shptmLnkInfo } = useSelector(
|
const { billCpnSno, shptmLnkInfo } = useSelector(
|
||||||
(state) => state.event.eventData?.eventInfo
|
(state) => state.event.eventData?.eventInfo
|
||||||
);
|
);
|
||||||
const userInfo = useSelector(
|
const userNumber = useSelector(
|
||||||
(state) => state.common?.appStatus.loginUserData.userInfo
|
(state) => state.common?.appStatus.loginUserData.userNumber
|
||||||
);
|
);
|
||||||
const { popupVisible, activePopup } = useSelector(
|
const { popupVisible, activePopup } = useSelector(
|
||||||
(state) => state.common.popup
|
(state) => state.common.popup
|
||||||
@@ -75,7 +87,7 @@ const WelcomeEventPanel = () => {
|
|||||||
// 상품 쿠폰 다운로드 (IF-LGSP-318)
|
// 상품 쿠폰 다운로드 (IF-LGSP-318)
|
||||||
dispatch(
|
dispatch(
|
||||||
getProductCouponDownload({
|
getProductCouponDownload({
|
||||||
mbrNo: userInfo,
|
mbrNo: userNumber,
|
||||||
cpnSno: billCpnSno,
|
cpnSno: billCpnSno,
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
@@ -83,7 +95,7 @@ const WelcomeEventPanel = () => {
|
|||||||
} else {
|
} else {
|
||||||
dispatch(setShowPopup(Config.ACTIVE_POPUP.smsPopup));
|
dispatch(setShowPopup(Config.ACTIVE_POPUP.smsPopup));
|
||||||
}
|
}
|
||||||
}, [dispatch, evntTpCd, userInfo]);
|
}, [dispatch, evntTpCd, userNumber]);
|
||||||
|
|
||||||
const onClose = useCallback(() => {
|
const onClose = useCallback(() => {
|
||||||
dispatch(setHidePopup());
|
dispatch(setHidePopup());
|
||||||
|
|||||||
Reference in New Issue
Block a user