fix(game-ui): 메인 갱신 제어를 턴 입력기 아래로 이동

This commit is contained in:
2026-08-21 04:49:52 +00:00
parent 8e616ed07b
commit aa479c1f0f
5 changed files with 275 additions and 147 deletions
+22 -66
View File
@@ -17,6 +17,7 @@ import MainFrontStatus from '../components/main/MainFrontStatus.vue';
import MainGlobalMenu from '../components/main/MainGlobalMenu.vue';
import MainNationMenu from '../components/main/MainNationMenu.vue';
import MainMobileBottomBar from '../components/main/MainMobileBottomBar.vue';
import MainTurnControls from '../components/main/MainTurnControls.vue';
import {
defaultGlobalNavigation,
type MainNavigationEntry,
@@ -86,7 +87,6 @@ const {
messageDraftText,
targetMailbox,
mailboxGroups,
realtimeLabel,
} = storeToRefs(dashboard);
const nationAccess = computed(() => ({
@@ -223,31 +223,6 @@ watch(
<h1 class="game-shell__title">
{{ gameTitle }}
</h1>
<div class="game-shell__actions desktop-action-controls">
<button
class="game-shell__action desktop-action-controls__realtime toggle legacy-button legacy-button--navigation"
:class="{ active: realtimeEnabled }"
type="button"
@click="dashboard.setRealtimeEnabled(!realtimeEnabled)"
>
실시간 동기화: {{ realtimeLabel }}
</button>
<button
class="game-shell__action desktop-action-controls__refresh legacy-button legacy-button--navigation"
type="button"
:aria-busy="refreshing"
@click="requestManualRefresh"
>
</button>
<button
class="game-shell__action desktop-action-controls__lobby legacy-button legacy-button--navigation"
type="button"
@click="moveLobby"
>
로비로
</button>
</div>
</header>
<section v-if="lobbyInfo" class="legacy-game-info" aria-label="게임 진행 정보">
@@ -282,7 +257,7 @@ watch(
<section v-if="isMobile" class="layout-mobile">
<template v-for="(panelId, panelIndex) in mobilePanelOrder" :key="panelId">
<div v-if="panelId === 'commands'" class="mobile-panel" data-mobile-panel-id="commands">
<PanelCard title="명령 목록" subtitle="예턴/명령 배치 영역" data-main-target="commands">
<PanelCard title="명령 목록" aria-label="명령 목록" data-main-target="commands">
<CommandListPanel
:command-table="commandTable"
:loading="loading"
@@ -300,6 +275,13 @@ watch(
@shift-general-turns="shiftGeneralTurns"
@repeat-general-turns="repeatGeneralTurns"
/>
<MainTurnControls
:realtime-enabled="realtimeEnabled"
:refreshing="refreshing"
@refresh="requestManualRefresh"
@toggle-realtime="dashboard.setRealtimeEnabled(!realtimeEnabled)"
@lobby="moveLobby"
/>
</PanelCard>
</div>
@@ -435,7 +417,7 @@ watch(
<PanelCard title="지도" subtitle="실시간 지도 + 도시 상황" data-main-target="map">
<MapViewer :map-data="worldMap" :map-layout="mapLayout" :loading="loading" />
</PanelCard>
<PanelCard title="명령 목록" subtitle="예턴/명령 배치 영역" data-main-target="commands">
<PanelCard title="명령 목록" aria-label="명령 목록" data-main-target="commands">
<CommandListPanel
:command-table="commandTable"
:loading="loading"
@@ -453,6 +435,13 @@ watch(
@shift-general-turns="shiftGeneralTurns"
@repeat-general-turns="repeatGeneralTurns"
/>
<MainTurnControls
:realtime-enabled="realtimeEnabled"
:refreshing="refreshing"
@refresh="requestManualRefresh"
@toggle-realtime="dashboard.setRealtimeEnabled(!realtimeEnabled)"
@lobby="moveLobby"
/>
</PanelCard>
<PanelCard title="도시 정보" data-main-target="city">
<CityBasicCard :city="city" :loading="loading" />
@@ -746,6 +735,7 @@ button {
.layout-desktop > [data-main-target='commands'] {
grid-column: 8 / 11;
grid-row: 1 / 3;
align-self: stretch;
min-height: 645px;
width: 290px;
margin-left: 10px;
@@ -785,6 +775,10 @@ button {
background-color: #222;
}
[data-main-target='commands'] :deep(.panel-header) {
display: none;
}
.nation-menu-middle {
grid-column: 1 / -1;
}
@@ -912,14 +906,6 @@ button {
margin-top: 31px;
}
.desktop-action-controls .game-shell__action {
font-weight: 400;
}
.desktop-action-controls__lobby {
margin-left: 12px;
}
.placeholder {
font-size: 0.85rem;
color: rgba(232, 221, 196, 0.7);
@@ -933,36 +919,6 @@ button {
height: 45px;
}
.desktop-action-controls {
display: grid;
width: 100%;
grid-template-areas: 'refresh realtime lobby';
grid-template-columns: max-content 1fr max-content;
align-items: start;
gap: 0;
}
.desktop-action-controls .game-shell__action {
padding-right: 4px;
padding-left: 4px;
}
.desktop-action-controls__refresh {
grid-area: refresh;
justify-self: start;
}
.desktop-action-controls__realtime {
grid-area: realtime;
justify-self: center;
}
.desktop-action-controls__lobby {
grid-area: lobby;
justify-self: end;
margin-left: 0;
}
.main-page {
width: 500px;
min-height: 3688px;