import { useRouter } from 'next/navigation' import { flashcardsService } from '@/lib/services/flashcards' import { useToast } from '@/components/shared/Toast' import type { Flashcard } from '@/lib/services/flashcards' interface UseFlashcardOperationsReturn { handleEdit: (card: Flashcard) => void handleDelete: (card: Flashcard, onSuccess?: () => void) => Promise handleToggleFavorite: (card: Flashcard, onSuccess?: () => void) => Promise } export const useFlashcardOperations = (): UseFlashcardOperationsReturn => { const router = useRouter() const toast = useToast() const handleEdit = (card: Flashcard) => { router.push(`/flashcards/${card.id}?edit=true`) } const handleDelete = async (card: Flashcard, onSuccess?: () => void) => { if (!confirm(`確定要刪除詞卡「${card.word}」嗎?`)) { return } try { const result = await flashcardsService.deleteFlashcard(card.id) if (result.success) { if (onSuccess) { await onSuccess() } toast.success(`詞卡「${card.word}」已刪除`) } else { toast.error(result.error || '刪除失敗') } } catch (err) { toast.error('刪除失敗,請重試') } } const handleToggleFavorite = async (card: Flashcard, onSuccess?: () => void) => { try { const result = await flashcardsService.toggleFavorite(card.id) if (result.success) { if (onSuccess) { await onSuccess() } toast.success(`${card.isFavorite ? '已取消收藏' : '已加入收藏'}「${card.word}」`) } else { toast.error(result.error || '操作失敗') } } catch (err) { toast.error('操作失敗,請重試') } } return { handleEdit, handleDelete, handleToggleFavorite } }