From 663e5ef777f5e6c943efdbc0a80d42c847fdd462 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Mon, 14 Sep 2026 20:45:28 +0800 Subject: [PATCH] refactor: delete useTemplateDetail.ts (#1899 #1900) --- .../templates/hooks/useTemplateDetail.ts | 62 ------------------- 1 file changed, 62 deletions(-) delete mode 100644 apps/web/src/pages/templates/hooks/useTemplateDetail.ts diff --git a/apps/web/src/pages/templates/hooks/useTemplateDetail.ts b/apps/web/src/pages/templates/hooks/useTemplateDetail.ts deleted file mode 100644 index 62be75ece..000000000 --- a/apps/web/src/pages/templates/hooks/useTemplateDetail.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { useState, useCallback } from "react" -import { useQueryClient } from "@tanstack/react-query" -import { message } from "antd" -import { getTemplate, type TemplateItem } from "@/api/templates" - -interface UseTemplateDetailProps { - onToggleFavorite: (id: string) => void - onUse: (template: TemplateItem) => void - onCopy: (template: TemplateItem) => void -} - -export const useTemplateDetail = ({ onToggleFavorite, onUse, onCopy }: UseTemplateDetailProps) => { - const queryClient = useQueryClient() - - /* 弹窗状态 */ - const [previewTemplate, setPreviewTemplate] = useState(null) - const [detailLoading, setDetailLoading] = useState(false) - - /* 点击卡片 → 获取详情并展示弹窗 */ - const handlePreview = useCallback(async (template: TemplateItem) => { - setDetailLoading(true) - setPreviewTemplate(template) - try { - const detail = await getTemplate(template.id) - setPreviewTemplate(detail) - } catch { - message.warning("模板详情加载失败,显示摘要信息") - } finally { - setDetailLoading(false) - } - }, []) - - /* 关闭弹窗 */ - const handleClose = useCallback(() => { - setPreviewTemplate(null) - setDetailLoading(false) - }, []) - - /* 收藏切换(同时更新预览模板的状态) */ - const handleToggleFavorite = useCallback( - (id: string) => { - onToggleFavorite(id) - /* 乐观更新详情弹窗的收藏状态 */ - setPreviewTemplate((prev) => - prev && prev.id === id ? { ...prev, is_favorite: !prev.is_favorite } : prev, - ) - /* 刷新列表缓存 */ - queryClient.invalidateQueries({ queryKey: ["templates"] }) - }, - [onToggleFavorite, queryClient], - ) - - return { - previewTemplate, - detailLoading, - handlePreview, - handleClose, - handleToggleFavorite, - handleUse: onUse, - handleCopy: onCopy, - } -}