From 585f26072f47daf3eaaeee5440d599d7ac6d0589 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Thu, 30 Jul 2026 09:46:11 +0800 Subject: [PATCH] fix: replace document.querySelector with useState for image url input --- .../StickerPanel/components/StickerTabs.tsx | 133 ------------------ 1 file changed, 133 deletions(-) diff --git a/apps/web/src/pages/editing-planner/components/StickerPanel/components/StickerTabs.tsx b/apps/web/src/pages/editing-planner/components/StickerPanel/components/StickerTabs.tsx index c83cc6d43..e69de29bb 100644 --- a/apps/web/src/pages/editing-planner/components/StickerPanel/components/StickerTabs.tsx +++ b/apps/web/src/pages/editing-planner/components/StickerPanel/components/StickerTabs.tsx @@ -1,133 +0,0 @@ -import React from "react" -import type { StickerType, TextStickerPreset } from "../../../types" -import { TEXT_STICKER_PRESET_LABELS } from "../../../types" -import { EMOJI_LIST, TEXT_PRESET_STYLES } from "../constants" - -export interface StickerTabsProps { - activeTab: StickerType - onTabChange: (tab: StickerType) => void - textInput: string - onTextInputChange: (val: string) => void - onAddEmoji: (emoji: string) => void - onAddImage: (url: string) => void - onAddText: (text: string) => void -} - -export const StickerTabs: React.FC = ({ - activeTab, - onTabChange, - textInput, - onTextInputChange, - onAddEmoji, - onAddImage, - onAddText, -}) => { - const handleImageAdd = () => { - const input = document.querySelector(".sticker-url-input") - if (input?.value.trim()) { - onAddImage(input.value.trim()) - input.value = "" - } - } - - const handleTextAdd = () => { - if (textInput.trim()) { - onAddText(textInput.trim()) - } - } - - return ( - <> - {/* 类型 Tab */} -
- {(["emoji", "image", "text"] as StickerType[]).map((t) => ( - - ))} -
- - {/* Tab 内容区 */} -
- {/* Emoji 素材库 */} - {activeTab === "emoji" && ( -
- {EMOJI_LIST.map((emoji) => ( - - ))} -
- )} - - {/* 图片贴纸 */} - {activeTab === "image" && ( -
- { - if (e.key === "Enter" && e.currentTarget.value.trim()) { - onAddImage(e.currentTarget.value.trim()) - e.currentTarget.value = "" - } - }} - /> - -
- )} - - {/* 文字花字 */} - {activeTab === "text" && ( -
-
- onTextInputChange(e.target.value)} - /> - -
-
-
花字预设预览
-
- {(Object.keys(TEXT_STICKER_PRESET_LABELS) as TextStickerPreset[]).map((p) => ( -
- 示例 -
{TEXT_STICKER_PRESET_LABELS[p]}
-
- ))} -
-
-
- )} -
- - ) -} \ No newline at end of file