-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.d.ts
45 lines (37 loc) · 1.54 KB
/
index.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import { MutableRefObject, ReactElement, Ref } from "react";
import * as CSS from "csstype";
export type PredefinedTransition = "slideFade" | "slide" | "fade" | "rise" | "scale"
export interface TransitionProperty {
value: string;
duration?: CSS.Property.TransitionDuration;
delay?: CSS.Property.TransitionDelay;
easing?: CSS.Property.TransitionTimingFunction;
}
export type Transition =
PredefinedTransition |
{ [key: string]: string | number | TransitionProperty };
export interface ShowtimeSettings {
startHidden?: boolean;
startWithTransition?: boolean;
transition?: Transition;
showTransition?: Transition;
hideTransition?: Transition;
duration?: CSS.Property.TransitionDuration;
delay?: CSS.Property.TransitionDelay;
easing?: CSS.Property.TransitionTimingFunction;
showDuration?: CSS.Property.TransitionDuration;
showDelay?: CSS.Property.TransitionDelay;
showEasing?: CSS.Property.TransitionTimingFunction;
hideDuration?: CSS.Property.TransitionDuration;
hideDelay?: CSS.Property.TransitionDelay;
hideEasing?: CSS.Property.TransitionTimingFunction;
}
export interface ShowtimeProps<T> extends ShowtimeSettings {
children: JSX.Element | ((ref: Ref<T>) => JSX.Element);
show: boolean;
onHidden?: () => void;
onShowing?: () => void;
}
export function useShowtime<T>(settings?: PredefinedTransition | ShowtimeSettings):
[MutableRefObject<T>, boolean, () => void, () => void];
export function Showtime<T>(props: ShowtimeProps<T>): ReactElement<ShowtimeProps<T>>;