UNPKG

1.59 kBTypeScriptView Raw
1import * as React from 'react';
2
3import {Override} from './overrides';
4import {DURATION, PLACEMENT} from './constants.js';
5
6export type DurationT =
7 | typeof DURATION.infinite
8 | typeof DURATION.short
9 | typeof DURATION.medium
10 | typeof DURATION.long;
11
12export type PlacementT =
13 | typeof PLACEMENT.topLeft
14 | typeof PLACEMENT.top
15 | typeof PLACEMENT.topRight
16 | typeof PLACEMENT.bottomLeft
17 | typeof PLACEMENT.bottom
18 | typeof PLACEMENT.bottomRight;
19
20export type SnackbarElementOverridesT = {
21 Root?: Override<any>;
22 Content?: Override<any>;
23 StartEnhancerContainer?: Override<any>;
24 Spinner?: Override<any>;
25 Message?: Override<any>;
26 WrapActionButtonContainer?: Override<any>;
27 ActionButtonContainer?: Override<any>;
28};
29
30export type SnackbarElementPropsT = {
31 actionMessage?: string;
32 actionOnClick?: (event: React.MouseEvent<HTMLButtonElement>) => any;
33 focus?: boolean;
34 message: string;
35 overrides?: SnackbarElementOverridesT;
36 progress?: boolean;
37 startEnhancer?: React.FC<{size: number}>;
38};
39
40export type SnackbarProviderPropsT = {
41 children?: React.Node;
42 overrides?: SnackbarElementOverridesT & {
43 PlacementContainer?: Override<any>;
44 };
45 placement?: PlacementT;
46 defaultDuration?: DurationT;
47};
48
49export const DURATION: typeof DURATION;
50export const PLACEMENT: typeof PLACEMENT;
51export const SnackbarElement: React.FC<SnackbarElementPropsT>;
52export const SnackbarProvider: React.FC<SnackbarProviderPropsT>;
53export const useSnackbar: () => {
54 enqueue: (elementProps: SnackbarElementPropsT, duration?: DurationT) => any;
55 dequeue: () => any;
56};