Skip to content

Commit

Permalink
feat(types): add OnSelectHandler
Browse files Browse the repository at this point in the history
  • Loading branch information
gpbl committed Sep 8, 2024
1 parent f3df4bc commit 9db259c
Showing 1 changed file with 14 additions and 36 deletions.
50 changes: 14 additions & 36 deletions src/types/props.ts
Original file line number Diff line number Diff line change
Expand Up @@ -470,6 +470,14 @@ export interface PropsBase {
onDayTouchStart?: DayEventHandler<React.TouchEvent>;
}

/** Shared handler type for onSelect events */
export type OnSelectHandler<T> = (
selected: T,
triggerDate: Date,
modifiers: Modifiers,
e: React.MouseEvent | React.KeyboardEvent
) => void;

/**
* The props when the single selection is required.
*
Expand All @@ -481,12 +489,7 @@ export interface PropsSingleRequired {
/** The selected date. */
selected: Date | undefined;
/** Event handler when a day is selected. */
onSelect?: (
selected: Date,
triggerDate: Date,
modifiers: Modifiers,
e: React.MouseEvent | React.KeyboardEvent
) => void | undefined;
onSelect?: OnSelectHandler<Date>;
}

/**
Expand All @@ -500,12 +503,7 @@ export interface PropsSingle {
/** The selected date. */
selected?: Date | undefined;
/** Event handler when a day is selected. */
onSelect?: (
selected: Date | undefined,
triggerDate: Date,
modifiers: Modifiers,
e: React.MouseEvent | React.KeyboardEvent
) => void;
onSelect?: OnSelectHandler<Date | undefined>;
}

/**
Expand All @@ -519,12 +517,7 @@ export interface PropsMultiRequired {
/** The selected dates. */
selected: Date[] | undefined;
/** Event handler when days are selected. */
onSelect?: (
selected: Date[],
triggerDate: Date,
modifiers: Modifiers,
e: React.MouseEvent | React.KeyboardEvent
) => void;
onSelect?: OnSelectHandler<Date[]>;
/** The minimum number of selectable days. */
min?: number;
/** The maximum number of selectable days. */
Expand All @@ -542,12 +535,7 @@ export interface PropsMulti {
/** The selected dates. */
selected?: Date[] | undefined;
/** Event handler when days are selected. */
onSelect?: (
selected: Date[] | undefined,
triggerDate: Date,
modifiers: Modifiers,
e: React.MouseEvent | React.KeyboardEvent
) => void;
onSelect?: OnSelectHandler<Date[] | undefined>;
/** The minimum number of selectable days. */
min?: number;
/** The maximum number of selectable days. */
Expand All @@ -571,12 +559,7 @@ export interface PropsRangeRequired {
/** The selected range. */
selected: DateRange | undefined;
/** Event handler when a range is selected. */
onSelect?: (
selected: DateRange,
triggerDate: Date,
modifiers: Modifiers,
e: React.MouseEvent | React.KeyboardEvent
) => void;
onSelect?: OnSelectHandler<DateRange>;
/** The minimum number of days to include in the range. */
min?: number;
/** The maximum number of days to include in the range. */
Expand All @@ -600,12 +583,7 @@ export interface PropsRange {
/** The selected range. */
selected?: DateRange | undefined;
/** Event handler when the selection changes. */
onSelect?: (
selected: DateRange | undefined,
triggerDate: Date,
modifiers: Modifiers,
e: React.MouseEvent | React.KeyboardEvent
) => void | undefined;
onSelect?: OnSelectHandler<DateRange | undefined>;
/** The minimum number of days to include in the range. */
min?: number;
/** The maximum number of days to include in the range. */
Expand Down

0 comments on commit 9db259c

Please sign in to comment.