import React from 'react'; import { formatBytes } from '@/utils/format'; import { useI18n } from '@/utils/chromeI18n'; import { cn } from '@/lib/utils'; import type { StorageSizeInfo } from './useStorageCleaner'; import { Checkbox } from '@/components/ui/checkbox'; interface OptionItemProps extends React.HTMLAttributes { labelKey: string; checked: boolean; sizeInfo?: StorageSizeInfo; onChange: () => void; } export default function OptionItem({ labelKey, checked, sizeInfo, onChange, className, ...props }: OptionItemProps) { const { t } = useI18n('storageCleaner'); const sizeValue = sizeInfo?.value; const isCount = sizeInfo?.displayType === 'count'; return (
{t(labelKey)} {sizeValue !== undefined && sizeValue > 0 ? ( {isCount ? `${sizeValue} ${t('storageCleaner:countUnit')}` : formatBytes(sizeValue)} ) : ( {t('storageCleaner:noData')} )}
e.stopPropagation()} onCheckedChange={onChange} className="h-4 w-4 shrink-0 rounded border-input data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground" />
); }