Skip to content

Commit a1c7513

Browse files
authored
Merge pull request #95 from DMU-DebugVisual/sunwoong
화면 공유 UI 추가 및 Live 페이지 푸터 제거
2 parents 8d6e68b + 169a85a commit a1c7513

File tree

3 files changed

+350
-124
lines changed

3 files changed

+350
-124
lines changed

src/App.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,9 @@ function AppContent() {
3030

3131
const isSignupPage = location.pathname === "/signup";
3232
const isIdePage = location.pathname.startsWith("/ide");
33-
const isMainPage = location.pathname === "/"; // 👈 추가: 메인 페이지 플래그
33+
const isMainPage = location.pathname === "/";
34+
// ✅ CodecastLive 페이지 플래그 추가
35+
const isCodecastLivePage = location.pathname === "/broadcast/live";
3436

3537
useEffect(() => {
3638
const token = localStorage.getItem('token');
@@ -89,8 +91,8 @@ function AppContent() {
8991
</Route>
9092
</Routes>
9193

92-
{/* 👈 푸터는 메인 페이지, 회원가입, IDE 페이지에서는 숨깁니다. */}
93-
{(!isSignupPage && !isIdePage && !isMainPage) && <Footer />}
94+
{/* 👈 푸터 렌더링 조건 수정: CodecastLive 페이지가 아닐 때만 렌더링 */}
95+
{(!isSignupPage && !isIdePage && !isMainPage && !isCodecastLivePage) && <Footer />}
9496

9597
{isLoginModalOpen && (
9698
<Login

src/components/codecast/codecastlive/CodecastLive.css

Lines changed: 101 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -118,10 +118,6 @@
118118
padding: 0;
119119
}
120120

121-
/* 필요시 헤더를 얇게 만들고 싶다면
122-
.broadcast-wrapper:fullscreen .broadcastlive-header { height: 48px; padding: 8px 16px; }
123-
*/
124-
125121
/* ✅ 프리뷰 스트립(최소 크롬 / 카드만 보이게) */
126122
.preview-strip.nochrome {
127123
position: absolute;
@@ -173,15 +169,6 @@
173169
scroll-snap-align: center; /* 카드 가운데 스냅 */
174170
}
175171

176-
/* (옵션) CodePreviewList 내부 카드 공용 보정 (필요할 때만) */
177-
/*
178-
.preview-card {
179-
min-width: 220px;
180-
max-width: 260px;
181-
flex: 0 0 auto; // 가로 고정폭 카드
182-
}
183-
*/
184-
185172
/* ✅ 프리뷰가 겹치지 않게 에디터 하단 패딩 */
186173
.editor-area .code-editor { padding-bottom: 170px; }
187174

@@ -199,7 +186,7 @@
199186
background: rgba(255,255,255,0.9);
200187
backdrop-filter: blur(8px);
201188
cursor: pointer;
202-
z-index: 5;
189+
z-index: 1001; /* 제어 바 (1000) 보다 높게 설정 */
203190
box-shadow: 0 8px 18px rgba(0,0,0,0.18);
204191
}
205192

@@ -211,4 +198,103 @@
211198

212199
/* 전체화면 시 살짝 위치 보정 (선택) */
213200
.broadcast-wrapper:fullscreen .preview-toggle.open { bottom: 150px; }
214-
.broadcast-wrapper:fullscreen .preview-strip.nochrome { bottom: 8px; }
201+
.broadcast-wrapper:fullscreen .preview-strip.nochrome { bottom: 8px; }
202+
203+
/* ================================================= */
204+
/* ✅ 디스코드 스타일 하단 제어 바 (Controls Bar) */
205+
/* ================================================= */
206+
207+
.broadcast-controls-bar {
208+
position: fixed;
209+
bottom: 20px;
210+
right: 20px;
211+
left: auto;
212+
transform: none;
213+
214+
display: flex;
215+
/* ✅ 수정: 버튼 그룹을 오른쪽 끝으로 붙이기 */
216+
justify-content: flex-end;
217+
align-items: center;
218+
219+
padding: 0; /* 패딩 최소화 */
220+
z-index: 1000;
221+
222+
background: transparent; /* 배경 투명 */
223+
box-shadow: none; /* 그림자 제거 */
224+
}
225+
226+
.left-controls, .right-controls {
227+
display: flex;
228+
align-items: center;
229+
gap: 8px;
230+
flex-grow: 0;
231+
/* ✅ 수정: right-controls는 비어있으므로 left-controls만 사용 */
232+
}
233+
234+
.left-controls {
235+
justify-content: flex-end; /* 오른쪽 끝으로 이동 */
236+
}
237+
238+
/* 개별 제어 버튼 스타일 */
239+
.control-btn {
240+
display: flex;
241+
align-items: center;
242+
/* ✅ 수정: 패딩 증가 (6px 12px -> 8px 16px) */
243+
padding: 8px 16px;
244+
border: none;
245+
border-radius: 6px;
246+
cursor: pointer;
247+
/* ✅ 수정: 폰트 크기 증가 */
248+
font-size: 16px;
249+
font-weight: 600;
250+
transition: background-color 0.2s, opacity 0.2s;
251+
white-space: nowrap;
252+
}
253+
254+
.control-btn:disabled {
255+
opacity: 0.5;
256+
cursor: not-allowed;
257+
}
258+
259+
.control-btn .icon {
260+
/* ✅ 수정: 아이콘 크기 증가 */
261+
margin-right: 8px; /* 여백도 살짝 조정 */
262+
font-size: 20px;
263+
}
264+
265+
/* 화면 공유 버튼 (기본/비활성 상태) */
266+
.share-screen {
267+
background-color: #5865f2; /* 디스코드 블루 */
268+
color: white;
269+
}
270+
271+
.share-screen:not(:disabled):hover {
272+
background-color: #4752c4;
273+
}
274+
275+
/* 화면 공유 버튼 (활성 상태, 공유 중) */
276+
.share-screen.active {
277+
background-color: #38a75e; /* 공유 중 녹색 */
278+
}
279+
280+
.share-screen.active:not(:disabled):hover {
281+
background-color: #2e8b4c;
282+
}
283+
284+
.share-screen .check-icon {
285+
/* ✅ 수정: 체크 아이콘 크기도 버튼 크기에 맞춰 조정 */
286+
font-size: 16px;
287+
margin-right: 8px;
288+
}
289+
290+
291+
/* 다크 모드 오버라이드 */
292+
.dark-mode .broadcast-controls-bar {
293+
background: transparent;
294+
}
295+
296+
/* 전체화면 모드에서 하단 제어 바 위치 조정 */
297+
.broadcast-wrapper:fullscreen .broadcast-controls-bar {
298+
bottom: 10px;
299+
right: 10px;
300+
}

0 commit comments

Comments
 (0)