Skip to content

Commit d13faae

Browse files
committed
move tests and docs to TypeScript
1 parent b5da7c6 commit d13faae

File tree

12 files changed

+152
-101
lines changed

12 files changed

+152
-101
lines changed

.size-snapshot.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
{
22
"dist/cjs/react-popper-tooltip.js": {
3-
"bundled": 14704,
3+
"bundled": 14683,
44
"minified": 7887,
55
"gzipped": 2209
66
},
77
"dist/esm/react-popper-tooltip.js": {
8-
"bundled": 14652,
8+
"bundled": 14631,
99
"minified": 7854,
1010
"gzipped": 2204,
1111
"treeshaked": {

docs/examples/BasicTooltipTrigger.js renamed to docs/examples/BasicTooltipTrigger.tsx

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
import React, {memo} from 'react';
22
import TooltipTrigger from '../../src';
33
import '../../src/styles.css';
4+
import {IChildrenArg, ITooltipArg} from '../../src/types';
5+
import {IBasicTooltipTriggerProps} from './types';
46

5-
const Trigger = children => ({triggerRef, getTriggerProps}) => (
7+
const Trigger = (children: React.ReactNode) => ({
8+
triggerRef,
9+
getTriggerProps
10+
}: IChildrenArg) => (
611
<span
712
{...getTriggerProps({
813
ref: triggerRef
@@ -12,13 +17,13 @@ const Trigger = children => ({triggerRef, getTriggerProps}) => (
1217
</span>
1318
);
1419

15-
const Tooltip = (tooltip, hideArrow) => ({
20+
const Tooltip = (tooltip: React.ReactNode, hideArrow?: boolean) => ({
1621
arrowRef,
1722
tooltipRef,
18-
placement,
23+
getArrowProps,
1924
getTooltipProps,
20-
getArrowProps
21-
}) => (
25+
placement
26+
}: ITooltipArg) => (
2227
<div
2328
{...getTooltipProps({
2429
className: 'tooltip-container',
@@ -38,10 +43,12 @@ const Tooltip = (tooltip, hideArrow) => ({
3843
</div>
3944
);
4045

41-
const BasicTooltipTrigger = memo(({tooltip, children, hideArrow, ...props}) => (
42-
<TooltipTrigger {...props} tooltip={Tooltip(tooltip, hideArrow)}>
43-
{Trigger(children)}
44-
</TooltipTrigger>
45-
));
46+
const BasicTooltipTrigger = memo(
47+
({tooltip, children, hideArrow, ...props}: IBasicTooltipTriggerProps) => (
48+
<TooltipTrigger {...props} tooltip={Tooltip(tooltip, hideArrow)}>
49+
{Trigger(children)}
50+
</TooltipTrigger>
51+
)
52+
);
4653

4754
export default BasicTooltipTrigger;

docs/examples/EscapeToClose.js

Lines changed: 0 additions & 20 deletions
This file was deleted.

docs/examples/EscapeToClose.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import React from 'react';
2+
3+
class EscapeToClose extends React.Component<{closeTooltip: () => void}> {
4+
public componentDidMount() {
5+
document.addEventListener('keydown', this.handleKeyDown);
6+
}
7+
public componentWillUnmount() {
8+
document.removeEventListener('keydown', this.handleKeyDown);
9+
}
10+
public render() {
11+
return this.props.children;
12+
}
13+
private handleKeyDown = ({key}: {key: string}) => {
14+
if (key === 'Escape') {
15+
this.props.closeTooltip();
16+
}
17+
};
18+
}
19+
20+
export default EscapeToClose;

docs/examples/types.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import React from 'react';
2+
3+
export interface IBasicTooltipTriggerProps {
4+
tooltip: React.ReactNode;
5+
children: React.ReactNode;
6+
hideArrow?: boolean;
7+
[key: string]: any;
8+
}
9+
10+
export interface IStateContainerProps {
11+
children: (
12+
{
13+
on,
14+
set,
15+
toggle
16+
}: {on: boolean; set: (on: boolean) => void; toggle: () => void}
17+
) => React.ReactNode;
18+
}
19+
20+
export interface IStateContainerState {
21+
on: boolean;
22+
}

docs/examples/utils.js

Lines changed: 0 additions & 21 deletions
This file was deleted.

docs/examples/utils.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import React from 'react';
2+
import {IStateContainerProps, IStateContainerState} from './types';
3+
4+
class StateContainer extends React.Component<
5+
IStateContainerProps,
6+
IStateContainerState
7+
> {
8+
public state: IStateContainerState = {
9+
on: false
10+
};
11+
12+
public render() {
13+
return this.props.children({
14+
on: this.state.on,
15+
set: this.set,
16+
toggle: this.toggle
17+
});
18+
}
19+
20+
private set = (on: boolean) => this.setState({on});
21+
private toggle = () => this.setState(prevState => ({on: !prevState.on}));
22+
}
23+
24+
export {StateContainer};

src/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ type FnOrBool = undefined | Fn;
88
export const callAll = (...fns: FnOrBool[]) => (...args: any[]) =>
99
fns.forEach(fn => fn && fn(...args));
1010

11-
export const noop = () => undefined;
11+
export const noop = () => {};
1212

1313
export const canUseDOM = () =>
1414
!!(

0 commit comments

Comments
 (0)