Skip to content

Commit a71ee15

Browse files
committed
Merge pull request #4 from mekanix/feature/dates
Move dates on click
2 parents 9a5ee01 + 355481f commit a71ee15

File tree

5 files changed

+56
-44
lines changed

5 files changed

+56
-44
lines changed

app/js/components/Calendar.jsx

+2-4
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
11
var React = require('react');
22
var Menu = require('./Menu.jsx');
3-
var Title = require('./Title.jsx');
43
var Week = require('./Week.jsx');
5-
var Navigation = require('./Navigation.jsx');
4+
var Todo = require('./Todo.jsx');
65

76
var Calendar = React.createClass({
87
render: function() {
98
return (
109
<div className="calendar">
1110
<Menu/>
12-
<Navigation/>
13-
<Title/>
1411
<Week/>
12+
<Todo/>
1513
</div>
1614
);
1715
}

app/js/components/Day.jsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ var Day = React.createClass({
1919
}
2020
return (
2121
<div className="u-1/7 day">
22-
<span className="u-6/7 day-name">{this.props.day}</span>
22+
<span className="u-6/7 day-name">{this.props.name}</span>
2323
<span className="u-1/7 day-of-month">{this.props.dayOfMonth}</span>
2424
{hours.map((hour) => {
2525
return(

app/js/components/Title.jsx

+14-30
Original file line numberDiff line numberDiff line change
@@ -2,37 +2,21 @@ var React = require('react');
22
var moment = require('moment');
33

44
var Title = React.createClass({
5-
getInitialState: function(){
6-
var today = moment()
7-
var startWeek = moment([today.year(), today.month(), today.date() - today.day()+1])
8-
var endWeek = moment([today.year(), today.month(), startWeek.date()+6])
9-
return {
10-
start: startWeek,
11-
end: endWeek
12-
};
13-
},
14-
nextWeek: function(event){
15-
this.setState({start: this.state.start.day(7+1), end: this.state.end.day(7)})
16-
},
17-
previousWeek: function(event){
18-
this.setState({start: this.state.start.day(-7+1), end: this.state.end.day(-7)})
19-
},
20-
21-
render() {
22-
return (
23-
<div className="title">
24-
<div className="u-1/3 title--item title--previous">
25-
<a href="#" onClick={this.previousWeek}>&lt;</a>
26-
</div>
27-
<div className="u-1/3 title--item title--data">
28-
<h3>{this.state.start.format("D MMM")} - {this.state.end.format("D MMM")}</h3>
29-
</div>
30-
<div className="u-1/3 title--item title--next">
31-
<a href="#" onClick={this.nextWeek}>&gt;</a>
32-
</div>
5+
render() {
6+
return (
7+
<div className="title">
8+
<div className="u-1/3 title--item title--previous">
9+
<a href="#" onClick={this.props.previous}>&lt;</a>
10+
</div>
11+
<div className="u-1/3 title--item title--data">
12+
<h3>{this.props.start.format("D MMM")} - {this.props.end.format("D MMM")}</h3>
13+
</div>
14+
<div className="u-1/3 title--item title--next">
15+
<a href="#" onClick={this.props.next}>&gt;</a>
3316
</div>
34-
);
35-
}
17+
</div>
18+
);
19+
}
3620
});
3721

3822
module.exports = Title;
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
var React = require('react');
22

3-
var Menu = React.createClass({
3+
var Todo = React.createClass({
44
render() {
55
return (
66
<nav id="navigation" className="navigation">
@@ -10,4 +10,4 @@ var Menu = React.createClass({
1010
}
1111
});
1212

13-
module.exports = Menu;
13+
module.exports = Todo;

app/js/components/Week.jsx

+37-7
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
var React = require('react');
2+
var moment = require('moment');
23
var Day = require('./Day.jsx');
4+
var Title = require('./Title.jsx');
35

46
var Week = React.createClass({
5-
render() {
6-
var days = [];
7-
var day_names = [
7+
getInitialState: function(){
8+
var today = moment();
9+
var startWeek = moment(today).day(-6);
10+
var endWeek = moment(startWeek).day(7);
11+
var longDayNames = [
812
"Monday",
913
"Tuesday",
1014
"Wednesday",
@@ -13,17 +17,43 @@ var Week = React.createClass({
1317
"Saturday",
1418
"Sunday"
1519
];
16-
for (var day = 1; day <= 7; day++) {
20+
21+
return ({
22+
start: startWeek,
23+
end: endWeek,
24+
longDayNames: longDayNames
25+
});
26+
},
27+
28+
nextWeek: function(event){
29+
this.setState({start: this.state.start.day(8), end: this.state.end.day(7)});
30+
},
31+
32+
previousWeek: function(event){
33+
this.setState({start: this.state.start.day(-6), end: this.state.end.day(-7)});
34+
},
35+
36+
render() {
37+
var days = [];
38+
for (var day = 0; day < 7; day++) {
39+
1740
days.push({
18-
dayOfMonth: day,
19-
day: day_names[day-1]
41+
dayOfMonth: moment(this.state.start).day(day+1).format('D'),
42+
name: this.state.longDayNames[day]
2043
});
2144
}
45+
2246
return (
2347
<div className="content">
48+
<Title
49+
start={this.state.start}
50+
end={this.state.end}
51+
previous={this.previousWeek}
52+
next={this.nextWeek}
53+
/>
2454
{days.map((day) => {
2555
return (
26-
<Day dayOfMonth={day.dayOfMonth} day={day.day}/>
56+
<Day dayOfMonth={day.dayOfMonth} name={day.name}/>
2757
);
2858
})}
2959
</div>

0 commit comments

Comments
 (0)