Skip to content

Commit fcd9a8e

Browse files
committed
refactor examples
1 parent a4db3c0 commit fcd9a8e

File tree

9 files changed

+99
-3397
lines changed

9 files changed

+99
-3397
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
.DS_Store
66
.idea
77
npm-debug.log
8+
yarn-error.log
89
node_modules
10+
package-lock.json
911
lib
1012
dist
1113
.docz

README.md

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,23 +32,23 @@ render(
3232
arrowRef,
3333
placement
3434
}) => (
35-
<div
35+
<span
3636
{...getTooltipProps({
3737
ref: tooltipRef,
3838
className: 'tooltip-container'
3939
/* your props here */
4040
})}
4141
>
42-
<div
42+
<span
4343
{...getArrowProps({
4444
ref: arrowRef,
4545
'data-placement': placement,
4646
className: 'tooltip-arrow'
4747
/* your props here */
4848
})}
4949
/>
50-
<div className="tooltip-body">Hello, World!</div>
51-
</div>
50+
<span className="tooltip-body">Hello, World!</span>
51+
</span>
5252
)}
5353
>
5454
{({ getTriggerProps, triggerRef }) => (
@@ -92,21 +92,21 @@ const Tooltip = ({ tooltip, children, ...props }) => (
9292
arrowRef,
9393
placement
9494
}) => (
95-
<div
95+
<span
9696
{...getTooltipProps({
9797
ref: tooltipRef,
9898
className: 'tooltip-container'
9999
})}
100100
>
101-
<div
101+
<span
102102
{...getArrowProps({
103103
ref: arrowRef,
104104
'data-placement': placement,
105105
className: 'tooltip-arrow'
106106
})}
107107
/>
108108
{tooltip}
109-
</div>
109+
</span>
110110
)}
111111
>
112112
{({ getTriggerProps, triggerRef }) => (
@@ -131,6 +131,13 @@ Then you can use it as shown in the example below.
131131
<Tooltip placement="top" trigger="click" tooltip="Hi there!">Click me</Tooltip>
132132
```
133133

134+
## Examples
135+
To fiddle with our example recipes, run:
136+
```
137+
npm run docz:dev
138+
```
139+
and open up [localhost:3000](http://localhost:3000) in your browser.
140+
134141
## Props
135142

136143
### children
@@ -158,7 +165,7 @@ This is the initial visibility state of the tooltip.
158165

159166
> `function(tooltipShown: boolean)`
160167
161-
Called when the visibility of the tooltip changes. `tooltipShown` is a new state.
168+
Called with the tooltip state, when the visibility of the tooltip changes
162169

163170
### tooltipShown
164171

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import React from 'react';
2-
import TooltipTrigger from '../../src/index';
2+
import TooltipTrigger from '../../src';
33
import '../../src/styles.css';
44

5-
const Tooltip = ({ tooltip, children, ...props }) => (
5+
const BasicTooltipTrigger = ({ tooltip, children, ...props }) => (
66
<TooltipTrigger
77
{...props}
88
tooltip={({
@@ -12,21 +12,21 @@ const Tooltip = ({ tooltip, children, ...props }) => (
1212
arrowRef,
1313
placement
1414
}) => (
15-
<div
15+
<span
1616
{...getTooltipProps({
1717
ref: tooltipRef,
1818
className: 'tooltip-container'
1919
})}
2020
>
21-
<div
21+
<span
2222
{...getArrowProps({
2323
ref: arrowRef,
2424
'data-placement': placement,
2525
className: 'tooltip-arrow'
2626
})}
2727
/>
2828
{tooltip}
29-
</div>
29+
</span>
3030
)}
3131
>
3232
{({ getTriggerProps, triggerRef }) => (
@@ -41,4 +41,4 @@ const Tooltip = ({ tooltip, children, ...props }) => (
4141
</TooltipTrigger>
4242
);
4343

44-
export default Tooltip;
44+
export default BasicTooltipTrigger;

docs/examples/EscapeToClose.js

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

docs/examples/externalState.js

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

docs/examples/utils.js

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

docs/readme.mdx

Lines changed: 36 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,61 @@
11
---
2-
name: Main
2+
name: TooltipTrigger
33
route: /
44
---
55

66
import { Playground, PropsTable } from 'docz';
7-
import BasicTooltip from './examples/Basic';
8-
import { Container, Tooltip, TooltipEsc } from './examples/externalState';
7+
import BasicTooltipTrigger from './examples/BasicTooltipTrigger';
8+
import EscapeToClose from './examples/EscapeToClose';
9+
import {StateContainer} from './examples/utils';
910

10-
# react-popper-tooltip
11+
# TooltipTrigger
1112

1213
The example files are in `docs/examples` directory.
1314

1415
## Basic example
1516

1617
<Playground>
17-
<BasicTooltip tooltip="Hello">Hover me</BasicTooltip>
18+
<BasicTooltipTrigger tooltip="Hello, World!">Hover over me</BasicTooltipTrigger>
1819
</Playground>
1920

2021

21-
## External state
22-
23-
`Container` is for demo purpose only and used for state management.
22+
## Controlled
2423

2524
<Playground>
26-
<Container>
27-
{({ on, set }) => (
25+
<StateContainer>
26+
{({ on, set, toggle }) => (
2827
<div>
29-
<button onClick={() => set(true)}>Show tooltip</button>
28+
<button onClick={toggle}>Toggle tooltip</button>
3029
<br /><br />
31-
<Tooltip
32-
trigger="click"
30+
<BasicTooltipTrigger
31+
trigger="none"
3332
tooltipShown={on}
34-
tooltip="Press ESC to close"
33+
tooltip="Hello, Controlled!"
3534
onVisibilityChange={set}
3635
>
37-
Click me
38-
</Tooltip>
36+
I am state controlled!
37+
</BasicTooltipTrigger>
3938
</div>
4039
)}
41-
</Container>
40+
</StateContainer>
41+
</Playground>
42+
43+
44+
## Escape to close
45+
46+
<Playground>
47+
<StateContainer>
48+
{({ on, set }) => (
49+
<BasicTooltipTrigger
50+
trigger="click"
51+
tooltipShown={on}
52+
tooltip={<EscapeToClose closeTooltip={() => set(false)} />}
53+
onVisibilityChange={set}
54+
>
55+
<button>Click Here</button>
56+
</BasicTooltipTrigger>
57+
)}
58+
</StateContainer>
4259
</Playground>
60+
61+
Note: `StateContainer` is for demo purpose only and used for state management.

0 commit comments

Comments
 (0)