Skip to content
This repository was archived by the owner on May 19, 2025. It is now read-only.

Commit 52e0c62

Browse files
committed
Move more existing examples to styleguide
1 parent f862dd7 commit 52e0c62

File tree

4 files changed

+137
-65
lines changed

4 files changed

+137
-65
lines changed

src/components/Calendar/README.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
### Internationalization
22

33
```jsx inside Markdown
4-
import { Calendar } from 'react-date-range';
54
import * as locales from 'react-date-range/dist/locale';
6-
import 'react-date-range/dist/styles.css'; // main style file
7-
import 'react-date-range/dist/theme/default.css'; // theme css file
85

96
const [locale, setLocale] = React.useState('ja');
7+
108
<Calendar
119
locale={locales[locale]}
1210
date={null}

src/components/DateRange/README.md

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,40 @@
1+
### DateRange
2+
13
```jsx inside Markdown
2-
<DateRange
3-
onChange={()=> {}}
4-
moveRangeOnFirstSelection={false}
5-
ranges={[
4+
import {useState} from 'react'
5+
const [state, setState] = useState([
66
{
77
startDate: new Date(),
88
endDate: null,
99
key: 'selection'
1010
}
11-
]}
12-
className={'PreviewArea'}
11+
]);
12+
13+
14+
<DateRange
15+
onChange={item => setState([item.selection])}
16+
moveRangeOnFirstSelection={false}
17+
ranges={state}
1318
/>
1419
```
1520

21+
### Editable Date Inputs
22+
1623
```jsx inside Markdown
17-
<DateRange
18-
editableDateInputs={true}
19-
moveRangeOnFirstSelection={false}
20-
ranges={[
24+
import {useState} from 'react'
25+
const [state, setState] = useState([
2126
{
2227
startDate: new Date(),
2328
endDate: null,
2429
key: 'selection'
2530
}
26-
]}
27-
className={'PreviewArea'}
31+
]);
32+
33+
<DateRange
34+
editableDateInputs={true}
35+
onChange={item => setState([item.selection])}
36+
moveRangeOnFirstSelection={false}
37+
ranges={state}
38+
2839
/>
2940
```

src/components/DateRangePicker/README.md

Lines changed: 52 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,22 @@
22

33
```jsx inside Markdown
44
import { addDays } from 'date-fns';
5+
import { useState } from 'react';
6+
7+
const [state, setState] = useState([
8+
{
9+
startDate: new Date(),
10+
endDate: addDays(new Date(), 7),
11+
key: 'selection'
12+
}
13+
]);
514

615
<DateRangePicker
16+
onChange={item => setState([item.selection])}
717
showSelectionPreview={true}
818
moveRangeOnFirstSelection={false}
9-
className={'PreviewArea'}
1019
months={2}
11-
ranges={[
12-
{
13-
startDate: new Date(),
14-
endDate: addDays(new Date(), 7),
15-
key: 'selection'
16-
}
17-
]}
20+
ranges={state}
1821
direction="horizontal"
1922
/>;
2023
```
@@ -23,52 +26,59 @@ import { addDays } from 'date-fns';
2326

2427
```jsx inside Markdown
2528
import { addDays } from 'date-fns';
29+
import { useState } from 'react';
30+
31+
const [state, setState] = useState({
32+
selection: {
33+
startDate: new Date(),
34+
endDate: null,
35+
key: 'selection'
36+
},
37+
compare: {
38+
startDate: new Date(),
39+
endDate: addDays(new Date(), 3),
40+
key: 'compare'
41+
}
42+
});
2643

2744
<DateRangePicker
28-
className={'PreviewArea'}
45+
onChange={item => setState({ ...state, ...item })}
2946
months={1}
3047
minDate={addDays(new Date(), -300)}
3148
maxDate={addDays(new Date(), 900)}
3249
direction="vertical"
3350
scroll={{ enabled: true }}
34-
ranges={[
35-
{
36-
startDate: new Date(),
37-
endDate: null,
38-
key: 'selection'
39-
},
40-
{
41-
startDate: new Date(),
42-
endDate: addDays(new Date(), 3),
43-
key: 'compare'
44-
}
45-
]}
51+
ranges={[state.selection, state.compare]}
4652
/>;
4753
```
4854

55+
### Multiple Range
56+
4957
```jsx inside Markdown
5058
import { addDays } from 'date-fns';
59+
import { useState } from 'react';
60+
61+
const [state, setState] = useState({
62+
selection1: {
63+
startDate: addDays(new Date(), 1),
64+
endDate: null,
65+
key: 'selection1'
66+
},
67+
selection2: {
68+
startDate: addDays(new Date(), 4),
69+
endDate: addDays(new Date(), 8),
70+
key: 'selection2'
71+
},
72+
selection3: {
73+
startDate: addDays(new Date(), 8),
74+
endDate: addDays(new Date(), 10),
75+
key: 'selection3',
76+
autoFocus: false
77+
}
78+
});
5179

5280
<DateRangePicker
53-
ranges={[
54-
{
55-
startDate: addDays(new Date(), 1),
56-
endDate: null,
57-
key: 'selection1'
58-
},
59-
{
60-
startDate: addDays(new Date(), 4),
61-
endDate: addDays(new Date(), 8),
62-
key: 'selection2'
63-
},
64-
{
65-
startDate: addDays(new Date(), 8),
66-
endDate: addDays(new Date(), 10),
67-
key: 'selection3',
68-
showDateDisplay: false,
69-
autoFocus: false
70-
}
71-
]}
72-
className={'PreviewArea'}
73-
/>
81+
onChange={item => setState({ ...state, ...item })}
82+
ranges={[state.selection1, state.selection2, state.selection3]}
83+
/>;
7484
```
Lines changed: 61 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,72 @@
1-
<DefinedRange
2-
ranges={[this.state.definedRange.selection]}
1+
### DateRange
2+
3+
```jsx inside Markdown
4+
import { useState } from 'react';
5+
6+
const renderStaticRangeLabel = () => (
7+
<CustomStaticRangeLabelContent text={'This is a custom label content: '} />
8+
);
9+
10+
class CustomStaticRangeLabelContent extends React.Component {
11+
constructor(props) {
12+
super(props);
13+
14+
this.state = {
15+
currentDateString: Date(),
16+
};
17+
18+
this.intervalId = setInterval(() => {
19+
this.setState({
20+
currentDateString: Date(),
21+
});
22+
}, 1000);
23+
}
24+
25+
componentWillUnmount() {
26+
if (this.intervalId) {
27+
clearInterval(this.intervalId);
28+
}
29+
}
30+
31+
render() {
32+
const { currentDateString } = this.state;
33+
const { text } = this.props;
34+
35+
return (
36+
<span>
37+
<i>{text}</i>
38+
<span className={'random-date-string'}>
39+
<b>{currentDateString}</b>
40+
</span>
41+
</span>
42+
);
43+
}
44+
}
45+
46+
const [state, setState] = useState([
47+
{
48+
startDate: new Date(),
49+
endDate: null,
50+
key: 'selection'
51+
}
52+
]);
53+
54+
<DefinedRanges
55+
onChange={item => setState([item.selection])}
56+
ranges={state}
357
renderStaticRangeLabel={renderStaticRangeLabel}
458
staticRanges={[
559
{
660
label: 'Hoy',
761
hasCustomRendering: true,
862
range: () => ({
963
startDate: new Date(),
10-
endDate: new Date(),
64+
endDate: new Date()
1165
}),
1266
isSelected() {
1367
return true;
14-
},
15-
},
68+
}
69+
}
1670
]}
17-
onChange={this.handleRangeChange.bind(this, 'definedRange')}
18-
className={'centered'}
19-
/>
71+
/>;
72+
```

0 commit comments

Comments
 (0)