@transferwise/components 46.8.0 → 46.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/build/index.esm.js +50 -72
  2. package/build/index.esm.js.map +1 -1
  3. package/build/index.js +50 -72
  4. package/build/index.js.map +1 -1
  5. package/build/types/checkboxOption/CheckboxOption.d.ts +2 -2
  6. package/build/types/checkboxOption/CheckboxOption.d.ts.map +1 -1
  7. package/build/types/index.d.ts +2 -0
  8. package/build/types/index.d.ts.map +1 -1
  9. package/build/types/snackbar/Snackbar.d.ts +30 -22
  10. package/build/types/snackbar/Snackbar.d.ts.map +1 -1
  11. package/build/types/snackbar/SnackbarContext.d.ts +7 -2
  12. package/build/types/snackbar/SnackbarContext.d.ts.map +1 -1
  13. package/build/types/snackbar/SnackbarProvider.d.ts +7 -12
  14. package/build/types/snackbar/SnackbarProvider.d.ts.map +1 -1
  15. package/build/types/snackbar/index.d.ts +2 -0
  16. package/build/types/snackbar/index.d.ts.map +1 -0
  17. package/build/types/snackbar/useSnackbar.d.ts +1 -1
  18. package/build/types/snackbar/useSnackbar.d.ts.map +1 -1
  19. package/build/types/withNextPortal/withNextPortal.d.ts +1 -1
  20. package/build/types/withNextPortal/withNextPortal.d.ts.map +1 -1
  21. package/package.json +3 -3
  22. package/src/checkboxOption/CheckboxOption.tsx +2 -2
  23. package/src/index.ts +2 -0
  24. package/src/snackbar/{Snackbar.story.js → Snackbar.story.tsx} +2 -1
  25. package/src/snackbar/{Snackbar.js → Snackbar.tsx} +31 -32
  26. package/src/snackbar/SnackbarContext.ts +11 -0
  27. package/src/snackbar/SnackbarProvider.tsx +39 -0
  28. package/src/withNextPortal/withNextPortal.tsx +1 -1
  29. package/src/snackbar/SnackbarContext.js +0 -4
  30. package/src/snackbar/SnackbarProvider.js +0 -51
  31. /package/src/snackbar/{index.js → index.ts} +0 -0
  32. /package/src/snackbar/{useSnackbar.js → useSnackbar.ts} +0 -0
@@ -9,7 +9,7 @@ export type CheckboxOptionProps = Omit<BaseOptionProps, 'onChange'> & {
9
9
  /**
10
10
  * Function to call when the checkbox option is clicked
11
11
  */
12
- onChange: (value: boolean) => void;
12
+ onChange?: (value: boolean) => void;
13
13
  };
14
14
  declare const CheckboxOption: import("react").ForwardRefExoticComponent<Omit<BaseOptionProps, "onChange"> & {
15
15
  /**
@@ -19,7 +19,7 @@ declare const CheckboxOption: import("react").ForwardRefExoticComponent<Omit<Bas
19
19
  /**
20
20
  * Function to call when the checkbox option is clicked
21
21
  */
22
- onChange: (value: boolean) => void;
22
+ onChange?: ((value: boolean) => void) | undefined;
23
23
  } & import("react").RefAttributes<ReferenceType>>;
24
24
  export default CheckboxOption;
25
25
  //# sourceMappingURL=CheckboxOption.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxOption.d.ts","sourceRoot":"","sources":["../../../src/checkboxOption/CheckboxOption.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,GAAG;IACpE;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC,CAAC;AAEF,QAAA,MAAM,cAAc;IAVlB;;OAEG;;IAEH;;OAEG;sBACe,OAAO,KAAK,IAAI;iDAoBnC,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"CheckboxOption.d.ts","sourceRoot":"","sources":["../../../src/checkboxOption/CheckboxOption.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,GAAG;IACpE;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACrC,CAAC;AAEF,QAAA,MAAM,cAAc;IAVlB;;OAEG;;IAEH;;OAEG;wBACgB,OAAO,KAAK,IAAI;iDAoBpC,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -8,6 +8,8 @@ export type { SearchInputProps } from './inputs/SearchInput';
8
8
  export type { SelectInputGroupItem, SelectInputItem, SelectInputOptionContentProps, SelectInputOptionItem, SelectInputProps, SelectInputSeparatorItem, SelectInputTriggerButtonProps, } from './inputs/SelectInput';
9
9
  export type { TextAreaProps } from './inputs/TextArea';
10
10
  export type { PhoneNumberInputProps } from './phoneNumberInput/PhoneNumberInput';
11
+ export type { SnackbarProps } from './snackbar/Snackbar';
12
+ export type { SnackbarContextType } from './snackbar/SnackbarContext';
11
13
  export type { TextareaWithDisplayFormatProps } from './textareaWithDisplayFormat';
12
14
  export type { UploadedFile, UploadError, UploadResponse } from './uploadInput/types';
13
15
  export type { ModalProps } from './modal';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,30 @@
1
- import * as React from 'react';
2
-
3
- export interface SnackbarAction {
4
- label: string;
5
- onClick?: (...args: any[])=>any;
6
- }
7
-
8
- export type SnackbarTheme = "light" | "dark";
9
-
10
- export interface SnackbarProps {
11
- action?: SnackbarAction;
12
- text: React.ReactNode;
13
- theme?: SnackbarTheme;
14
- timeout: number;
15
- timestamp: number;
16
- }
17
-
18
- export class Snackbar extends React.Component<SnackbarProps, any> {
19
- render(): JSX.Element;
20
-
21
- }
22
-
1
+ import { Component } from 'react';
2
+ import { ThemeDark, ThemeLight } from '../common';
3
+ export declare const CSS_TRANSITION_DURATION = 400;
4
+ export interface SnackbarProps {
5
+ action?: {
6
+ label: string;
7
+ onClick?: React.MouseEventHandler<HTMLButtonElement>;
8
+ };
9
+ text: React.ReactNode;
10
+ theme?: ThemeLight | ThemeDark;
11
+ timeout: number;
12
+ timestamp: number;
13
+ }
14
+ interface SnackbarState extends Pick<SnackbarProps, 'action' | 'text' | 'theme'> {
15
+ visible: boolean;
16
+ }
17
+ export declare class Snackbar extends Component<SnackbarProps, SnackbarState> {
18
+ bodyRef: import("react").RefObject<HTMLSpanElement>;
19
+ timeout: number;
20
+ transitionTimeout: number;
21
+ constructor(props: SnackbarProps);
22
+ componentWillUnmount(): void;
23
+ shouldComponentUpdate(nextProps: SnackbarProps, nextState: SnackbarState): boolean;
24
+ setLeaveTimeout: () => void;
25
+ componentDidUpdate(previousProps: SnackbarProps): void;
26
+ render(): import("react").JSX.Element;
27
+ }
28
+ declare const _default: (props: SnackbarProps) => import("react").ReactPortal | null;
29
+ export default _default;
30
+ //# sourceMappingURL=Snackbar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Snackbar.d.ts","sourceRoot":"","sources":["../../../src/snackbar/Snackbar.js"],"names":[],"mappings":"AAUA,0CAA2C;AAE3C;IAIE,cAMC;IATD,yCAAyC;IACzC,SADW,UAAU,eAAe,CAAC,CACf;IAIpB;;;MAGC;IAGH,6BAGC;IAED,+DAaC;IAED,4BAME;IAHA,oCAEW;IAGb,6CAsBC;IAVO,8CAG2B;IASnC,sCAiCC;CACF"}
1
+ {"version":3,"file":"Snackbar.d.ts","sourceRoot":"","sources":["../../../src/snackbar/Snackbar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAa,MAAM,OAAO,CAAC;AAK7C,OAAO,EAAS,SAAS,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAIzD,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAE3C,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;KACtD,CAAC;IACF,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,aAAc,SAAQ,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IAC9E,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,QAAS,SAAQ,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IACnE,OAAO,6CAAgC;IACvC,OAAO,SAAK;IACZ,iBAAiB,SAAK;gBAEV,KAAK,EAAE,aAAa;IAQhC,oBAAoB;IAKpB,qBAAqB,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa;IAexE,eAAe,aAMb;IAEF,kBAAkB,CAAC,aAAa,EAAE,aAAa;IAwB/C,MAAM;CAkCP;;AAID,wBAAwC"}
@@ -1,3 +1,8 @@
1
- export const SnackbarContext: import("react").Context<any>;
2
- export const SnackbarConsumer: import("react").Consumer<any>;
1
+ /// <reference types="react" />
2
+ import { SnackbarProps } from './Snackbar';
3
+ export type SnackbarContextType = {
4
+ createSnackbar: (props: Omit<SnackbarProps, 'timeout' | 'timestamp'>) => void;
5
+ };
6
+ export declare const SnackbarContext: import("react").Context<SnackbarContextType>;
7
+ export declare const SnackbarConsumer: import("react").Consumer<SnackbarContextType>;
3
8
  //# sourceMappingURL=SnackbarContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SnackbarContext.d.ts","sourceRoot":"","sources":["../../../src/snackbar/SnackbarContext.js"],"names":[],"mappings":"AAEA,2DAA+C;AAC/C,6DAAyD"}
1
+ {"version":3,"file":"SnackbarContext.d.ts","sourceRoot":"","sources":["../../../src/snackbar/SnackbarContext.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,MAAM,mBAAmB,GAAG;IAChC,cAAc,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,WAAW,CAAC,KAAK,IAAI,CAAC;CAC/E,CAAC;AAEF,eAAO,MAAM,eAAe,8CAAmE,CAAC;AAEhG,eAAO,MAAM,gBAAgB,+CAA2B,CAAC"}
@@ -1,12 +1,7 @@
1
- import * as React from 'react';
2
-
3
- export interface SnackbarProviderProps {
4
- children: React.ReactNode;
5
- timeout?: number;
6
- }
7
-
8
- export default class SnackbarProvider extends React.Component<SnackbarProviderProps, any> {
9
- render(): JSX.Element;
10
-
11
- }
12
-
1
+ /// <reference types="react" />
2
+ export interface SnackbarProviderProps {
3
+ timeout?: number;
4
+ children?: React.ReactNode;
5
+ }
6
+ export default function SnackbarProvider({ timeout, children }: SnackbarProviderProps): import("react").JSX.Element;
7
+ //# sourceMappingURL=SnackbarProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SnackbarProvider.d.ts","sourceRoot":"","sources":["../../../src/snackbar/SnackbarProvider.js"],"names":[],"mappings":";AAMA;IACE,cAMC;IAJC;;;MAGC;IAGH;;;;eAEE;IAEF,sCAmBC;CACF"}
1
+ {"version":3,"file":"SnackbarProvider.d.ts","sourceRoot":"","sources":["../../../src/snackbar/SnackbarProvider.tsx"],"names":[],"mappings":";AAKA,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EAAE,OAAc,EAAE,QAAQ,EAAE,EAAE,qBAAqB,+BA4B3F"}
@@ -0,0 +1,2 @@
1
+ export { default as Snackbar } from './Snackbar';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/snackbar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC"}
@@ -1,3 +1,3 @@
1
+ declare function useSnackbar(): (props: Omit<import("./Snackbar").SnackbarProps, "timeout" | "timestamp">) => void;
1
2
  export default useSnackbar;
2
- declare function useSnackbar(): any;
3
3
  //# sourceMappingURL=useSnackbar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSnackbar.d.ts","sourceRoot":"","sources":["../../../src/snackbar/useSnackbar.js"],"names":[],"mappings":";AAIA,oCAIC"}
1
+ {"version":3,"file":"useSnackbar.d.ts","sourceRoot":"","sources":["../../../src/snackbar/useSnackbar.ts"],"names":[],"mappings":"AAIA,iBAAS,WAAW,uFAInB;AAED,eAAe,WAAW,CAAC"}
@@ -1,3 +1,3 @@
1
1
  /// <reference types="react" />
2
- export default function withNextPortalWrapper<T extends Record<string, any>>(Component: React.FunctionComponent<T>): (props: T) => import("react").ReactPortal | null;
2
+ export default function withNextPortalWrapper<T extends Record<string, any>>(Component: React.ComponentType<T>): (props: T) => import("react").ReactPortal | null;
3
3
  //# sourceMappingURL=withNextPortal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"withNextPortal.d.ts","sourceRoot":"","sources":["../../../src/withNextPortal/withNextPortal.tsx"],"names":[],"mappings":";AAGA,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzE,SAAS,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,WAEb,CAAC,wCAQ1B"}
1
+ {"version":3,"file":"withNextPortal.d.ts","sourceRoot":"","sources":["../../../src/withNextPortal/withNextPortal.tsx"],"names":[],"mappings":";AAGA,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzE,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,WAET,CAAC,wCAQ1B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@transferwise/components",
3
- "version": "46.8.0",
3
+ "version": "46.9.0",
4
4
  "description": "Neptune React components",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -77,13 +77,13 @@
77
77
  "storybook": "^7.4.5",
78
78
  "@transferwise/less-config": "3.1.0",
79
79
  "@transferwise/neptune-css": "14.9.5",
80
- "@wise/components-theming": "0.8.4"
80
+ "@wise/components-theming": "1.0.0"
81
81
  },
82
82
  "peerDependencies": {
83
83
  "@transferwise/icons": "^3.7.0",
84
84
  "@transferwise/neptune-css": "^14.9.5",
85
85
  "@wise/art": "^2.7.0",
86
- "@wise/components-theming": "^0.8.4",
86
+ "@wise/components-theming": "^1.0.0",
87
87
  "react": ">=16.14",
88
88
  "react-dom": ">=16.14",
89
89
  "react-intl": "^5.10.0 || ^6"
@@ -13,7 +13,7 @@ export type CheckboxOptionProps = Omit<BaseOptionProps, 'onChange'> & {
13
13
  /**
14
14
  * Function to call when the checkbox option is clicked
15
15
  */
16
- onChange: (value: boolean) => void;
16
+ onChange?: (value: boolean) => void;
17
17
  };
18
18
 
19
19
  const CheckboxOption = forwardRef<ReferenceType, CheckboxOptionProps>(
@@ -27,7 +27,7 @@ const CheckboxOption = forwardRef<ReferenceType, CheckboxOptionProps>(
27
27
  <CheckboxButton
28
28
  checked={checked}
29
29
  disabled={disabled}
30
- onChange={() => onChange(!checked)}
30
+ onChange={() => onChange?.(!checked)}
31
31
  />
32
32
  }
33
33
  />
package/src/index.ts CHANGED
@@ -16,6 +16,8 @@ export type {
16
16
  } from './inputs/SelectInput';
17
17
  export type { TextAreaProps } from './inputs/TextArea';
18
18
  export type { PhoneNumberInputProps } from './phoneNumberInput/PhoneNumberInput';
19
+ export type { SnackbarProps } from './snackbar/Snackbar';
20
+ export type { SnackbarContextType } from './snackbar/SnackbarContext';
19
21
  export type { TextareaWithDisplayFormatProps } from './textareaWithDisplayFormat';
20
22
  export type { UploadedFile, UploadError, UploadResponse } from './uploadInput/types';
21
23
  export type { ModalProps } from './modal';
@@ -1,5 +1,6 @@
1
1
  import { action } from '@storybook/addon-actions';
2
2
  import { number } from '@storybook/addon-knobs';
3
+ import { StoryContext } from '@storybook/react';
3
4
  import { Mobile, Theme, Switch, Bulb, Info, Coins } from '@transferwise/icons';
4
5
 
5
6
  import Button from '../button';
@@ -120,7 +121,7 @@ export const basic = () => {
120
121
  );
121
122
  };
122
123
 
123
- basic.play = async ({ canvasElement }) => {
124
+ basic.play = ({ canvasElement }: StoryContext) => {
124
125
  const canvas = within(canvasElement);
125
126
  userEvent.click(canvas.getByRole('button'));
126
127
  };
@@ -1,21 +1,36 @@
1
- import PropTypes from 'prop-types';
2
- import { Component, createRef, RefObject } from 'react';
1
+ import { Component, createRef } from 'react';
3
2
  import { CSSTransition } from 'react-transition-group';
4
3
 
5
4
  import ActionButton from '../actionButton';
6
5
  import Body from '../body';
7
- import { Theme } from '../common';
6
+ import { Theme, ThemeDark, ThemeLight } from '../common';
8
7
  import { DirectionContext } from '../provider/direction';
9
8
  import withNextPortal from '../withNextPortal/withNextPortal';
10
9
 
11
10
  export const CSS_TRANSITION_DURATION = 400;
12
11
 
13
- export class Snackbar extends Component {
14
- /** @type {RefObject<HTMLSpanElement>} */
15
- bodyRef = createRef();
12
+ export interface SnackbarProps {
13
+ action?: {
14
+ label: string;
15
+ onClick?: React.MouseEventHandler<HTMLButtonElement>;
16
+ };
17
+ text: React.ReactNode;
18
+ theme?: ThemeLight | ThemeDark;
19
+ timeout: number;
20
+ timestamp: number;
21
+ }
22
+
23
+ interface SnackbarState extends Pick<SnackbarProps, 'action' | 'text' | 'theme'> {
24
+ visible: boolean;
25
+ }
26
+
27
+ export class Snackbar extends Component<SnackbarProps, SnackbarState> {
28
+ bodyRef = createRef<HTMLSpanElement>();
29
+ timeout = 0;
30
+ transitionTimeout = 0;
16
31
 
17
- constructor() {
18
- super();
32
+ constructor(props: SnackbarProps) {
33
+ super(props);
19
34
  this.state = {
20
35
  visible: false,
21
36
  text: '',
@@ -23,11 +38,11 @@ export class Snackbar extends Component {
23
38
  }
24
39
 
25
40
  componentWillUnmount() {
26
- clearTimeout(this.timeout);
27
- clearTimeout(this.transitionTimeout);
41
+ window.clearTimeout(this.timeout);
42
+ window.clearTimeout(this.transitionTimeout);
28
43
  }
29
44
 
30
- shouldComponentUpdate(nextProps, nextState) {
45
+ shouldComponentUpdate(nextProps: SnackbarProps, nextState: SnackbarState) {
31
46
  if (!nextProps.text) {
32
47
  return false;
33
48
  }
@@ -45,12 +60,12 @@ export class Snackbar extends Component {
45
60
  setLeaveTimeout = () => {
46
61
  const { timeout } = this.props;
47
62
 
48
- this.timeout = setTimeout(() => {
63
+ this.timeout = window.setTimeout(() => {
49
64
  this.setState({ visible: false });
50
65
  }, timeout);
51
66
  };
52
67
 
53
- componentDidUpdate(previousProps) {
68
+ componentDidUpdate(previousProps: SnackbarProps) {
54
69
  const { action, text, theme, timestamp } = this.props;
55
70
 
56
71
  if (!previousProps.text) {
@@ -58,11 +73,11 @@ export class Snackbar extends Component {
58
73
  this.setLeaveTimeout();
59
74
  });
60
75
  } else if (previousProps.timestamp !== timestamp) {
61
- clearTimeout(this.timeout);
76
+ window.clearTimeout(this.timeout);
62
77
 
63
78
  if (this.state.visible) {
64
79
  this.setState({ visible: false }, () => {
65
- this.transitionTimeout = setTimeout(() => {
80
+ this.transitionTimeout = window.setTimeout(() => {
66
81
  this.setState({ visible: true, action, text, theme });
67
82
  this.setLeaveTimeout();
68
83
  }, CSS_TRANSITION_DURATION);
@@ -75,7 +90,7 @@ export class Snackbar extends Component {
75
90
  }
76
91
 
77
92
  render() {
78
- const { action, text, theme, visible } = this.state;
93
+ const { action, text, theme = Theme.LIGHT, visible } = this.state;
79
94
  const { timeout } = this.props;
80
95
 
81
96
  return (
@@ -112,20 +127,4 @@ export class Snackbar extends Component {
112
127
 
113
128
  Snackbar.contextType = DirectionContext;
114
129
 
115
- Snackbar.propTypes = {
116
- action: PropTypes.shape({
117
- label: PropTypes.string.isRequired,
118
- onClick: PropTypes.func,
119
- }),
120
- text: PropTypes.node.isRequired,
121
- theme: PropTypes.oneOf(['light', 'dark']),
122
- timeout: PropTypes.number.isRequired,
123
- timestamp: PropTypes.number.isRequired,
124
- };
125
-
126
- Snackbar.defaultProps = {
127
- action: null,
128
- theme: Theme.LIGHT,
129
- };
130
-
131
130
  export default withNextPortal(Snackbar);
@@ -0,0 +1,11 @@
1
+ import { createContext } from 'react';
2
+
3
+ import { SnackbarProps } from './Snackbar';
4
+
5
+ export type SnackbarContextType = {
6
+ createSnackbar: (props: Omit<SnackbarProps, 'timeout' | 'timestamp'>) => void;
7
+ };
8
+
9
+ export const SnackbarContext = createContext<SnackbarContextType>({ createSnackbar: () => {} });
10
+
11
+ export const SnackbarConsumer = SnackbarContext.Consumer;
@@ -0,0 +1,39 @@
1
+ import { useMemo, useState } from 'react';
2
+
3
+ import SnackbarPortal, { SnackbarProps } from './Snackbar';
4
+ import { SnackbarContext } from './SnackbarContext';
5
+
6
+ export interface SnackbarProviderProps {
7
+ timeout?: number;
8
+ children?: React.ReactNode;
9
+ }
10
+
11
+ export default function SnackbarProvider({ timeout = 4500, children }: SnackbarProviderProps) {
12
+ const [state, setState] = useState<Omit<SnackbarProps, 'timeout'>>({
13
+ text: '',
14
+ timestamp: 0,
15
+ });
16
+ const { action, text, theme, timestamp } = state;
17
+
18
+ return (
19
+ <SnackbarContext.Provider
20
+ value={useMemo(
21
+ () => ({
22
+ createSnackbar: ({ action, text, theme }) => {
23
+ setState({ action, text, theme, timestamp: Date.now() });
24
+ },
25
+ }),
26
+ [],
27
+ )}
28
+ >
29
+ <SnackbarPortal
30
+ action={action}
31
+ text={text}
32
+ timestamp={timestamp}
33
+ timeout={timeout}
34
+ theme={theme}
35
+ />
36
+ {children}
37
+ </SnackbarContext.Provider>
38
+ );
39
+ }
@@ -2,7 +2,7 @@ import { useState, useEffect } from 'react';
2
2
  import { createPortal } from 'react-dom';
3
3
 
4
4
  export default function withNextPortalWrapper<T extends Record<string, any>>(
5
- Component: React.FunctionComponent<T>,
5
+ Component: React.ComponentType<T>,
6
6
  ) {
7
7
  return function (props: T) {
8
8
  const [mounted, setMounted] = useState(false);
@@ -1,4 +0,0 @@
1
- import { createContext } from 'react';
2
-
3
- export const SnackbarContext = createContext();
4
- export const SnackbarConsumer = SnackbarContext.Consumer;
@@ -1,51 +0,0 @@
1
- import PropTypes from 'prop-types';
2
- import { Component } from 'react';
3
-
4
- import SnackbarPortal from './Snackbar';
5
- import { SnackbarContext } from './SnackbarContext';
6
-
7
- class SnackbarProvider extends Component {
8
- constructor() {
9
- super();
10
- this.state = {
11
- text: '',
12
- timestamp: 0,
13
- };
14
- }
15
-
16
- create = ({ action, text, theme }) => {
17
- this.setState({ action, text, theme, timestamp: Date.now() });
18
- };
19
-
20
- render() {
21
- const { action, text, theme, timestamp } = this.state;
22
-
23
- return (
24
- <SnackbarContext.Provider
25
- value={{
26
- createSnackbar: this.create,
27
- }}
28
- >
29
- <SnackbarPortal
30
- action={action}
31
- text={text}
32
- timestamp={timestamp}
33
- timeout={this.props.timeout}
34
- theme={theme}
35
- />
36
- {this.props.children}
37
- </SnackbarContext.Provider>
38
- );
39
- }
40
- }
41
-
42
- SnackbarProvider.propTypes = {
43
- children: PropTypes.node.isRequired,
44
- timeout: PropTypes.number,
45
- };
46
-
47
- SnackbarProvider.defaultProps = {
48
- timeout: 4500,
49
- };
50
-
51
- export default SnackbarProvider;
File without changes
File without changes