diff --git a/com.twin.app.shoptime/src/reducers/brandReducer.js b/com.twin.app.shoptime/src/reducers/brandReducer.js index 0bd6a236..68d117a9 100644 --- a/com.twin.app.shoptime/src/reducers/brandReducer.js +++ b/com.twin.app.shoptime/src/reducers/brandReducer.js @@ -159,11 +159,25 @@ export const brandReducer = (state = initialState, action) => { brandRecentlyAiredData: action.payload, }; - case types.GET_BRAND_SHOP_BY_SHOW: + case types.GET_BRAND_SHOP_BY_SHOW: { + // 일부 응답은 리스트 없이 내려와 기존 데이터를 덮어 지우는 문제가 있어 조건부 병합 + const prevData = state.brandShopByShowData?.data || {}; + const nextData = action.payload?.data || {}; + const hasNextList = Array.isArray(nextData.brandShopByShowContsList); + + // 리스트가 없으면 이전 리스트 유지 + const mergedData = hasNextList + ? nextData + : { ...prevData, ...nextData, brandShopByShowContsList: prevData.brandShopByShowContsList }; + return { ...state, - brandShopByShowData: action.payload, + brandShopByShowData: { + ...action.payload, + data: mergedData, + }, }; + } case types.SET_BRAND_LIVE_CHANNEL_UPCOMING: return {