From 55774b64e001105ee08262caa917de37b46c6cec Mon Sep 17 00:00:00 2001 From: Yun Chan Date: Wed, 8 Apr 2026 11:11:14 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20MetalCard=20onClick=20=EB=AF=B8=EC=A0=84?= =?UTF-8?q?=EB=8B=AC=20=EB=AC=B8=EC=A0=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit MetalCard가 onClick/sx props를 받지 않아 클릭 이벤트가 전달되지 않던 문제. 세션 카드와 템플릿 선택 카드를 Box로 감싸서 onClick 처리. --- CLAUDE.md | 3 ++- src/main/ipc/meeting-mode-handlers.ts | 6 +++++- .../components/meeting/AddDocumentDialog.tsx | 19 +++++++++++-------- src/renderer/pages/MeetingModePage.tsx | 6 ++++-- 4 files changed, 22 insertions(+), 12 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index ab16b80..cc76887 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -32,7 +32,7 @@ npm run typecheck # tsc --noEmit - 녹음 UI: 9개 웨이브 바, cos 분포, 100ms ## 현재 상태 -Phase 1~14.5 전체 완료 + 랜딩 페이지(site/). +Phase 1~15 전체 완료 + 랜딩 페이지(site/). 차단 이슈: @nut-tree-fork/nut-js 포크 사용 ## 설계 문서 (구현 시 Read 도구로 참조) @@ -51,6 +51,7 @@ Phase12+: FileTranscriptionService, MeetingSummaryService, DictationTemplateServ Phase13+: VoiceConversationService, RAGService, VoiceActionService Phase14: MeetingModeService Phase14.5: MeetingDocTemplateService + 다중 문서 생성/편집/내보내기 +Phase15: Auto Polish + AI 채팅 + 마인드맵 + 공유 ## DS 컴포넌트 (src/renderer/components/ds/) CrtDisplay, InstrumentPanel, Led, PhysicalButton, MetalCard, diff --git a/src/main/ipc/meeting-mode-handlers.ts b/src/main/ipc/meeting-mode-handlers.ts index 0639271..579179b 100644 --- a/src/main/ipc/meeting-mode-handlers.ts +++ b/src/main/ipc/meeting-mode-handlers.ts @@ -70,8 +70,12 @@ export function registerMeetingModeHandlers(): void { ipcMain.handle(ch.GET_SESSION, (_event, params: MeetingGetSessionParams) => { try { - return ipcSuccess(getMeetingModeService().getSession(params.sessionId)) + logger.info(`getSession 호출: ${params.sessionId}`) + const result = getMeetingModeService().getSession(params.sessionId) + logger.info(`getSession 성공: documents=${result.documents.length}`) + return ipcSuccess(result) } catch (err) { + logger.error(`getSession 실패: ${err instanceof Error ? err.message : String(err)}`) return ipcError(ErrorCode.MeetingSessionNotFound, err instanceof Error ? err.message : String(err)) } }) diff --git a/src/renderer/components/meeting/AddDocumentDialog.tsx b/src/renderer/components/meeting/AddDocumentDialog.tsx index 4742466..8113cc5 100644 --- a/src/renderer/components/meeting/AddDocumentDialog.tsx +++ b/src/renderer/components/meeting/AddDocumentDialog.tsx @@ -107,7 +107,7 @@ export function AddDocumentDialog({ {/* 템플릿 목록 */} {templates.map((tp) => ( - !generating && setSelectedId(tp.id)} sx={{ @@ -115,19 +115,22 @@ export function AddDocumentDialog({ opacity: generating ? 0.6 : 1, border: selectedId === tp.id - ? `1px solid ${d3roPalette.accent.amber}` - : `1px solid ${d3roPalette.border.subtle}`, + ? `2px solid ${d3roPalette.accent.amber}` + : `2px solid transparent`, + borderRadius: d3roRadius.inner, transition: 'border-color 0.15s', '&:hover': { borderColor: generating ? undefined : d3roPalette.accent.amberDim, }, }} > - {tp.name} - - {tp.description} - - + + {tp.name} + + {tp.description} + + + ))} diff --git a/src/renderer/pages/MeetingModePage.tsx b/src/renderer/pages/MeetingModePage.tsx index 1b03ea4..09a08dd 100644 --- a/src/renderer/pages/MeetingModePage.tsx +++ b/src/renderer/pages/MeetingModePage.tsx @@ -220,11 +220,12 @@ export function MeetingModePage(): React.ReactElement { ) : ( {sessions.map((session) => ( - handleViewDetail(session.id)} + sx={{ cursor: 'pointer', '&:hover': { opacity: 0.85 } }} > + @@ -258,6 +259,7 @@ export function MeetingModePage(): React.ReactElement { )} + ))} )}