@ucloud-pccl/react-components
Version:
UCloud pccl react components
23 lines (22 loc) • 799 B
TypeScript
import { Context } from 'react';
export type V = number | string;
export type ValueMap = Map<V, boolean>;
export interface SelectableContext {
valueMap?: ValueMap;
toggleSelect: (v: V) => void;
addItem: () => void;
removeItem: () => void;
}
export type SelectedStatus = 'NONE' | 'ALL' | 'PART';
declare const useGroup: (value: V[], onChange: (v: V[], selectedStatus: SelectedStatus) => void) => {
valueMap: ValueMap;
toggleSelect: (v: V) => void;
addItem: () => void;
removeItem: () => void;
};
declare const useItem: <T extends SelectableContext>(value: V, checked: boolean, context: Context<T>) => {
checked: boolean;
toggle: (v: V) => void;
restContext: Omit<T, "valueMap" | "toggleSelect" | "addItem" | "removeItem">;
};
export { useGroup, useItem };