fix(qrcode): 去除已上传图片区域重复的文本预览

- 移除图片预览区域中的解析结果文本预览
- 解析结果只在下方的 TextInputArea 中显示
- 避免重复显示相同内容
This commit is contained in:
雨霖铃
2026-05-30 21:03:35 +08:00
parent e919af6857
commit 37bdeb5f3a
@@ -9,21 +9,11 @@ import { Button } from '@/components/ui/button';
import { Label } from '@/components/ui/label';
import { cn } from '@/lib/utils';
/** 解析结果文本的最大显示字符数 */
const RESULT_PREVIEW_MAX_LENGTH = 80;
export default function ParsePanel() {
const { t } = useI18n('qrCode');
const { parserState, setParserState, handleFileChange, handleClearFile } = useQrCodeContext();
const hasFile = parserState.selectedFile !== null;
const hasResult = parserState.decodedResult.length > 0;
/** 截断文本用于预览显示 */
const getTruncatedText = (text: string) => {
if (text.length <= RESULT_PREVIEW_MAX_LENGTH) return text;
return text.slice(0, RESULT_PREVIEW_MAX_LENGTH) + '...';
};
// 全局粘贴事件监听
const handlePaste = useCallback(
@@ -107,14 +97,6 @@ export default function ParsePanel() {
/>
<div className="flex-1 min-w-0">
<p className="text-sm text-foreground truncate">{parserState.selectedFile?.name}</p>
{hasResult && (
<p
className="text-xs text-muted-foreground mt-1 line-clamp-1"
title={parserState.decodedResult}
>
{getTruncatedText(parserState.decodedResult)}
</p>
)}
{parserState.parsing && (
<p className="text-xs text-primary animate-pulse mt-1">{t('qrCode:parsing')}</p>
)}