diff --git a/frontend/src/pages/Admin.jsx b/frontend/src/pages/Admin.jsx
index 9bc9135..f7b85fb 100644
--- a/frontend/src/pages/Admin.jsx
+++ b/frontend/src/pages/Admin.jsx
@@ -110,7 +110,10 @@ export default function Admin({ isMobile = false }) {
// 서버 관리 상태
const [isServerListExpanded, setIsServerListExpanded] = useState(false); // 서버 목록 펼침 상태
- const [selectedServer, setSelectedServer] = useState(null); // 선택된 서버 경로
+ const [selectedServer, setSelectedServerState] = useState(() => {
+ // localStorage에서 선택된 서버 복원
+ return localStorage.getItem('selectedMinecraftServer') || null;
+ });
const [servers, setServers] = useState([]); // 서버 목록 (API에서 가져옴)
const [serverLoading, setServerLoading] = useState(false); // 서버 시작/종료 로딩
const [serverDialog, setServerDialog] = useState({ show: false, action: null, server: null }); // 시작/종료 확인 다이얼로그
@@ -860,6 +863,16 @@ export default function Admin({ isMobile = false }) {
}
}, []); // 의존성 없음 - 마운트 시에만 실행
+ // 선택된 서버 설정 (localStorage에도 저장)
+ const setSelectedServer = (serverPath) => {
+ setSelectedServerState(serverPath);
+ if (serverPath) {
+ localStorage.setItem('selectedMinecraftServer', serverPath);
+ } else {
+ localStorage.removeItem('selectedMinecraftServer');
+ }
+ };
+
// 서버 목록 fetch
const fetchServers = async () => {
try {
@@ -1581,11 +1594,14 @@ export default function Admin({ isMobile = false }) {
{/* 서버 관리 */}
{(() => {
const runningServer = servers.find(s => s.running);
- const otherServers = servers.filter(s => !s.running);
+ const selectedServerData = servers.find(s => s.path === selectedServer);
+ // 실행 중인 서버가 있으면 그것을, 없으면 선택된 서버를 표시
+ const displayServer = runningServer || selectedServerData;
+ const isRunning = !!runningServer;
return (
- {/* 헤더 - 실행 중인 서버 표시 */}
+ {/* 헤더 */}
🖥️ 서버 관리
@@ -1593,62 +1609,87 @@ export default function Admin({ isMobile = false }) {
)}
- {runningServer && (
+ {isRunning && (
-
{runningServer.id}
+
실행 중
)}
- {/* 실행 중인 서버가 있으면 상태 카드 표시 */}
- {runningServer && (
-
+ {/* 선택된/실행 중인 서버 카드 */}
+ {displayServer ? (
+
-
-
+
+ {isRunning ? (
+
+ ) : (
+
+ )}
-
{runningServer.id}
+
{displayServer.id}
-
- {runningServer.loader}
+
+ {displayServer.loader}
•
- {runningServer.path.split('/')[1]}
+ {displayServer.path.split('/')[1]}
+ ) : (
+
)}
{/* 서버 선택 (접힘/펼침) - 실행 중이면 비활성화 */}
-
+
- {isServerListExpanded && !runningServer && (
+ {isServerListExpanded && !isRunning && (
- {otherServers.length === 0 ? (
+ {servers.length === 0 ? (
서버가 없습니다
) : (
- otherServers.map((server) => (
+ servers.map((server) => (