import { useMemo } from "react" type Item = { id: string } export const useCheckboxChecked = ( allItems: Item[], selectedItems: Map, ) => { const getChecked = useMemo(() => { if (selectedItems.size === 0) { return false } const isEverythingSelected = allItems.every(item => selectedItems.has(item.id), ) if (isEverythingSelected) { return true } return "indeterminate" }, [allItems, selectedItems]) return getChecked }