[251019] fix: Background Video
🕐 커밋 시간: 2025. 10. 19. 21:30:53 📊 변경 통계: • 총 파일: 10개 • 추가: +86줄 • 삭제: -42줄 📝 수정된 파일: ~ com.twin.app.shoptime/src/actions/mainActions.js ~ com.twin.app.shoptime/src/actions/playActions.js ~ com.twin.app.shoptime/src/reducers/mainReducer.js ~ com.twin.app.shoptime/src/views/DetailPanel/DetailPanel.jsx ~ com.twin.app.shoptime/src/views/DetailPanel/ProductAllSection/ProductAllSection.jsx ~ com.twin.app.shoptime/src/views/DetailPanel/ProductContentSection/ProductVideo/ProductVideo.v2.jsx ~ com.twin.app.shoptime/src/views/PlayerPanel/PlayerPanel.jsx ~ com.twin.app.shoptime/src/views/PlayerPanel/PlayerTabContents/v2/TabContainer.v2.jsx ~ com.twin.app.shoptime/src/views/UserReview/ShowUserReviews.jsx ~ com.twin.app.shoptime/src/views/UserReview/UserReviewPanel.jsx 🔧 함수 변경 내용: 📄 com.twin.app.shoptime/src/actions/mainActions.js (javascript): 🔄 Modified: clearSubCategory() 📄 com.twin.app.shoptime/src/actions/playActions.js (javascript): ❌ Deleted: resumeModalVideo() 📄 com.twin.app.shoptime/src/views/DetailPanel/ProductAllSection/ProductAllSection.jsx (javascript): ✅ Added: extractProductMeta() 📄 com.twin.app.shoptime/src/views/PlayerPanel/PlayerTabContents/v2/TabContainer.v2.jsx (javascript): 🔄 Modified: Spottable() 📄 com.twin.app.shoptime/src/views/UserReview/ShowUserReviews.jsx (javascript): ✅ Added: ShowUserReviews() ❌ Deleted: ShowUserReviews() 🔧 주요 변경 내용: • 핵심 비즈니스 로직 개선
This commit is contained in:
@@ -1,25 +1,17 @@
|
||||
import { URLS } from "../api/apiConfig";
|
||||
import { TAxios } from "../api/TAxios";
|
||||
import { convertUtcToLocal } from "../components/MediaPlayer/util";
|
||||
import {
|
||||
CATEGORY_DATA_MAX_RESULTS_LIMIT,
|
||||
LOG_CONTEXT_NAME,
|
||||
LOG_MESSAGE_ID,
|
||||
} from "../utils/Config";
|
||||
import * as HelperMethods from "../utils/helperMethods";
|
||||
import { types } from "./actionTypes";
|
||||
import {
|
||||
addReservation,
|
||||
changeAppStatus,
|
||||
deleteReservation,
|
||||
} from "./commonActions";
|
||||
import { URLS } from '../api/apiConfig';
|
||||
import { TAxios } from '../api/TAxios';
|
||||
import { convertUtcToLocal } from '../components/MediaPlayer/util';
|
||||
import { CATEGORY_DATA_MAX_RESULTS_LIMIT, LOG_CONTEXT_NAME, LOG_MESSAGE_ID } from '../utils/Config';
|
||||
import * as HelperMethods from '../utils/helperMethods';
|
||||
import { types } from './actionTypes';
|
||||
import { addReservation, changeAppStatus, deleteReservation } from './commonActions';
|
||||
|
||||
//IF-LGSP-007
|
||||
export const getMainLiveShow = (props) => (dispatch, getState) => {
|
||||
const vodIncFlag = props?.vodIncFlag;
|
||||
|
||||
const onSuccess = (response) => {
|
||||
console.log("@@ getMainLiveShow onSuccess", response.data);
|
||||
console.log('@@ getMainLiveShow onSuccess', response.data);
|
||||
|
||||
dispatch({
|
||||
type: types.GET_MAIN_LIVE_SHOW,
|
||||
@@ -28,38 +20,20 @@ export const getMainLiveShow = (props) => (dispatch, getState) => {
|
||||
};
|
||||
|
||||
const onFail = (error) => {
|
||||
console.error("@@ getMainLiveShow onFail", error);
|
||||
console.error('@@ getMainLiveShow onFail', error);
|
||||
};
|
||||
|
||||
TAxios(
|
||||
dispatch,
|
||||
getState,
|
||||
"get",
|
||||
URLS.GET_MAIN_LIVE_SHOW,
|
||||
{ vodIncFlag },
|
||||
{},
|
||||
onSuccess,
|
||||
onFail
|
||||
);
|
||||
TAxios(dispatch, getState, 'get', URLS.GET_MAIN_LIVE_SHOW, { vodIncFlag }, {}, onSuccess, onFail);
|
||||
};
|
||||
|
||||
// Live 알람 설정/해제 IF-LGSP-012
|
||||
export const setMainLiveUpcomingAlarm = (props) => (dispatch, getState) => {
|
||||
const {
|
||||
alamDispFlag,
|
||||
chanId,
|
||||
endDt,
|
||||
patnrId,
|
||||
patncNm,
|
||||
showId,
|
||||
showNm,
|
||||
strtDt,
|
||||
} = props;
|
||||
const { alamDispFlag, chanId, endDt, patnrId, patncNm, showId, showNm, strtDt } = props;
|
||||
|
||||
const onSuccess = (response) => {
|
||||
console.log("setMainLiveUpcomingAlarm onSuccess", response.data);
|
||||
console.log('setMainLiveUpcomingAlarm onSuccess', response.data);
|
||||
|
||||
if (alamDispFlag === "Y") {
|
||||
if (alamDispFlag === 'Y') {
|
||||
const convertedStrtDt = convertUtcToLocal(strtDt);
|
||||
|
||||
const data = {
|
||||
@@ -72,13 +46,13 @@ export const setMainLiveUpcomingAlarm = (props) => (dispatch, getState) => {
|
||||
second: convertedStrtDt.getSeconds(),
|
||||
},
|
||||
params: {
|
||||
message: `[${patncNm}] ${showNm}\n${HelperMethods.$L("Watch Now!")}`,
|
||||
message: `[${patncNm}] ${showNm}\n${HelperMethods.$L('Watch Now!')}`,
|
||||
buttons: [
|
||||
{
|
||||
label: HelperMethods.$L("yes"),
|
||||
label: HelperMethods.$L('yes'),
|
||||
},
|
||||
{
|
||||
label: HelperMethods.$L("no"),
|
||||
label: HelperMethods.$L('no'),
|
||||
},
|
||||
],
|
||||
launch: {
|
||||
@@ -92,19 +66,19 @@ export const setMainLiveUpcomingAlarm = (props) => (dispatch, getState) => {
|
||||
dispatch(addReservation(data));
|
||||
}
|
||||
//
|
||||
else if (alamDispFlag === "N") {
|
||||
else if (alamDispFlag === 'N') {
|
||||
dispatch(deleteReservation(showId));
|
||||
}
|
||||
};
|
||||
|
||||
const onFail = (error) => {
|
||||
console.error("setMainLiveUpcomingAlarm onFail", error);
|
||||
console.error('setMainLiveUpcomingAlarm onFail', error);
|
||||
};
|
||||
|
||||
TAxios(
|
||||
dispatch,
|
||||
getState,
|
||||
"post",
|
||||
'post',
|
||||
URLS.SET_MAIN_LIVE_UPCOMING_ALARM,
|
||||
{},
|
||||
{ alamDispFlag, endDt, patnrId, showId, strtDt },
|
||||
@@ -117,10 +91,10 @@ export const setMainLiveUpcomingAlarm = (props) => (dispatch, getState) => {
|
||||
export const getMainCategoryDetail = (props) => (dispatch, getState) => {
|
||||
const { patnrId, prdtId, liveReqFlag } = props;
|
||||
|
||||
dispatch(changeAppStatus({ showLoadingPanel: { show: true, type: "wait" } }));
|
||||
dispatch(changeAppStatus({ showLoadingPanel: { show: true, type: 'wait' } }));
|
||||
|
||||
const onSuccess = (response) => {
|
||||
console.log("getMainCategoryDetail onSuccess ", response.data);
|
||||
console.log('getMainCategoryDetail onSuccess ', response.data);
|
||||
|
||||
dispatch({
|
||||
type: types.GET_PRODUCT_DETAIL,
|
||||
@@ -131,14 +105,14 @@ export const getMainCategoryDetail = (props) => (dispatch, getState) => {
|
||||
};
|
||||
|
||||
const onFail = (error) => {
|
||||
console.error("getMainCategoryDetail onFail", error);
|
||||
console.error('getMainCategoryDetail onFail', error);
|
||||
dispatch(changeAppStatus({ showLoadingPanel: { show: false } }));
|
||||
};
|
||||
|
||||
TAxios(
|
||||
dispatch,
|
||||
getState,
|
||||
"get",
|
||||
'get',
|
||||
URLS.GET_PRODUCT_DETAIL,
|
||||
{ patnrId, prdtId, liveReqFlag },
|
||||
{},
|
||||
@@ -151,7 +125,7 @@ export const getMainCategoryDetail = (props) => (dispatch, getState) => {
|
||||
export const getMainCategoryShowDetail = (props) => (dispatch, getState) => {
|
||||
const { patnrId, showId, curationId } = props;
|
||||
const onSuccess = (response) => {
|
||||
console.log("getMainCategoryShowDetail onSuccess ", response.data);
|
||||
console.log('getMainCategoryShowDetail onSuccess ', response.data);
|
||||
|
||||
dispatch({
|
||||
type: types.GET_MAIN_CATEGORY_SHOW_DETAIL,
|
||||
@@ -160,13 +134,13 @@ export const getMainCategoryShowDetail = (props) => (dispatch, getState) => {
|
||||
};
|
||||
|
||||
const onFail = (error) => {
|
||||
console.error("getMainCategoryShowDetail onFail", error);
|
||||
console.error('getMainCategoryShowDetail onFail', error);
|
||||
};
|
||||
|
||||
TAxios(
|
||||
dispatch,
|
||||
getState,
|
||||
"get",
|
||||
'get',
|
||||
URLS.GET_MAIN_CATEGORY_SHOW_DETAIL,
|
||||
{ patnrId, showId, curationId },
|
||||
{},
|
||||
@@ -189,7 +163,7 @@ export const getSubCategory =
|
||||
lastSubCategoryParams &&
|
||||
JSON.stringify(lastSubCategoryParams) === JSON.stringify(params)
|
||||
) {
|
||||
console.log("getSubCategory ignore patch");
|
||||
console.log('getSubCategory ignore patch');
|
||||
return;
|
||||
}
|
||||
lastSubCategoryParams = { ...params };
|
||||
@@ -200,7 +174,7 @@ export const getSubCategory =
|
||||
|
||||
let currentKey = key;
|
||||
const onSuccess = (response) => {
|
||||
console.log("getSubCategory onSuccess ", response.data);
|
||||
console.log('getSubCategory onSuccess ', response.data);
|
||||
|
||||
if (pageNo === 1) {
|
||||
getSubCategoryKey = new Date();
|
||||
@@ -227,7 +201,7 @@ export const getSubCategory =
|
||||
};
|
||||
|
||||
const onFail = (error) => {
|
||||
console.error("getSubCategory onFail", error);
|
||||
console.error('getSubCategory onFail', error);
|
||||
if (pageNo === 1) {
|
||||
lastSubCategoryParams = {};
|
||||
}
|
||||
@@ -236,7 +210,7 @@ export const getSubCategory =
|
||||
TAxios(
|
||||
dispatch,
|
||||
getState,
|
||||
"get",
|
||||
'get',
|
||||
URLS.GET_SUB_CATEGORY,
|
||||
{ lgCatCd, patnrIdList, pageSize, pageNo, tabType, filterType },
|
||||
{},
|
||||
@@ -245,33 +219,27 @@ export const getSubCategory =
|
||||
);
|
||||
};
|
||||
|
||||
export const continueGetSubCategory =
|
||||
(key, pageNo) =>
|
||||
(dispatch, getState) => {
|
||||
if (!lastSubCategoryParams) {
|
||||
console.warn("No previous category parameters found");
|
||||
return;
|
||||
}
|
||||
export const continueGetSubCategory = (key, pageNo) => (dispatch, getState) => {
|
||||
if (!lastSubCategoryParams) {
|
||||
console.warn('No previous category parameters found');
|
||||
return;
|
||||
}
|
||||
|
||||
const subCategoryData = getState().main.subCategoryData;
|
||||
const targetData =
|
||||
subCategoryData[key]?.subCatItemList ||
|
||||
subCategoryData[key]?.subCatShowList ||
|
||||
[];
|
||||
const totalCount = subCategoryData[key]?.total ?? 0;
|
||||
const startIndex = CATEGORY_DATA_MAX_RESULTS_LIMIT * (pageNo - 1);
|
||||
if (
|
||||
(startIndex <= 1 && !targetData) ||
|
||||
startIndex < targetData.length ||
|
||||
(totalCount -1) <= startIndex
|
||||
) {
|
||||
//ignore query
|
||||
return;
|
||||
}
|
||||
dispatch(
|
||||
getSubCategory({ ...lastSubCategoryParams }, pageNo, getSubCategoryKey)
|
||||
);
|
||||
};
|
||||
const subCategoryData = getState().main.subCategoryData;
|
||||
const targetData =
|
||||
subCategoryData[key]?.subCatItemList || subCategoryData[key]?.subCatShowList || [];
|
||||
const totalCount = subCategoryData[key]?.total ?? 0;
|
||||
const startIndex = CATEGORY_DATA_MAX_RESULTS_LIMIT * (pageNo - 1);
|
||||
if (
|
||||
(startIndex <= 1 && !targetData) ||
|
||||
startIndex < targetData.length ||
|
||||
totalCount - 1 <= startIndex
|
||||
) {
|
||||
//ignore query
|
||||
return;
|
||||
}
|
||||
dispatch(getSubCategory({ ...lastSubCategoryParams }, pageNo, getSubCategoryKey));
|
||||
};
|
||||
|
||||
const clearSubCategory = () => ({
|
||||
type: types.CLEAR_SUB_CATEGORY,
|
||||
@@ -280,7 +248,7 @@ const clearSubCategory = () => ({
|
||||
// TOP20 영상 목록 조회 IF-LGSP-069
|
||||
export const getTop20Show = () => (dispatch, getState) => {
|
||||
const onSuccess = (response) => {
|
||||
console.log("getTop20Show onSuccess ", response.data);
|
||||
console.log('getTop20Show onSuccess ', response.data);
|
||||
|
||||
dispatch({
|
||||
type: types.GET_TOP_20_SHOW,
|
||||
@@ -290,20 +258,11 @@ export const getTop20Show = () => (dispatch, getState) => {
|
||||
};
|
||||
|
||||
const onFail = (error) => {
|
||||
console.error("getTop20Show onFail", error);
|
||||
console.error('getTop20Show onFail', error);
|
||||
dispatch(changeAppStatus({ showLoadingPanel: { show: false } }));
|
||||
};
|
||||
|
||||
TAxios(
|
||||
dispatch,
|
||||
getState,
|
||||
"get",
|
||||
URLS.GET_TOP20_SHOW,
|
||||
{},
|
||||
{},
|
||||
onSuccess,
|
||||
onFail
|
||||
);
|
||||
TAxios(dispatch, getState, 'get', URLS.GET_TOP20_SHOW, {}, {}, onSuccess, onFail);
|
||||
};
|
||||
|
||||
// 유메이라이크 아이템 리스트 IF-LGSP-201
|
||||
@@ -345,13 +304,13 @@ export const getMainYouMayLike =
|
||||
// errorResponse: error?.response,
|
||||
// errorData: error?.response?.data
|
||||
// });
|
||||
console.error("getMainYouMayLike onFail", error);
|
||||
console.error('getMainYouMayLike onFail', error);
|
||||
};
|
||||
|
||||
TAxios(
|
||||
dispatch,
|
||||
getState,
|
||||
"get",
|
||||
'get',
|
||||
URLS.GET_YOUMAYLIKE,
|
||||
{ lgCatCd, exclCurationId, exclPatnrId, exclPrdtId, catDpTh3, catDpTh4 },
|
||||
{},
|
||||
@@ -365,20 +324,20 @@ export const getMyFavoriteFlag = (params) => (dispatch, getState) => {
|
||||
const { patnrId, prdtId } = params;
|
||||
|
||||
const onSuccess = (response) => {
|
||||
console.log("getMyFavoriteFlag onSuccess ", response.data);
|
||||
console.log('getMyFavoriteFlag onSuccess ', response.data);
|
||||
dispatch({
|
||||
type: types.GET_MY_FAVORITE_FLAG,
|
||||
payload: response.data.data,
|
||||
});
|
||||
};
|
||||
const onFail = (error) => {
|
||||
console.error("getMyFavoriteFlag onFail", error);
|
||||
console.error('getMyFavoriteFlag onFail', error);
|
||||
};
|
||||
|
||||
TAxios(
|
||||
dispatch,
|
||||
getState,
|
||||
"get",
|
||||
'get',
|
||||
URLS.GET_MY_FAVORITE_FLAG,
|
||||
{ patnrId, prdtId },
|
||||
{},
|
||||
@@ -391,20 +350,20 @@ export const setMainLikeCategory = (params) => (dispatch, getState) => {
|
||||
const { patnrId, prdtId } = params;
|
||||
|
||||
const onSuccess = (response) => {
|
||||
console.log("setMainLikeCategory onSuccess ", response.data);
|
||||
console.log('setMainLikeCategory onSuccess ', response.data);
|
||||
dispatch({
|
||||
type: types.SET_MAIN_LIKE_CATEGORY,
|
||||
payload: response.data.data,
|
||||
});
|
||||
};
|
||||
const onFail = (error) => {
|
||||
console.error("setMainLikeCategory onFail", error);
|
||||
console.error('setMainLikeCategory onFail', error);
|
||||
};
|
||||
|
||||
TAxios(
|
||||
dispatch,
|
||||
getState,
|
||||
"post",
|
||||
'post',
|
||||
URLS.SET_MAIN_LIKE_CATEGORY,
|
||||
{},
|
||||
{ patnrId, prdtId },
|
||||
@@ -418,10 +377,15 @@ export const getHomeFullVideoInfo =
|
||||
({ lgCatCd }) =>
|
||||
(dispatch, getState) => {
|
||||
const onSuccess = (response) => {
|
||||
console.log(
|
||||
"getHomeFullVideoInfo onSuccess",
|
||||
response.data.data.showInfos
|
||||
);
|
||||
console.log('getHomeFullVideoInfo onSuccess', response.data.data.showInfos);
|
||||
|
||||
// ✨ DEBUG: youmaylikeInfos 데이터 확인
|
||||
console.log('[DEBUG] GET_HOME_FULL_VIDEO_INFO - API Response:', {
|
||||
youmaylikeInfos: response.data.data.youmaylikeInfos,
|
||||
youmaylikeInfos_length: response.data.data.youmaylikeInfos?.length,
|
||||
liveChannelInfos_length: response.data.data.liveChannelInfos?.length,
|
||||
featuredShowsInfos_length: response.data.data.featuredShowsInfos?.length,
|
||||
});
|
||||
|
||||
dispatch({
|
||||
type: types.GET_HOME_FULL_VIDEO_INFO,
|
||||
@@ -430,13 +394,13 @@ export const getHomeFullVideoInfo =
|
||||
};
|
||||
|
||||
const onFail = (error) => {
|
||||
console.error("getHomeFullVideoInfo onSuccess", error);
|
||||
console.error('getHomeFullVideoInfo onSuccess', error);
|
||||
};
|
||||
|
||||
TAxios(
|
||||
dispatch,
|
||||
getState,
|
||||
"get",
|
||||
'get',
|
||||
URLS.GET_HOME_FULL_VIDEO_INFO,
|
||||
{ lgCatCd },
|
||||
{},
|
||||
@@ -450,7 +414,7 @@ export const getMainLiveShowNowProduct =
|
||||
({ patnrId, showId, lstChgDt }) =>
|
||||
(dispatch, getState) => {
|
||||
const onSuccess = (response) => {
|
||||
console.log("getMainLiveShowNowProduct onSuccess", response.data);
|
||||
console.log('getMainLiveShowNowProduct onSuccess', response.data);
|
||||
|
||||
dispatch({
|
||||
type: types.GET_MAIN_LIVE_SHOW_NOW_PRODUCT,
|
||||
@@ -459,13 +423,13 @@ export const getMainLiveShowNowProduct =
|
||||
};
|
||||
|
||||
const onFail = (error) => {
|
||||
console.error("getMainLiveShowNowProduct onFail", error);
|
||||
console.error('getMainLiveShowNowProduct onFail', error);
|
||||
};
|
||||
|
||||
TAxios(
|
||||
dispatch,
|
||||
getState,
|
||||
"get",
|
||||
'get',
|
||||
URLS.GET_MAIN_LIVE_SHOW_NOW_PRODUCT,
|
||||
{ patnrId, showId, lstChgDt },
|
||||
{},
|
||||
|
||||
Reference in New Issue
Block a user