|
1 | 1 | import React, { Component } from 'react'; |
2 | | -import Slider from "react-slick"; |
| 2 | +import Slider from 'react-slick'; |
3 | 3 | import ToggleButton from 'react-toggle-button'; |
4 | 4 | import SyntaxHighlighter from 'react-syntax-highlighter'; |
5 | 5 | import { tomorrowNightEighties } from 'react-syntax-highlighter/styles/hljs'; |
6 | 6 | import MagicSliderDots from 'react-magic-slider-dots'; |
7 | 7 | import 'react-magic-slider-dots/dist/magic-dots.css'; |
8 | 8 |
|
9 | 9 | export default class App extends Component { |
10 | | - |
11 | 10 | constructor(props) { |
12 | 11 | super(props); |
13 | 12 |
|
14 | 13 | this.state = { |
15 | 14 | enableMagicSliderDots: true |
16 | | - } |
| 15 | + }; |
17 | 16 | } |
18 | 17 |
|
19 | 18 | handleDotToggle = () => { |
20 | 19 | this.setState({ |
21 | 20 | enableMagicSliderDots: !this.state.enableMagicSliderDots |
22 | 21 | }); |
23 | | - } |
| 22 | + }; |
24 | 23 |
|
25 | | - contentIndexes = [...Array.from({ length: 10 }, (v, k) => k + 1).map((item) => item)]; |
| 24 | + contentIndexes = [...Array.from({ length: 10 }, (v, k) => k + 1).map(item => item)]; |
26 | 25 |
|
27 | 26 | render() { |
28 | 27 | const { enableMagicSliderDots } = this.state; |
29 | 28 |
|
30 | 29 | var settings = { |
31 | 30 | dots: true, |
32 | 31 | arrows: true, |
33 | | - infinite: true, |
| 32 | + infinite: false, |
34 | 33 | speed: 500, |
35 | 34 | slidesToShow: 1, |
36 | | - slidesToScroll: 1 |
| 35 | + slidesToScroll: 1, |
| 36 | + responsive: [ |
| 37 | + { |
| 38 | + breakpoint: 800, |
| 39 | + settings: { |
| 40 | + slidesToShow: 4 |
| 41 | + } |
| 42 | + }, |
| 43 | + { |
| 44 | + breakpoint: 480, |
| 45 | + settings: { |
| 46 | + slidesToShow: 2 |
| 47 | + } |
| 48 | + } |
| 49 | + ] |
37 | 50 | }; |
38 | 51 |
|
39 | 52 | if (enableMagicSliderDots) |
40 | | - settings['appendDots'] = (dots) => { |
41 | | - return <MagicSliderDots dots={dots} numDotsToShow={5} dotWidth={30} /> |
42 | | - } |
| 53 | + settings['appendDots'] = dots => { |
| 54 | + return <MagicSliderDots dots={dots} numDotsToShow={5} dotWidth={30} />; |
| 55 | + }; |
43 | 56 |
|
44 | 57 | return ( |
45 | 58 | <div> |
46 | | - <label><ToggleButton |
47 | | - value={enableMagicSliderDots} |
48 | | - onToggle={this.handleDotToggle} /> |
| 59 | + <label> |
| 60 | + <ToggleButton value={enableMagicSliderDots} onToggle={this.handleDotToggle} /> |
49 | 61 | enable magic-slider-dots |
50 | 62 | </label> |
51 | 63 | <Slider {...settings} key={`slider_${enableMagicSliderDots}`}> |
52 | | - {this.contentIndexes.map(index => <div key={index}><h3>{index}</h3></div>)} |
| 64 | + {this.contentIndexes.map(index => ( |
| 65 | + <div key={index}> |
| 66 | + <h3>{index}</h3> |
| 67 | + </div> |
| 68 | + ))} |
53 | 69 | </Slider> |
54 | 70 |
|
55 | 71 | <section className="code-example"> |
56 | | - <h4>API - <a href="https://patricktran.github.io/react-magic-slider-dots/" target="_blank">click here</a></h4> |
| 72 | + <h4> |
| 73 | + API -{' '} |
| 74 | + <a href="https://patricktran.github.io/react-magic-slider-dots/" target="_blank"> |
| 75 | + click here |
| 76 | + </a> |
| 77 | + </h4> |
57 | 78 | <h4>Installation</h4> |
58 | | - <SyntaxHighlighter language='javascript' style={tomorrowNightEighties}> |
| 79 | + <SyntaxHighlighter language="javascript" style={tomorrowNightEighties}> |
59 | 80 | {` |
60 | 81 | //install react slick and css |
61 | 82 | npm install react-slick --save |
62 | 83 | npm install slick-carousel --save |
63 | 84 |
|
64 | 85 | //install react-magic-slider-dots |
65 | 86 | npm install react-magic-slider-dots --save |
66 | | - `}</SyntaxHighlighter> |
| 87 | + `} |
| 88 | + </SyntaxHighlighter> |
67 | 89 | <h4></h4> |
68 | | - <SyntaxHighlighter language='javascript' style={tomorrowNightEighties}>{ |
69 | | - ` |
| 90 | + <SyntaxHighlighter language="javascript" style={tomorrowNightEighties}>{` |
70 | 91 | import React, { Component } from 'react' |
71 | 92 | import Slider from 'react-slick'; |
72 | 93 | import 'slick-carousel/slick/slick.css'; |
@@ -111,8 +132,7 @@ export default class App extends Component { |
111 | 132 | </div> |
112 | 133 | </Slider>) |
113 | 134 | } |
114 | | - }` |
115 | | - }</SyntaxHighlighter> |
| 135 | + }`}</SyntaxHighlighter> |
116 | 136 | </section> |
117 | 137 | </div> |
118 | 138 | ); |
|
0 commit comments