主要修复: - 修复批量上传闭包陷阱,防止文件丢失 - 添加 fileName 参数传递原始文件名,保留正确扩展名 - 添加取消检查回调,改进批量上传取消功能 其他改进: - 优化搜索功能和管理后台 - 添加 FRP 故障诊断文档 - 更新环境验证和网络检测
36 lines
895 B
TypeScript
36 lines
895 B
TypeScript
import React from 'react'
|
|
|
|
/**
|
|
* 高亮文本中的关键词
|
|
* @param text 原始文本
|
|
* @param keyword 关键词
|
|
* @returns ReactNode
|
|
*/
|
|
export function highlightText(text: string, keyword: string): React.ReactNode {
|
|
if (!keyword || !text || !keyword.trim()) return text
|
|
|
|
// 转义正则特殊字符
|
|
const escapeRegex = (str: string) => str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')
|
|
|
|
try {
|
|
const regex = new RegExp(`(${escapeRegex(keyword.trim())})`, 'gi')
|
|
const parts = text.split(regex)
|
|
|
|
return (
|
|
<>
|
|
{parts.map((part, i) =>
|
|
regex.test(part) ? (
|
|
<mark key={i} className="bg-transparent text-blue-600 dark:text-blue-400 font-bold px-0">
|
|
{part}
|
|
</mark>
|
|
) : (
|
|
part
|
|
)
|
|
)}
|
|
</>
|
|
)
|
|
} catch (e) {
|
|
console.error('Highlight error:', e)
|
|
return text
|
|
}
|
|
} |