feat(desktop): PC·업데이트 팝업 Apple/Windows 브랜드 아이콘

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Macbook
2026-06-15 17:03:07 +09:00
parent a5e14ba676
commit 0768ec37b9
5 changed files with 130 additions and 9 deletions
+10 -8
View File
@@ -4,6 +4,7 @@
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
import QRCode from 'qrcode';
import DraggableModalFrame from './DraggableModalFrame';
import { PlatformBrandIcon } from './icons/PlatformBrandIcons';
import {
loadDesktopAppBuildReadiness,
loadDesktopAppBuildStatus,
@@ -161,17 +162,18 @@ const PlatformCard: React.FC<{
mobile?: MobileAppReleaseInfoDto | null;
}> = ({ platform, release, mobile }) => {
const configs = {
mac: { label: 'macOS (Apple Silicon · Intel)', icon: '🍎', ext: '.dmg', isLink: false },
windows: { label: 'Windows (64-bit)', icon: '🪟', ext: '.exe', isLink: false },
android: { label: 'Android (패드 · 폰 · 별도 버전)', icon: '🤖', ext: '.apk', isLink: false },
mac: { label: 'macOS (Apple Silicon · Intel)', ext: '.dmg', isLink: false },
windows: { label: 'Windows (64-bit)', ext: '.exe', isLink: false },
android: { label: 'Android (패드 · 폰 · 별도 버전)', ext: '.apk', isLink: false },
} as const;
const { label, icon, ext } = configs[platform];
const { label, ext } = configs[platform];
const brandIcon = <PlatformBrandIcon platform={platform} />;
if (platform === 'android') {
if (!mobile?.available || !mobile.downloadUrl) {
return (
<div className="app-download-pc-card app-download-pc-card--empty">
<div className="app-download-pc-icon" aria-hidden>{icon}</div>
{brandIcon}
<div>
<strong>{label}</strong>
<p className="app-download-muted"> ({ext})</p>
@@ -181,7 +183,7 @@ const PlatformCard: React.FC<{
}
return (
<div className="app-download-pc-card">
<div className="app-download-pc-icon" aria-hidden>{icon}</div>
{brandIcon}
<div className="app-download-pc-body">
<strong>{label}</strong>
<p className="app-download-meta">
@@ -207,7 +209,7 @@ const PlatformCard: React.FC<{
if (!release?.available || !release.downloadUrl) {
return (
<div className="app-download-pc-card app-download-pc-card--empty">
<div className="app-download-pc-icon" aria-hidden>{icon}</div>
{brandIcon}
<div>
<strong>{label}</strong>
<p className="app-download-muted"> ({ext})</p>
@@ -218,7 +220,7 @@ const PlatformCard: React.FC<{
return (
<div className="app-download-pc-card">
<div className="app-download-pc-icon" aria-hidden>{icon}</div>
{brandIcon}
<div className="app-download-pc-body">
<strong>{label}</strong>
<p className="app-download-meta">