import React from 'react'; import type { StorageCleanerOptions } from '@/types/storage'; import type { StorageSizeInfo } from '../useStorageCleaner'; import OptionItem from './OptionItem'; import { cn } from '@/lib/utils'; import { Checkbox } from '@/components/ui/checkbox'; import { Label } from '@/components/ui/label'; import { CLEAN_OPTION_KEYS } from '../constants'; interface StorageOptionsGridProps extends React.HTMLAttributes { options: StorageCleanerOptions; sizes: Record; allSelected: boolean; someSelected: boolean; onOptionChange: (key: keyof StorageCleanerOptions) => void; onSelectAll: (checked: boolean) => void; } export default function StorageOptionsGrid({ options, sizes, allSelected, someSelected, onOptionChange, onSelectAll, className, ...props }: StorageOptionsGridProps) { const handleToggleAll = () => { onSelectAll(!allSelected); }; return (
{CLEAN_OPTION_KEYS.map((key) => ( onOptionChange(key)} /> ))}
e.stopPropagation()} onCheckedChange={(checked) => onSelectAll(checked === true)} className="h-4 w-4 shrink-0 rounded border-input data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=indeterminate]:bg-muted-foreground/40" />
); }