d38bafe237
移除 chrome.i18n 后,将各功能页面、布局与工具模块的 UI 文案改为内联中文; 删除冗余注释与过度抽象(如 ToolCard、StatCard),精简 props 与状态管理; 同步优化 JsonTools、StorageCleaner、Timestamp、TestDataGenerator、Dashboard、 Base64Converter、RightClickRestorer、TextStatistics、TopBar、RouterProvider、 ThemeModeProvider 及生成器库与 utils 工具文件。
31 lines
1.1 KiB
TypeScript
31 lines
1.1 KiB
TypeScript
import { type FeatureConfig } from '@/config/features';
|
|
import { cn } from '@/lib/utils';
|
|
|
|
interface SearchResultItemProps {
|
|
feature: FeatureConfig;
|
|
selected: boolean;
|
|
onSelect: (feature: FeatureConfig) => void;
|
|
}
|
|
|
|
export default function SearchResultItem({ feature, selected, onSelect }: SearchResultItemProps) {
|
|
return (
|
|
<li
|
|
role="option"
|
|
aria-selected={selected}
|
|
onClick={() => onSelect(feature)}
|
|
className={cn(
|
|
'flex cursor-pointer items-center gap-3 rounded-md px-3 py-2.5 text-sm transition-colors',
|
|
selected ? 'bg-accent text-accent-foreground' : 'hover:bg-muted/60',
|
|
)}
|
|
>
|
|
<div className="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-muted/80 text-muted-foreground">
|
|
{feature.icon && <feature.icon className="h-4 w-4" />}
|
|
</div>
|
|
<div className="min-w-0 flex-1">
|
|
<p className="truncate font-medium text-foreground">{feature.label}</p>
|
|
<p className="mt-0.5 truncate text-xs text-muted-foreground">{feature.description}</p>
|
|
</div>
|
|
</li>
|
|
);
|
|
}
|