Skip to content

Commit 1cf8ec2

Browse files
author
Thomas Billiet
committed
add a test for on/off switching the module
1 parent f6e0206 commit 1cf8ec2

File tree

1 file changed

+57
-59
lines changed

1 file changed

+57
-59
lines changed

stories/index.stories.js

Lines changed: 57 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,70 +1,68 @@
1-
import React, { Component } from 'react'
2-
import { storiesOf, action } from '@storybook/react'
3-
import Reader from '../lib'
1+
import React, { Component } from "react";
2+
import { storiesOf, action } from "@storybook/react";
3+
import Reader from "../lib";
44

55
class Wrapper extends Component {
66
constructor(props) {
7-
super(props)
8-
this.state = { facingMode: 'user', delay: 500 }
7+
super(props);
8+
this.state = { facingMode: "user", delay: 500, on: true };
99
}
1010
render() {
11-
const { selectFacingMode, selectDelay, legacyMode } = this.props
11+
const { selectFacingMode, selectDelay, legacyMode, onAndOff } = this.props;
1212

1313
return (
14-
<div style={{ width: '400px', margin: 'auto' }}>
15-
{
16-
selectFacingMode && (
17-
<select
18-
onChange={e => this.setState({ facingMode: e.target.value })}
19-
>
20-
<option value="user">User</option>
21-
<option value="environment">Environment</option>
22-
</select>
23-
)
24-
}
25-
{
26-
selectDelay && (
27-
<div>
28-
<button onClick={() => this.setState({ delay: false })}>
29-
Disable Delay
30-
</button>
31-
<input
32-
placeholder="Delay in ms"
33-
type="number"
34-
value={this.state.delay}
35-
onChange={e =>
36-
this.setState({ delay: parseInt(e.target.value) })}
37-
/>
38-
</div>
39-
)
40-
}
41-
<Reader
42-
onError={action('Error')}
43-
onScan={action('Scan')}
44-
onLoad={action('Load')}
45-
onImageLoad={action('ImageLoad')}
46-
ref="reader"
47-
facingMode={this.state.facingMode}
48-
legacyMode={legacyMode}
49-
maxImageSize={1000}
50-
delay={this.state.delay}
51-
className="reader-container"
52-
constraints={{ deviceId: 2 }}
53-
/>
54-
{
55-
legacyMode && (
56-
<button onClick={() => this.refs.reader.openImageDialog()}>
57-
Open Image Dialog
58-
</button>
59-
)
60-
}
14+
<div style={{ width: "400px", margin: "auto" }}>
15+
{onAndOff && (
16+
<button onClick={() => this.setState({ on: !this.state.on })}>
17+
{this.state.on ? "Turn off" : "Turn on"}
18+
</button>
19+
)}
20+
{selectFacingMode && (
21+
<select onChange={e => this.setState({ facingMode: e.target.value })}>
22+
<option value="user">User</option>
23+
<option value="environment">Environment</option>
24+
</select>
25+
)}
26+
{selectDelay && (
27+
<div>
28+
<button onClick={() => this.setState({ delay: false })}>
29+
Disable Delay
30+
</button>
31+
<input
32+
placeholder="Delay in ms"
33+
type="number"
34+
value={this.state.delay}
35+
onChange={e => this.setState({ delay: parseInt(e.target.value) })}
36+
/>
37+
</div>
38+
)}
39+
{this.state.on && (
40+
<Reader
41+
onError={action("Error")}
42+
onScan={action("Scan")}
43+
onLoad={action("Load")}
44+
onImageLoad={action("ImageLoad")}
45+
ref="reader"
46+
facingMode={this.state.facingMode}
47+
legacyMode={legacyMode}
48+
maxImageSize={1000}
49+
delay={this.state.delay}
50+
className="reader-container"
51+
/>
52+
)}
53+
{legacyMode && (
54+
<button onClick={() => this.refs.reader.openImageDialog()}>
55+
Open Image Dialog
56+
</button>
57+
)}
6158
</div>
62-
)
59+
);
6360
}
6461
}
6562

66-
storiesOf('QR Reader', module)
67-
.add('FacingMode not specified', () => <Wrapper />)
68-
.add('Choose facingMode', () => <Wrapper selectFacingMode />)
69-
.add('Legacy mode', () => <Wrapper legacyMode />)
70-
.add('Choose delay', () => <Wrapper selectDelay />)
63+
storiesOf("QR Reader", module)
64+
.add("FacingMode not specified", () => <Wrapper />)
65+
.add("Choose facingMode", () => <Wrapper selectFacingMode />)
66+
.add("Legacy mode", () => <Wrapper legacyMode />)
67+
.add("Choose delay", () => <Wrapper selectDelay />)
68+
.add("On and off", () => <Wrapper onAndOff />);

0 commit comments

Comments
 (0)