awesome-gcl
Version:
React component library
39 lines (38 loc) • 1.24 kB
TypeScript
/// <reference types="react" />
import { IconDefinition } from "@fortawesome/free-solid-svg-icons";
import { GSizeEnum } from "../types";
export type SelectComponentsEnum = 'wrapper' | 'label' | 'inputWrapper' | 'input' | 'optionList' | 'optionItem';
export type SelectSizeComponentEnums = 'label' | 'inputWrapper' | 'input' | 'optionList';
export type SelectAdditionalClassesPropTypes = {
wrapper?: string[];
label?: string[];
inputWrapper?: string[];
input?: string[];
optionList?: string[];
optionItem?: string[];
};
export type SelectConstructorPropTypes = {
additionalClasses?: SelectAdditionalClassesPropTypes;
size: GSizeEnum;
disabled?: boolean;
isOpen: boolean;
};
type ItemPropTypes = Record<string, any> & {
label: string;
};
export type SelectPropTypes = {
label?: string;
selected?: ItemPropTypes;
placeholder?: string;
options: ItemPropTypes[];
onChange: (option: ItemPropTypes) => void;
icon?: IconDefinition;
disabled?: boolean;
size: GSizeEnum;
additionalClasses?: SelectAdditionalClassesPropTypes;
};
export type UseSelectPropTypes = {
isVisible: boolean;
setIsVisible: React.Dispatch<React.SetStateAction<boolean>>;
};
export {};