Skip to content

Commit b22ad9a

Browse files
chat26666minjee2758thezz9
authored
Style/main header (#149)
* 헤더 변경, 마이페이지,로그인 반영 스타일 변경 # Conflicts: # src/main/java/org/ezcode/codetest/presentation/view/ViewController.java # src/main/resources/static/css/header.css # src/main/resources/static/css/test-login.css # src/main/resources/static/css/test-main.css # src/main/resources/static/html/header.html # src/main/resources/templates/test-login.html # src/main/resources/templates/test-main.html * style: 로그인 로그아웃 hover 헤더 변경 * fix:chatting * dasd * chore : ui 변경 --------- Co-authored-by: minjee2758 <[email protected]> Co-authored-by: thezz9 <[email protected]>
1 parent a15e29a commit b22ad9a

File tree

3 files changed

+74
-9
lines changed

3 files changed

+74
-9
lines changed

src/main/resources/static/html/header.html

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,29 @@
4444
flex: 1;
4545
border: none;
4646
}
47+
48+
/* 조이패드 아이콘 스타일 */
49+
#joypadIcon {
50+
cursor: pointer;
51+
display: inline-flex;
52+
align-items: center;
53+
justify-content: center;
54+
width: 24px;
55+
height: 24px;
56+
fill: white;
57+
margin-left: 12px;
58+
transition: fill 0.3s;
59+
}
60+
#joypadIcon:hover {
61+
fill: #0f0;
62+
}
4763
</style>
4864

4965
<!-- 3) 기존 <header>…</header> -->
5066
<header>
51-
<div class="logo-placeholder" onclick="location.href='/test/main'" style="cursor:pointer;"></div>
67+
<div class="logo-placeholder"
68+
onclick="location.href='/test/main'"
69+
style="cursor:pointer;"></div>
5270
<nav>
5371
<ul>
5472
<li><a href="/test/problems">문제풀이</a></li>
@@ -76,6 +94,18 @@
7694
</svg>
7795
</li>
7896

97+
<!-- ★ 조이패드 아이콘 href 직접 지정, id 유지 ★ -->
98+
<li style="cursor:pointer;" title="게임 실행">
99+
<a href="/test/gaming" id="joypadIcon" aria-label="게임 실행">
100+
<svg viewBox="0 0 24 24" width="24" height="24" xmlns="http://www.w3.org/2000/svg" >
101+
<!-- 조이스틱 모양 아이콘 -->
102+
<circle cx="12" cy="12" r="10" stroke="#0f0" stroke-width="1.5" fill="none"/>
103+
<rect x="9" y="6" width="6" height="12" fill="#0f0" rx="2" ry="2"/>
104+
<circle cx="12" cy="10" r="1.5" fill="#111"/>
105+
</svg>
106+
</a>
107+
</li>
108+
79109
<li>
80110
<button id="loginBtn" class="login-button-header"
81111
onclick="location.href='/test/signin'">
@@ -93,7 +123,7 @@
93123
</nav>
94124
</header>
95125

96-
<!-- 4) 오버레이 & 드로어 HTML (header 바로 밑에) -->
126+
<!-- 4) 기존 오버레이 & 드로어 HTML (채팅용) -->
97127
<div id="chatOverlay" class="chat-overlay"
98128
onclick="
99129
this.classList.remove('open');
@@ -115,7 +145,7 @@
115145
<iframe src="/test/chatting"></iframe>
116146
</div>
117147

118-
<!-- 5) 토글 스크립트 -->
148+
<!-- 5) 토글 스크립트 (채팅 전용, 절대 건드리지 마세요) -->
119149
<script>
120150
const toggle = document.getElementById('chatToggle');
121151
const overlay = document.getElementById('chatOverlay');

src/main/resources/templates/chat-page.html

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
min-height: 100vh;
2323
}
2424

25+
2526
header {
2627
width: 100%;
2728
background: #12141f;
@@ -199,6 +200,14 @@
199200
</style>
200201
</head>
201202
<body>
203+
<div id="loginMessage" style="
204+
position:fixed; top:0; left:0; width:100%; height:100%;
205+
background:rgba(0,0,0,0.8); color:#fff;
206+
align-items:center; justify-content:center;
207+
font-size:1.5rem; z-index:10000;
208+
display:none;">
209+
로그인이 필요합니다.
210+
</div>
202211
<div id="app">
203212
<div id="sidebar">
204213
<h2>채팅방 목록</h2>
@@ -213,14 +222,17 @@ <h2>채팅방 목록</h2>
213222
</div>
214223
</div>
215224
<script>
225+
216226
let token, stompClient, chatSubscription, currentRoomId;
217227

218-
token = sessionStorage.getItem('accessToken').replace(/^Bearer\s+/, '');
219-
if (!token) {
220-
alert('로그인이 필요합니다.');
221-
location.href = '/test/signin';
228+
const rawToken = sessionStorage.getItem('accessToken');
229+
if (!rawToken) {
230+
// 로그인 메시지만 띄우고 종료
231+
document.getElementById('loginMessage').style.display = 'flex';
222232
} else {
223-
// 3) app 보이기 & 채팅 시작
233+
// 토큰이 있으면 로그인 메시지 숨기고 채팅 시작
234+
token = rawToken.replace(/^Bearer\s+/, '');
235+
document.getElementById('loginMessage').style.display = 'none';
224236
document.getElementById('app').style.display = 'flex';
225237
initChat();
226238
}

src/main/resources/templates/game-page.html

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -346,10 +346,12 @@
346346

347347
function saveToken(event) {
348348
event.preventDefault();
349-
savedToken = document.getElementById('jwt-token').value;
349+
const tokenInput = document.getElementById('jwt-token');
350+
savedToken = tokenInput.value.trim();
350351
if (savedToken) {
351352
document.getElementById('main-container').classList.add('main-visible');
352353
document.querySelector('.token-form').style.display = 'none';
354+
sessionStorage.setItem('accessToken', 'Bearer ' + savedToken);
353355
}
354356
}
355357

@@ -689,6 +691,17 @@ <h3 style="color:#fff; margin-bottom:8px;">${enc.name}</h3>
689691
}
690692
}
691693

694+
window.addEventListener('DOMContentLoaded', () => {
695+
const rawToken = sessionStorage.getItem('accessToken') || '';
696+
const token = rawToken.replace(/^Bearer\s+/, '');
697+
const tokenInput = document.getElementById('jwt-token');
698+
if (token) {
699+
tokenInput.value = token;
700+
// 자동 제출
701+
saveToken(new Event('submit'));
702+
}
703+
});
704+
692705
// Encounter 선택 POST 및 결과 처리
693706
async function sendEncounterChoice(encounterToken, playerDecision) {
694707
const pop = document.getElementById('popup');
@@ -1032,6 +1045,16 @@ <h3>📜 전투 로그</h3>
10321045
}
10331046
}
10341047

1048+
window.addEventListener('DOMContentLoaded', () => {
1049+
const rawToken = sessionStorage.getItem('accessToken') || '';
1050+
const token = rawToken.replace(/^Bearer\s+/, '');
1051+
const tokenInput = document.getElementById('jwt-token');
1052+
if (token) {
1053+
tokenInput.value = token;
1054+
}
1055+
// 토큰 없으면 입력 빈칸 유지, 자동 제출 안 함
1056+
});
1057+
10351058
async function gambleItem(category) {
10361059
const pop = document.getElementById('popup');
10371060
// 팝업 열고 로딩 표시

0 commit comments

Comments
 (0)