9097c48b1f
- 新增 dashboardFeatures.ts 和 useDashboard.ts 文件,封装仪表板功能的解析和状态管理逻辑。 - 更新 Dashboard 组件,使用 useDashboard 钩子简化可见工具和最近使用工具的处理。 - 添加仪表板功能的单元测试,确保功能正确性。 - 更新 README.md,移除不再使用的 ToolCard 组件说明。
33 lines
764 B
TypeScript
33 lines
764 B
TypeScript
import QrScanner from 'qr-scanner';
|
|
|
|
interface QrCodeParseResult {
|
|
success: boolean;
|
|
data?: string;
|
|
error?: string;
|
|
}
|
|
|
|
/**
|
|
* 从文件中解析二维码
|
|
*/
|
|
export async function parseQrCodeFromFile(file: File): Promise<QrCodeParseResult> {
|
|
try {
|
|
const result = await QrScanner.scanImage(file, {
|
|
returnDetailedScanResult: true,
|
|
});
|
|
|
|
if (result && result.data) {
|
|
return { success: true, data: result.data };
|
|
} else {
|
|
return { success: false, error: '未检测到二维码' };
|
|
}
|
|
} catch (err) {
|
|
const errorMsg =
|
|
err === 'No QR code found'
|
|
? '未检测到二维码'
|
|
: err instanceof Error
|
|
? err.message
|
|
: String(err);
|
|
return { success: false, error: errorMsg };
|
|
}
|
|
}
|