From 6e30a96f6d7fd0da3a80cd102b3716fd0edf12e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=81=B5=E5=BA=94?= Date: Mon, 6 Jul 2026 18:59:10 +0800 Subject: [PATCH] fix: eslint unused-disable + prettier formatting - Remove unused eslint-disable in MainLayout.tsx (react-refresh/only-export-components) - Format client.ts, ClipPropertiesPanel.tsx, TimelinePanel.tsx, EditingPlanner.tsx with prettier --- apps/web/src/api/client.ts | 18 ++++++++++++------ apps/web/src/components/layout/MainLayout.tsx | 1 - .../pages/editing-planner/EditingPlanner.tsx | 9 ++++----- .../components/ClipPropertiesPanel.tsx | 18 +++++++++++++----- .../components/TimelinePanel.tsx | 18 +++++++----------- 5 files changed, 36 insertions(+), 28 deletions(-) diff --git a/apps/web/src/api/client.ts b/apps/web/src/api/client.ts index 598f3ebb1..3b06edd82 100644 --- a/apps/web/src/api/client.ts +++ b/apps/web/src/api/client.ts @@ -59,7 +59,11 @@ apiClient.interceptors.response.use( }; // 401 → 尝试刷新 Token - if (error.response?.status === 401 && originalRequest && !originalRequest._retry) { + if ( + error.response?.status === 401 && + originalRequest && + !originalRequest._retry + ) { const refreshToken = useAuthStore.getState().refreshToken; // 无 refresh_token → 直接登出 @@ -90,11 +94,13 @@ apiClient.interceptors.response.use( const newRefreshToken = data.refresh_token ?? refreshToken; // 更新 Zustand + localStorage - useAuthStore.getState().setAuth( - useAuthStore.getState().user!, - newAccessToken, - newRefreshToken, - ); + useAuthStore + .getState() + .setAuth( + useAuthStore.getState().user!, + newAccessToken, + newRefreshToken, + ); // 处理排队的请求 processQueue(null, newAccessToken); diff --git a/apps/web/src/components/layout/MainLayout.tsx b/apps/web/src/components/layout/MainLayout.tsx index 60afbfad8..32d775cb2 100644 --- a/apps/web/src/components/layout/MainLayout.tsx +++ b/apps/web/src/components/layout/MainLayout.tsx @@ -16,7 +16,6 @@ import Sidebar from "./Sidebar"; import "./MainLayout.css"; /** 侧边栏上下文 —— 子组件可读取折叠状态 */ -// eslint-disable-next-line react-refresh/only-export-components export interface SidebarContextValue { collapsed: boolean; } diff --git a/apps/web/src/pages/editing-planner/EditingPlanner.tsx b/apps/web/src/pages/editing-planner/EditingPlanner.tsx index 053f260e9..e5b456cb3 100755 --- a/apps/web/src/pages/editing-planner/EditingPlanner.tsx +++ b/apps/web/src/pages/editing-planner/EditingPlanner.tsx @@ -25,10 +25,7 @@ import { generateFromTemplate, MODE_LABELS, } from "@/api/editingPlanner"; -import type { - EditPlanGeneration, - MediaAsset, -} from "@/api/editPlans"; +import type { EditPlanGeneration, MediaAsset } from "@/api/editPlans"; import { getMediaAssets, getEditPlanGenerations, @@ -206,7 +203,9 @@ const EditingPlanner: React.FC = () => { const mapped: ClipData[] = tpl.segments.map((seg, idx) => ({ id: seg.id || `seg-${idx}`, template_segment_id: seg.id || `seg-${idx}`, - type: (seg.material_type === "voiceover" ? "voice" : "pip") as ClipType, + type: (seg.material_type === "voiceover" + ? "voice" + : "pip") as ClipType, duration: (seg.duration_min + seg.duration_max) / 2, startOffset: 0, script_text: "", diff --git a/apps/web/src/pages/editing-planner/components/ClipPropertiesPanel.tsx b/apps/web/src/pages/editing-planner/components/ClipPropertiesPanel.tsx index cb63b2329..40ec60371 100644 --- a/apps/web/src/pages/editing-planner/components/ClipPropertiesPanel.tsx +++ b/apps/web/src/pages/editing-planner/components/ClipPropertiesPanel.tsx @@ -136,7 +136,10 @@ function getActivePreset(settings: TitleSettings): string | null { /** 片段类型图标/标签 */ const CLIP_TYPE_ICONS: Record = { voice: "🎙️", pip: "🖼️" }; -const CLIP_TYPE_LABELS: Record = { voice: "口播", pip: "画中画" }; +const CLIP_TYPE_LABELS: Record = { + voice: "口播", + pip: "画中画", +}; const ClipPropertiesPanel: React.FC = ({ selectedClip, @@ -457,8 +460,7 @@ const ClipPropertiesPanel: React.FC = ({ className={`ep-clip-type-btn${selectedClip.type === t ? " active" : ""}${disabled ? " disabled" : ""}`} disabled={disabled} onClick={() => - !disabled && - onClipUpdate(selectedClip.id, { type: t }) + !disabled && onClipUpdate(selectedClip.id, { type: t }) } > {CLIP_TYPE_ICONS[t]} {CLIP_TYPE_LABELS[t]} @@ -480,7 +482,10 @@ const ClipPropertiesPanel: React.FC = ({ value={selectedClip.duration} onChange={(e) => onClipUpdate(selectedClip.id, { - duration: Math.max(1, Math.min(120, Number(e.target.value) || 1)), + duration: Math.max( + 1, + Math.min(120, Number(e.target.value) || 1), + ), }) } /> @@ -502,7 +507,10 @@ const ClipPropertiesPanel: React.FC = ({ value={selectedClip.startOffset} onChange={(e) => onClipUpdate(selectedClip.id, { - startOffset: Math.max(0, Math.min(9999, Number(e.target.value) || 0)), + startOffset: Math.max( + 0, + Math.min(9999, Number(e.target.value) || 0), + ), }) } /> diff --git a/apps/web/src/pages/editing-planner/components/TimelinePanel.tsx b/apps/web/src/pages/editing-planner/components/TimelinePanel.tsx index 6f3f8d793..e89947375 100755 --- a/apps/web/src/pages/editing-planner/components/TimelinePanel.tsx +++ b/apps/web/src/pages/editing-planner/components/TimelinePanel.tsx @@ -156,9 +156,7 @@ const TimelinePanel: React.FC = ({ {/* 一镜到底提示 */} {currentMode === "one_take" && ( -
- 🎥 一镜到底模式无片段 -
+
🎥 一镜到底模式无片段
)} {/* 时间标尺 */} @@ -188,16 +186,11 @@ const TimelinePanel: React.FC = ({ {/* 水平片段轨道 */} {currentMode !== "one_take" && ( -
+
{clips.length === 0 ? (
🎬
-
- 点击右侧 + 添加片段 -
+
点击右侧 + 添加片段
) : ( clips.map((clip, idx) => ( @@ -286,7 +279,10 @@ const TimelinePanel: React.FC = ({
{/* 确认按钮 */} -