전투시스템 상태 및 처리

This commit is contained in:
2025-02-24 17:49:09 +09:00
parent c6dac677f6
commit 68c44cbf09
7 changed files with 67 additions and 23 deletions

View File

@@ -58,6 +58,7 @@ const BattleEventModal = ({ modalType, detailView, handleDetailView, content, se
if(modalType === TYPE_MODIFY && content && Object.keys(content).length > 0){
setResultData({
group_id: content.group_id,
event_id: content.event_id,
event_name: content.event_name,
repeat_type: content.repeat_type,
config_id: content.config_id,
@@ -67,7 +68,8 @@ const BattleEventModal = ({ modalType, detailView, handleDetailView, content, se
round_time: content.round_time,
status: content.status,
event_start_dt: convertKTCDate(content.event_start_dt),
event_end_dt: convertKTCDate(content.event_end_dt)
event_end_dt: content.event_end_dt,
event_operation_time: content.event_operation_time,
});
}
}, [modalType, content]);
@@ -182,7 +184,7 @@ const BattleEventModal = ({ modalType, detailView, handleDetailView, content, se
const minAllowedTime = new Date(new Date().getTime() + 10 * 60000);
const startDt = resultData.event_start_dt;
const endDt = resultData.event_end_dt;
if (startDt < minAllowedTime) {
if (modalType === TYPE_REGISTRY && startDt < minAllowedTime) {
setAlertMsg(t('BATTLE_EVENT_MODAL_START_DT_WARNING'));
return;
}
@@ -192,7 +194,7 @@ const BattleEventModal = ({ modalType, detailView, handleDetailView, content, se
}
//화면에 머물면서 상태는 안바꼈을 경우가 있기에 시작시간 지났을경우 차단
if (modalType === TYPE_MODIFY && startDt < new Date()) {
if (modalType === TYPE_REGISTRY && startDt < new Date()) {
setAlertMsg(t('BATTLE_EVENT_MODAL_START_DT_WARNING'));
return;
}
@@ -220,6 +222,8 @@ const BattleEventModal = ({ modalType, detailView, handleDetailView, content, se
handleModalClose('registConfirm');
if(data.result === "SUCCESS") {
handleModalView('registComplete');
}else if(data.result === "ERROR_BATTLE_EVENT_TIME_OVER"){
setAlertMsg(t('BATTLE_EVENT_MODAL_TIME_CHECK_WARNING'));
}else{
setAlertMsg(t('UPDATE_FAIL'));
}
@@ -266,20 +270,21 @@ const BattleEventModal = ({ modalType, detailView, handleDetailView, content, se
const isView = (label) => {
switch (label) {
case "modify":
return modalType === TYPE_MODIFY && (content?.status === battleEventStatusType.register);
case "registry":
return modalType === TYPE_MODIFY && (content?.status === battleEventStatusType.stop);
case "start_dt":
case "repeat":
case "registry":
return modalType === TYPE_REGISTRY
case "end_dt":
case "group":
case "name":
case "config":
case "reward":
case "round":
case "hot":
case "start_dt":
return modalType === TYPE_REGISTRY
return modalType === TYPE_REGISTRY || (modalType === TYPE_MODIFY &&(content?.status === battleEventStatusType.stop));
default:
return modalType === TYPE_MODIFY && (content?.status === battleEventStatusType.register
);
return modalType === TYPE_MODIFY && (content?.status !== battleEventStatusType.stop);
}
}
@@ -333,7 +338,7 @@ const BattleEventModal = ({ modalType, detailView, handleDetailView, content, se
{resultData?.repeat_type !== 'NONE' &&
<SingleDatePicker
label="종료일자"
disabled={false}
disabled={!isView('end_dt')}
dateLabel="종료 일자"
onDateChange={handleEndDateChange}
selectedDate={resultData?.event_end_dt}

View File

@@ -158,8 +158,8 @@ const BattleEventSearchBar = ({ searchParams, onSearch, onReset, configData, rew
<SelectInput value={searchParams.configId} onChange={e => onSearch({ configId: e.target.value })}>
<option value="ALL">전체</option>
{configData?.map((data, index) => (
<option key={index} value={data.value}>
{data.name}
<option key={index} value={data.id}>
{data.desc}
</option>
))}
</SelectInput>
@@ -169,8 +169,8 @@ const BattleEventSearchBar = ({ searchParams, onSearch, onReset, configData, rew
<SelectInput value={searchParams.rewardId} onChange={e => onSearch({ rewardId: e.target.value })}>
<option value='ALL'>전체</option>
{rewardData?.map((data, index) => (
<option key={index} value={data.value}>
{data.name}
<option key={index} value={data.id}>
{data.desc}
</option>
))}
</SelectInput>