From de3cb91191a78fce8a5de4110eb436bd7a042d32 Mon Sep 17 00:00:00 2001 From: caadiq Date: Fri, 6 Feb 2026 18:16:12 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EB=B4=87=20=ED=85=8C=EC=9D=B4=EB=B8=94?= =?UTF-8?q?=20=EC=95=A1=EC=85=98=20=EB=B2=84=ED=8A=BC=20=EC=99=84=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 삭제 버튼 추가 (YouTube만) - 버튼 순서: 전체 동기화 → 시작/정지 → 수정 → 삭제 - 모든 버튼에 Tooltip 적용 Co-Authored-By: Claude Opus 4.5 --- .../src/components/pc/admin/bot/BotCard.jsx | 77 ++++++++++++------- .../pages/pc/admin/schedules/ScheduleBots.jsx | 1 + 2 files changed, 49 insertions(+), 29 deletions(-) diff --git a/frontend/src/components/pc/admin/bot/BotCard.jsx b/frontend/src/components/pc/admin/bot/BotCard.jsx index f7ad509..e5f62fe 100644 --- a/frontend/src/components/pc/admin/bot/BotCard.jsx +++ b/frontend/src/components/pc/admin/bot/BotCard.jsx @@ -3,7 +3,8 @@ */ import { memo } from 'react'; import { motion } from 'framer-motion'; -import { Play, Square, RefreshCw, RotateCcw, Pencil } from 'lucide-react'; +import { Play, Square, RefreshCw, RotateCcw, Pencil, Trash2 } from 'lucide-react'; +import { Tooltip } from '@/components/common'; // X 아이콘 컴포넌트 export const XIcon = ({ size = 20, fill = 'currentColor' }) => ( @@ -206,6 +207,7 @@ export const BotTableRow = memo(function BotTableRow({ onSync, onToggle, onEdit, + onDelete, onAnimationComplete, formatTime, formatInterval, @@ -241,38 +243,55 @@ export const BotTableRow = memo(function BotTableRow({
- - {bot.type === 'youtube' && onEdit && ( + {/* 전체 동기화 */} + + + {/* 시작/정지 */} + + + + {/* 수정 (YouTube만) */} + {bot.type === 'youtube' && onEdit && ( + + + + )} + {/* 삭제 (YouTube만) */} + {bot.type === 'youtube' && onDelete && ( + + + )} -
diff --git a/frontend/src/pages/pc/admin/schedules/ScheduleBots.jsx b/frontend/src/pages/pc/admin/schedules/ScheduleBots.jsx index 66be3cb..975fbf7 100644 --- a/frontend/src/pages/pc/admin/schedules/ScheduleBots.jsx +++ b/frontend/src/pages/pc/admin/schedules/ScheduleBots.jsx @@ -398,6 +398,7 @@ function ScheduleBots() { onSync={handleSyncAllVideos} onToggle={toggleBot} onEdit={(bot) => {/* TODO: 봇 수정 모달 */}} + onDelete={(bot) => {/* TODO: 봇 삭제 확인 */}} onAnimationComplete={() => isInitialLoad && index === sectionBots.length - 1 && setIsInitialLoad(false) }