fix: MetalCard onClick 미전달 문제 수정

MetalCard가 onClick/sx props를 받지 않아 클릭 이벤트가 전달되지 않던 문제.
세션 카드와 템플릿 선택 카드를 Box로 감싸서 onClick 처리.
This commit is contained in:
Yun Chan 2026-04-08 11:11:14 +09:00
parent 2b17bf47b7
commit 55774b64e0
4 changed files with 22 additions and 12 deletions

View file

@ -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))
}
})

View file

@ -107,7 +107,7 @@ export function AddDocumentDialog({
{/* 템플릿 목록 */}
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 1 }}>
{templates.map((tp) => (
<MetalCard
<Box
key={tp.id}
onClick={() => !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,
},
}}
>
<PhosphorText variant="compact">{tp.name}</PhosphorText>
<PhosphorText variant="dim" sx={{ fontSize: 11, mt: 0.25 }}>
{tp.description}
</PhosphorText>
</MetalCard>
<MetalCard>
<PhosphorText variant="compact">{tp.name}</PhosphorText>
<PhosphorText variant="dim" sx={{ fontSize: 11, mt: 0.25 }}>
{tp.description}
</PhosphorText>
</MetalCard>
</Box>
))}
</Box>

View file

@ -220,11 +220,12 @@ export function MeetingModePage(): React.ReactElement {
) : (
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 1.5 }}>
{sessions.map((session) => (
<MetalCard
<Box
key={session.id}
sx={{ cursor: 'pointer', '&:hover': { opacity: 0.85 } }}
onClick={() => handleViewDetail(session.id)}
sx={{ cursor: 'pointer', '&:hover': { opacity: 0.85 } }}
>
<MetalCard>
<Box sx={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>
<Box>
<PhosphorText variant="label">
@ -258,6 +259,7 @@ export function MeetingModePage(): React.ReactElement {
</Box>
)}
</MetalCard>
</Box>
))}
</Box>
)}