Skip to content

Latest commit

 

History

History
405 lines (289 loc) · 9.95 KB

index.md

File metadata and controls

405 lines (289 loc) · 9.95 KB

Table of contents

index.ts

Functions

useDropdownHandler

function useDropdownHandler(options: RequiredUndefined<DropdownHandlerOptions>): DropdownHandlerResult;

Parameters

Name Type
options RequiredUndefined<DropdownHandlerOptions>

Return type

DropdownHandlerResult


useDropdownOpenState

function useDropdownOpenState(isOpen: boolean | undefined = undefined, defaultIsOpen: boolean = false): [boolean, Dispatch];

Parameters

Name Type Default value
isOpen boolean | undefined undefined
defaultIsOpen boolean false

Return type

[boolean, Dispatch]


useKeyboardKeyUp

function useKeyboardKeyUp(callback: (event: KeyboardEvent) => void): void;

Parameters

Name Type
callback (event: KeyboardEvent) => void

Return type

void


useWindowClick

function useWindowClick(callback: (event: MouseEvent) => void): void;

Parameters

Name Type
callback (event: MouseEvent) => void

Return type

void

Interfaces

DropdownHandlerProps

interface DropdownHandlerProps extends ClassNameProps, Partial<DropdownHandlerOptions> {
    children?: ReactNode;
    toggleOnHeaderClick?: boolean | undefined;
    closeOnSectionClick?: boolean | undefined;
}

Extends

ClassNameProps

Partial<DropdownHandlerOptions>

Properties

Name Type Optional
children ReactNode true
toggleOnHeaderClick boolean | undefined true
closeOnSectionClick boolean | undefined true

DropdownHeaderProps

interface DropdownHeaderProps extends ClassNameProps {
    children?: ReactNode;
}

Extends

ClassNameProps

Properties

Name Type Optional
children ReactNode true

DropdownSectionProps

interface DropdownSectionProps extends ClassNameProps {
    children?: ReactNode;
}

Extends

ClassNameProps

Properties

Name Type Optional
children ReactNode true

DropdownHandlerOptions

interface DropdownHandlerOptions {
    defaultIsOpen: boolean;
    isOpen: boolean;
    onToggle: DropdownOnToggleHandler;
    disabled: boolean;
    closeOnOutsideClick: boolean;
    closeOnEscapeClick: boolean;
}

Properties

Name Type Optional
defaultIsOpen boolean false
isOpen boolean false
onToggle DropdownOnToggleHandler false
disabled boolean false
closeOnOutsideClick boolean false
closeOnEscapeClick boolean false

DropdownHandlerResult

interface DropdownHandlerResult {
    updateOpenState: (isOpen: boolean, eventSource: DropdownEventSource) => void;
    isOpen: boolean;
    containerRef: RefObject<HTMLElement | undefined>;
}

Properties

Name Type Optional
updateOpenState (isOpen: boolean, eventSource: DropdownEventSource) => void false
isOpen boolean false
containerRef RefObject<HTMLElement | undefined> false

DropdownContextDto

interface DropdownContextDto {
    isOpen: boolean;
    isDisabled: boolean;
    onHeaderClick: () => void;
    onSectionClick: () => void;
}

Properties

Name Type Optional
isOpen boolean false
isDisabled boolean false
onHeaderClick () => void false
onSectionClick () => void false

ClassNameProps

interface ClassNameProps {
    className?: string | undefined;
    openClassName?: string | undefined;
    closedClassName?: string | undefined;
    disabledClassName?: string | undefined;
}

Properties

Name Type Optional
className string | undefined true
openClassName string | undefined true
closedClassName string | undefined true
disabledClassName string | undefined true

Types

OpenStateUpdater

type OpenStateUpdater = Dispatch<SetStateAction<boolean>>;

Type

Dispatch<SetStateAction>


DropdownOnToggleHandler

type DropdownOnToggleHandler = (isOpen: boolean, source: DropdownEventSource) => void;

Type

(isOpen: boolean, source: DropdownEventSource) => void


RequiredUndefined

type RequiredUndefined<TT> = {
    [TKey extends keyof TT]: TT[TKey] | undefined
};

Type parameters

Name
TT

Type

{ [TKey extends keyof TT]: TT[TKey] | undefined }

Enums

DropdownEventSource

enum DropdownEventSource {
     HeaderClick = 8,
     SectionClick = 16,
     OutsideClick = 24,
     EscapeClick = 32,
     ManualTrigger = 64
}

Members

Name Value
HeaderClick 8
SectionClick 16
OutsideClick 24
EscapeClick 32
ManualTrigger 64

Variables

DropdownHandler

const DropdownHandler: (_props: DropdownHandlerProps) => Element;

Type

(_props: DropdownHandlerProps) => Element


DropdownHeader

const DropdownHeader: (props: DropdownHeaderProps) => Element;

Type

(props: DropdownHeaderProps) => Element


DropdownSection

const DropdownSection: (props: DropdownSectionProps) => Element | null;

Type

(props: DropdownSectionProps) => Element | null


DropdownContext

const DropdownContext: Context<DropdownContextDto>;

Type

Context<DropdownContextDto>