refactor: remove meaningless comments

Remove 50+ noise comments across the codebase:
- AI-generated verbose prose (💡 emoji, '超进化', '大闸', etc.)
- Comments that restate what the code obviously does
- Comments about deleted code
- Import-level noise comments
- Overly verbose Chinese section markers

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
雨霖铃
2026-05-28 20:37:52 +08:00
parent b79fe7dd49
commit e140af7698
34 changed files with 32 additions and 242 deletions
@@ -11,17 +11,12 @@ export default function GeneratePanel() {
return (
<div className="grid grid-cols-1 md:grid-cols-2 gap-6 w-full items-stretch select-none p-0.5">
{/* 左翼:高性能受控输入翼终端 */}
<div
className={cn(
'border border-border rounded-xl bg-card text-card-foreground shadow-sm flex flex-col p-4',
'focus-within:ring-1 focus-within:ring-ring focus-within:border-ring',
)}
>
{/* 💡 2. 独立外置标签架(A11y 无障碍对齐):
- 彻底删掉 TextInputArea 上引发崩溃的违规属性。
- 改用正统的 <Label />,并注入标准的高度无障碍样式,间距比例极度平滑。
*/}
<div className="flex flex-col space-y-2.5 h-full">
<Label className="text-[10px] font-bold text-muted-foreground/90 uppercase tracking-wider select-none pl-0.5">
{t('qrCode:urlInputLabel')}
@@ -44,7 +39,6 @@ export default function GeneratePanel() {
</div>
</div>
{/* 右翼:活态二维码高精生成区 */}
<div className="flex flex-col h-full">
<QrCodePreview
qrCodeDataUrl={generatorState.qrCodeDataUrl}
@@ -18,7 +18,6 @@ export default function ParsePanel() {
const items = e.clipboardData?.items;
if (!items) return;
// 检查是否有图片
for (let i = 0; i < items.length; i++) {
if (items[i].type.startsWith('image/')) {
e.preventDefault();
@@ -31,7 +30,6 @@ export default function ParsePanel() {
}
}
// 检查是否有 Base64 字符串
const text = e.clipboardData?.getData('text/plain');
if (text && text.startsWith('data:image/')) {
e.preventDefault();
@@ -58,11 +56,7 @@ export default function ParsePanel() {
}, [handlePaste]);
return (
/* 💡 统一大视觉轴:
- 追加 p-0.5 微隔离,配合 gap-6 建立与生成面板(GeneratePanel)绝对像素对齐的网格天平。
*/
<div className="grid grid-cols-1 md:grid-cols-2 gap-6 w-full items-stretch select-none p-0.5">
{/* 左翼:图片接收/拖拽/剪贴板上传终端 */}
<div className="flex flex-col h-full">
<ImageUploader
selectedFile={parserState.selectedFile}
@@ -75,16 +69,13 @@ export default function ParsePanel() {
/>
</div>
{/* 右翼:高阶解析出码只读终端 */}
<div
className={cn(
'border border-border rounded-xl bg-card text-card-foreground shadow-sm flex flex-col p-4',
// 💡 视觉对称增强:加入相同的聚焦变量环联动,使双翼权重达成完美绝对平衡
'focus-within:ring-1 focus-within:ring-ring focus-within:border-ring',
)}
>
<div className="flex flex-col space-y-2.5 h-full">
{/* 💡 修复点:物理剔除 TextInputArea 上的违规 title,改用符合 Vercel 美学的极致大写极细原子标签 */}
<Label className="text-[10px] font-bold text-muted-foreground/90 uppercase tracking-wider pl-0.5">
{t('qrCode:resultLabel')}
</Label>
+3 -8
View File
@@ -1,23 +1,19 @@
import type { Dispatch, SetStateAction } from 'react'; // 💡 1. 显式解构导入类型,彻底掐灭 TS2304 报错
import type { Dispatch, SetStateAction } from 'react';
import { createContext, useContext } from 'react';
import type { QrCodeGeneratorState, QrCodeMode, QrCodeParserState } from '../types';
export interface QrCodeContextValue {
// 核心主视图路由模式切换卡
mode: QrCodeMode;
setMode: (mode: QrCodeMode) => void;
// 1. 流式生成器终端状态机驱动
generatorState: QrCodeGeneratorState;
setTextToEncode: (text: string) => void;
// 💡 架构纯净化:物理剔除暴露给外部的命令式 generateQrCode 算子。
// 外部面板只需 setTextToEncode 驱动源文本更新,生成动作由内部流式管线全自动自发自愈完成!
downloadQrCode: () => void;
copyQrCode: () => Promise<void>;
// 2. 活态反向解析器终端状态机驱动
parserState: QrCodeParserState;
setParserState: Dispatch<SetStateAction<QrCodeParserState>>; // 💡 规整为纯净的直接类型使用
setParserState: Dispatch<SetStateAction<QrCodeParserState>>;
parseQrCode: (file: File) => Promise<void>;
handleFileChange: (file: File) => void;
handleClearFile: () => void;
@@ -28,7 +24,6 @@ export const QrCodeContext = createContext<QrCodeContextValue | null>(null);
export function useQrCodeContext() {
const context = useContext(QrCodeContext);
if (!context) {
// 边界鲁棒性防护大闸
throw new Error('useQrCodeContext must be used within a valid QrCodeProvider container');
}
return context;
-15
View File
@@ -12,10 +12,8 @@ export function useQrCode(): QrCodeContextValue {
const { t } = useI18n('qrCode');
const { showMessage } = useSnackbar();
// 核心路由视图模式
const [mode, setMode] = useState<QrCodeMode>('generate');
// 1. 生成器状态流(大幅瘦身:剔除 generating 状态)
const [generatorState, setGeneratorState] = useState<
Omit<QrCodeGeneratorState, 'generating' | 'qrCodeDataUrl'>
>({
@@ -23,7 +21,6 @@ export function useQrCode(): QrCodeContextValue {
inputError: '',
});
// 2. 解析器状态流
const [parserState, setParserState] = useState<QrCodeParserState>({
decodedResult: '',
parsing: false,
@@ -33,12 +30,8 @@ export function useQrCode(): QrCodeContextValue {
dragging: false,
});
// 3. 高频打字极速防抖
const debouncedTextToEncode = useDebounce(generatorState.textToEncode, 200);
// 💡 4. 贯彻方案 A(无副作用超导管线):
// 彻底删除原有的 generateQrCodeRef、3个 useEffect、1个 useRef 以及相关的复杂状态机。
// 二维码画布纯粹作为防抖文本的派生变量同步算出,0重绘死循环风险,体验平滑如镜!
const qrCodeDataUrl = useMemo(() => {
const text = debouncedTextToEncode.trim();
if (!text) return '';
@@ -49,14 +42,12 @@ export function useQrCode(): QrCodeContextValue {
url = 'https://' + url;
}
// 💡 暗黑模式自适应大闸:实时嗅探系统 DOM 阶度
const isDark = document.documentElement.classList.contains('dark');
const qr = new QRious({
value: url,
size: 260,
level: 'H',
// 暗黑模式下使用透明底、月白前景色;白天模式下使用标准现代黑白配
foreground: isDark ? '#f3f4f6' : '#0f172a',
background: isDark ? 'transparent' : '#ffffff',
});
@@ -68,7 +59,6 @@ export function useQrCode(): QrCodeContextValue {
}
}, [debouncedTextToEncode]);
// 融合派生数据至完整状态体,满足外部组件强类型契合
const fullGeneratorState = useMemo<QrCodeGeneratorState>(
() => ({
...generatorState,
@@ -78,12 +68,10 @@ export function useQrCode(): QrCodeContextValue {
[generatorState, qrCodeDataUrl],
);
// 设置输入文本
const setTextToEncode = useCallback((text: string) => {
setGeneratorState((prev) => ({ ...prev, textToEncode: text, inputError: '' }));
}, []);
// 处理右键菜单数据上下文
const handleContextMenuData = useCallback((payload: string) => {
setMode('generate');
setGeneratorState((prev) => ({ ...prev, textToEncode: payload, inputError: '' }));
@@ -119,7 +107,6 @@ export function useQrCode(): QrCodeContextValue {
[t, showMessage],
);
// 下载二维码
const downloadQrCode = useCallback(() => {
if (!qrCodeDataUrl) return;
@@ -130,7 +117,6 @@ export function useQrCode(): QrCodeContextValue {
showMessage(t('qrCode:qrCodeDownloadSuccess'), { severity: 'success', autoHideDuration: 1000 });
}, [qrCodeDataUrl, showMessage, t]);
// 复制二维码至剪贴板
const copyQrCode = useCallback(async () => {
if (!qrCodeDataUrl) return;
@@ -151,7 +137,6 @@ export function useQrCode(): QrCodeContextValue {
}
}, [qrCodeDataUrl, showMessage, t]);
// 处理文件选择
const handleFileChange = useCallback(
(file: File) => {
setParserState((prev) => {
-9
View File
@@ -19,12 +19,7 @@ export default function Index() {
return (
<QrCodeContext.Provider value={qrCode}>
{/* 💡 统一视觉规范大超进化:
- 彻底剥离破坏流式宽度的 max-w-[400px] 枷锁,开启标准的 w-full 全自适应包裹。
- 替换为标准的 p-4 呼吸内边距配合 flex flex-col space-y-4,接管系统级重排!
*/}
<div className="p-4 w-full flex flex-col space-y-4 min-h-[500px] select-none">
{/* 流式中央控制切流卡:注入 sm 断点防御,防范单栏状态下发生变形 */}
<div className="w-full sm:w-fit pt-0.5">
<SwitchButtonGroup
value={qrCode.mode}
@@ -34,10 +29,6 @@ export default function Index() {
/>
</div>
{/* 💡 面板渲染沙箱:
- 在切流渲染时,利用独立的 mt-2 增加纵深边界线。
- 配合内部自带的双翼 Flex 聚焦大边框,形成坚固如铁的架构闭环!
*/}
<div className="w-full pt-1.5">
{qrCode.mode === 'generate' ? (
<div>