[251011] feat: MediaPlayer 추가
🕐 커밋 시간: 2025. 10. 11. 09:07:17 📊 변경 통계: • 총 파일: 7개 • 추가: +416줄 • 삭제: -518줄 📁 추가된 파일: + com.twin.app.shoptime/src/actions/mediaActions.js + com.twin.app.shoptime/src/views/MediaPanel/MediaPanel.jsx + com.twin.app.shoptime/src/views/MediaPanel/MediaPanel.module.less + com.twin.app.shoptime/src/views/MediaPanel/README.md 📝 수정된 파일: ~ com.twin.app.shoptime/src/reducers/panelReducer.js ~ com.twin.app.shoptime/src/utils/Config.js ~ com.twin.app.shoptime/src/views/MainView/MainView.jsx 🔧 함수 변경 내용: 📄 com.twin.app.shoptime/src/views/MainView/MainView.jsx (javascript): ✅ Added: resetWatchRecord() ❌ Deleted: resetWatchRecord() 📄 com.twin.app.shoptime/src/views/MediaPanel/MediaPanel.jsx (javascript): ✅ Added: MediaPanel() 🔧 주요 변경 내용: • 핵심 비즈니스 로직 개선 • 공통 유틸리티 함수 최적화 • 개발 문서 및 가이드 개선 Performance: 코드 최적화로 성능 개선 기대
This commit is contained in:
@@ -1,17 +1,13 @@
|
||||
import { types } from "../actions/actionTypes";
|
||||
import { panel_names } from "../utils/Config";
|
||||
import { types } from '../actions/actionTypes';
|
||||
import { panel_names } from '../utils/Config';
|
||||
|
||||
const initialState = {
|
||||
panels: [],
|
||||
lastPanelAction: "", //"", "push", "pop", "update", "reset", "previewPush", "previewPop", "previewUpdate"
|
||||
lastPanelAction: '', //"", "push", "pop", "update", "reset", "previewPush", "previewPop", "previewUpdate"
|
||||
};
|
||||
|
||||
// last one will be on top
|
||||
const forceTopPanels = [
|
||||
panel_names.ERROR_PANEL,
|
||||
panel_names.INTRO_PANEL,
|
||||
panel_names.DEBUG_PANEL,
|
||||
];
|
||||
const forceTopPanels = [panel_names.ERROR_PANEL, panel_names.INTRO_PANEL, panel_names.DEBUG_PANEL];
|
||||
|
||||
export const panelsReducer = (state = initialState, action) => {
|
||||
switch (action.type) {
|
||||
@@ -48,42 +44,48 @@ export const panelsReducer = (state = initialState, action) => {
|
||||
});
|
||||
|
||||
let lastAction = 'push';
|
||||
if(action.payload.name === panel_names.PLAYER_PANEL){
|
||||
if(action.payload.panelInfo.modal){
|
||||
if (
|
||||
action.payload.name === panel_names.PLAYER_PANEL ||
|
||||
action.payload.name === panel_names.MEDIA_PANEL
|
||||
) {
|
||||
if (action.payload.panelInfo.modal) {
|
||||
lastAction = 'previewPush';
|
||||
}
|
||||
}
|
||||
return {
|
||||
...state,
|
||||
panels: newState,
|
||||
lastPanelAction: lastAction
|
||||
lastPanelAction: lastAction,
|
||||
};
|
||||
}
|
||||
|
||||
case types.POP_PANEL:{
|
||||
case types.POP_PANEL: {
|
||||
let lastAction = 'pop';
|
||||
if (action.payload) {
|
||||
if(state.lastPanelAction.indexOf('preview')=== 0 && action.payload === panel_names.PLAYER_PANEL){
|
||||
if (
|
||||
state.lastPanelAction.indexOf('preview') === 0 &&
|
||||
(action.payload === panel_names.PLAYER_PANEL ||
|
||||
action.payload === panel_names.MEDIA_PANEL)
|
||||
) {
|
||||
lastAction = 'previewPop';
|
||||
}
|
||||
return {
|
||||
...state,
|
||||
panels: state.panels.filter((panel) => panel.name !== action.payload),
|
||||
lastPanelAction: lastAction
|
||||
lastPanelAction: lastAction,
|
||||
};
|
||||
} else {
|
||||
if(state.lastPanelAction.indexOf('preview')===0){
|
||||
if (state.lastPanelAction.indexOf('preview') === 0) {
|
||||
lastAction = 'previewPop';
|
||||
}
|
||||
return {
|
||||
...state,
|
||||
panels: state.panels.slice(0, state.panels.length - 1),
|
||||
lastPanelAction: lastAction
|
||||
lastPanelAction: lastAction,
|
||||
};
|
||||
}
|
||||
}
|
||||
case types.UPDATE_PANEL:
|
||||
{
|
||||
case types.UPDATE_PANEL: {
|
||||
let lastIndex = -1;
|
||||
let lastAction = 'update';
|
||||
// 배열의 끝에서부터 시작하여 조건에 맞는 마지막 인덱스 찾기
|
||||
@@ -101,16 +103,20 @@ export const panelsReducer = (state = initialState, action) => {
|
||||
}
|
||||
: panel
|
||||
);
|
||||
if(newPanels.length > 0){
|
||||
const lastPanel = newPanels[newPanels.length-1];
|
||||
if(lastPanel.name === panel_names.PLAYER_PANEL && lastPanel.panelInfo.modal){
|
||||
if (newPanels.length > 0) {
|
||||
const lastPanel = newPanels[newPanels.length - 1];
|
||||
if (
|
||||
(lastPanel.name === panel_names.PLAYER_PANEL ||
|
||||
lastPanel.name === panel_names.MEDIA_PANEL) &&
|
||||
lastPanel.panelInfo.modal
|
||||
) {
|
||||
lastAction = 'previewUpdate';
|
||||
}
|
||||
}
|
||||
return {
|
||||
...state,
|
||||
panels: newPanels,
|
||||
lastPanelAction: lastAction
|
||||
lastPanelAction: lastAction,
|
||||
};
|
||||
}
|
||||
case types.RESET_PANELS: {
|
||||
@@ -124,7 +130,7 @@ export const panelsReducer = (state = initialState, action) => {
|
||||
return {
|
||||
...state,
|
||||
panels: updatedPanels,
|
||||
lastPanelAction: "reset",
|
||||
lastPanelAction: 'reset',
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user