diff --git a/src/pages/launcher/LauncherBuildPage.tsx b/src/pages/launcher/LauncherBuildPage.tsx index 46d90f2..6994ffb 100644 --- a/src/pages/launcher/LauncherBuildPage.tsx +++ b/src/pages/launcher/LauncherBuildPage.tsx @@ -66,20 +66,20 @@ function BuildWorker({ job }: { job: LauncherBuildJob }) { const initial = name.trim().charAt(0).toUpperCase() || '?'; return ( - + {avatarUrl && !failed ? ( setFailed(true)} /> ) : ( - + {initial} )} - {name} + {name} ); } @@ -441,7 +441,7 @@ export function LauncherBuildPage() {
브랜치 {job.branch} 커밋 {job.commitSha || '-'} - 작업자 + 작업자 생성 {formatDate(job.createdAt)}
diff --git a/src/pages/operations/NoticesPage.tsx b/src/pages/operations/NoticesPage.tsx index 6d65952..4fb350c 100644 --- a/src/pages/operations/NoticesPage.tsx +++ b/src/pages/operations/NoticesPage.tsx @@ -73,6 +73,34 @@ function exposureCell(row: LauncherNotice) { ); } +function NoticeCreator({ notice }: { notice: LauncherNotice }) { + const [failed, setFailed] = useState(false); + const name = notice.createdByName || notice.createdByEmail || 'admin'; + const avatarUrl = notice.createdByAvatarUrl || ''; + const initial = name.trim().charAt(0).toUpperCase() || 'A'; + + return ( +
+ {avatarUrl && !failed ? ( + setFailed(true)} + /> + ) : ( + + {initial} + + )} +
+

{name}

+

{formatNoticeDateTime(notice.createdAt)}

+
+
+ ); +} + function toForm(notice: LauncherNotice): NoticeForm { return { appKey: notice.appKey, @@ -246,7 +274,7 @@ export function NoticesPage() { }, { key: 'appKey', header: '대상 앱', cell: (row) => }, { key: 'exposure', header: '노출 일시', className: 'w-48 px-5 py-3 font-medium', cell: exposureCell }, - { key: 'createdAt', header: '생성일시', cell: (row) => {formatNoticeDateTime(row.createdAt)} }, + { key: 'createdAt', header: '생성', className: 'w-48 px-5 py-3', cell: (row) => }, { key: 'actions', header: '', diff --git a/src/pages/operations/operations-api.ts b/src/pages/operations/operations-api.ts index 8baf422..cf2e940 100644 --- a/src/pages/operations/operations-api.ts +++ b/src/pages/operations/operations-api.ts @@ -79,6 +79,9 @@ export type LauncherNotice = { endsAt?: string | null; priority: number; status?: string; + createdByName?: string | null; + createdByEmail?: string | null; + createdByAvatarUrl?: string | null; createdAt: string; updatedAt?: string; };