Skip to content

Commit 067148d

Browse files
committed
challenge #30056080 PREFLIGHT CHECKLIST
1 parent f5d94cb commit 067148d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+1444
-369
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
* node v6 (https://nodejs.org)
55

66
## Quick Start
7+
* copy `.env.example` to `.env`
78
* `npm install`
89
* `npm run dev`
910
* Navigate browser to `http://localhost:3000`

package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@
6767
"rc-slider": "^5.4.0",
6868
"rc-tooltip": "^3.4.2",
6969
"react": "^15.3.2",
70+
"react-addons-create-fragment": "^15.4.1",
7071
"react-breadcrumbs": "^1.5.1",
7172
"react-click-outside": "^2.2.0",
7273
"react-count-down": "^1.0.3",
@@ -80,6 +81,7 @@
8081
"react-icheck": "^0.3.6",
8182
"react-input-range": "^0.9.3",
8283
"react-modal": "^1.5.2",
84+
"react-paginate": "^4.1.0",
8385
"react-portal": "^3.0.0",
8486
"react-redux": "^4.0.0",
8587
"react-redux-toastr": "^4.2.2",
@@ -89,6 +91,7 @@
8991
"react-simple-dropdown": "^1.1.5",
9092
"react-slick": "^0.14.5",
9193
"react-star-rating-component": "^1.2.2",
94+
"react-table": "^3.1.4",
9295
"react-tabs": "^0.8.2",
9396
"react-timeago": "^3.1.3",
9497
"reactable": "^0.14.1",

src/components/AdminHeader/AdminHeader.jsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import CSSModules from 'react-css-modules';
33
import {Link} from 'react-router';
44
import styles from './AdminHeader.scss';
55
import Dropdown from '../Dropdown';
6-
import Notification from '../Notification';
76

87
export const AdminHeader = () => (
98
<nav styleName="admin-header">

src/components/Button/Button.jsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ Button.propTypes = {
1919
Button.defaultProps = {
2020
type: 'button',
2121
size: 'normal',
22+
color: 'blue',
2223
};
2324

2425
export default CSSModules(Button, styles, {allowMultiple: true});

src/components/Header/Header.jsx

Lines changed: 85 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -9,121 +9,112 @@ import Notification from '../Notification';
99
import styles from './Header.scss';
1010

1111
export const Header = ({
12-
location, selectedCategory, categories, user, notifications,
13-
routes, handleNotification, doLogout, toggleNotif, loggedUser,
12+
location, selectedCategory, categories, user, notifications, handleNotification, doLogout, toggleNotif, loggedUser,
1413
}) => (
1514

1615
<nav styleName="header">
1716
<ul>
1817
<li styleName="branding">
1918
DRONE MARKET
2019
</li>
21-
{
22-
(() => {
23-
if (user.role == 'consumer') {
24-
return (
25-
<li styleName="pages">
20+
{user.role === 'consumer' &&
21+
<li styleName="pages">
22+
<ul>
23+
<li>
24+
<Link to="/home" activeClassName="active">Home</Link>
25+
</li>
26+
<li>
27+
<Link to="/my-request-status" activeClassName="active">My Requests</Link>
28+
</li>
29+
<li>
30+
<Link to="/browse-provider" activeClassName="active">Browse Services</Link>
31+
</li>
32+
<li><Link to="javascript:;" activeClassName="active">Analytics</Link></li>
33+
<li><Link to="/drones-map" activeClassName="active">Drone Traffic</Link></li>
34+
<li><Link to="/mission-planner" activeClassName="active">MissionPlanner</Link></li>
35+
</ul>
36+
</li>
37+
}
38+
{user.role === 'provider' &&
39+
<li styleName="pages">
40+
<ul>
41+
<li>
42+
<Link to="/dashboard" activeClassName="active">Dashboard</Link>
43+
</li>
44+
<li>
45+
<Link to="/my-request" activeClassName="active">Requests</Link>
46+
</li>
47+
<li>
48+
<Link to="/my-drone" activeClassName="active">My Drones</Link>
49+
</li>
50+
<li>
51+
<Link to="/my-services" activeClassName="active">My Services</Link>
52+
</li>
53+
<li><Link to="javascript:;" activeClassName="active">Analytics</Link></li>
54+
<li><Link to="/drones-map" activeClassName="active">Drone Traffic</Link></li>
55+
<li><Link to="/mission-planner" activeClassName="active">MissionPlanner</Link></li>
56+
</ul>
57+
</li>
58+
}
59+
{user.role === 'pilot' &&
60+
<li styleName="pages">
61+
<ul>
62+
<li><Link to="/pilot-missions" activeClassName="active">Pilot Missions</Link></li>
63+
</ul>
64+
</li>
65+
}
66+
{!loggedUser ? (
67+
[
68+
(<li key="location" styleName="location">
69+
<i />
70+
{location}
71+
</li>),
72+
(<li key="search" styleName="search">
73+
<SearchInput placeholder="Type your search here..." />
74+
</li>),
75+
(<li key="category">
76+
<Dropdown title={selectedCategory}>
2677
<ul>
27-
<li>
28-
<Link to="/home" activeClassName="active">Home</Link>
29-
</li>
30-
<li>
31-
<Link to="/my-request-status" activeClassName="active">My Requests</Link>
32-
</li>
33-
<li>
34-
<Link to="/browse-provider" activeClassName="active">Browse Services</Link>
35-
</li>
36-
<li><Link to="javascript:;" activeClassName="active">Analytics</Link></li>
37-
<li><Link to="/drones-map" activeClassName="active">Drone Traffic</Link></li>
38-
<li><Link to="/mission-planner" activeClassName="active">MissionPlanner</Link></li>
78+
{categories.map((item, i) => <li key={i}><a href="javascript:">{item.name}</a></li>)}
3979
</ul>
40-
</li>
41-
);
42-
} else if (user.role == 'provider') {
43-
return (
44-
<li styleName="pages">
80+
</Dropdown>
81+
</li>),
82+
(<li key="login" styleName="login">
83+
<LogInModalContainer />
84+
</li>),
85+
(<li key="signup" styleName="login">
86+
<SignupModalContainer />
87+
</li>),
88+
]
89+
) : (
90+
[
91+
(<li key="notification" styleName="notifications" onClick={() => handleNotification(!toggleNotif)}>
92+
{notifications.length > 0 && <span styleName="counter">{notifications.length}</span>}
93+
{toggleNotif && <Notification
94+
notifications={notifications} toggleNotif={toggleNotif}
95+
handleNotification={handleNotification}
96+
/>}
97+
</li>),
98+
(<li key="welcome" styleName="user">
99+
<Dropdown title={<span>Welcome,<br />{user.name}</span>}>
45100
<ul>
46101
<li>
47-
<Link to="/dashboard" activeClassName="active">Dashboard</Link>
48-
</li>
49-
<li>
50-
<Link to="/my-request" activeClassName="active">Requests</Link>
102+
<a href="javascript:">Profile</a>
51103
</li>
52104
<li>
53-
<Link to="/my-drone" activeClassName="active">My Drones</Link>
105+
<a href="javascript:" onClick={doLogout()}>Logout</a>
54106
</li>
55-
<li>
56-
<Link to="/my-services" activeClassName="active">My Services</Link>
57-
</li>
58-
<li><Link to="javascript:;" activeClassName="active">Analytics</Link></li>
59-
<li><Link to="/drones-map" activeClassName="active">Drone Traffic</Link></li>
60-
<li><Link to="/mission-planner" activeClassName="active">MissionPlanner</Link></li>
61107
</ul>
62-
</li>
63-
);
64-
}
65-
})()
66-
}
67-
{
68-
(() => {
69-
if (!loggedUser) {
70-
return (
71-
[
72-
(<li key="location" styleName="location">
73-
<i />
74-
{location}
75-
</li>),
76-
(<li key="search" styleName="search">
77-
<SearchInput placeholder="Type your search here..." />
78-
</li>),
79-
(<li key="category">
80-
<Dropdown title={selectedCategory}>
81-
<ul>
82-
{categories.map((item, i) => <li key={i}><a href="javascript:">{item.name}</a></li>)}
83-
</ul>
84-
</Dropdown>
85-
</li>),
86-
(<li key="login" styleName="login">
87-
<LogInModalContainer />
88-
</li>),
89-
(<li key="signup" styleName="login">
90-
<SignupModalContainer />
91-
</li>),
92-
]
93-
);
94-
}
95-
return (
96-
[
97-
(<li key="notification" styleName="notifications" onClick={() => handleNotification(!toggleNotif)}>
98-
{notifications.length > 0 && <span styleName="counter">{notifications.length}</span>}
99-
{toggleNotif && <Notification
100-
notifications={notifications} toggleNotif={toggleNotif}
101-
handleNotification={handleNotification}
102-
/>}
103-
</li>),
104-
(<li key="welcome" styleName="user">
105-
<Dropdown title={<span>Welcome,<br />{user.name}</span>}>
106-
<ul>
107-
<li>
108-
<a href="javascript:">Profile</a>
109-
</li>
110-
<li>
111-
<a href="javascript:" onClick={doLogout()}>Logout</a>
112-
</li>
113-
</ul>
114-
</Dropdown>
115-
</li>),
116-
]
117-
);
118-
})()
108+
</Dropdown>
109+
</li>),
110+
]
111+
)
119112
}
120-
121113
</ul>
122114
</nav>
123115
);
124116

125117
Header.propTypes = {
126-
routes: PropTypes.any.isRequired,
127118
location: PropTypes.string.isRequired,
128119
selectedCategory: PropTypes.string.isRequired,
129120
categories: PropTypes.array.isRequired,
Lines changed: 24 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,34 @@
11
import React, {PropTypes} from 'react';
22
import CSSModules from 'react-css-modules';
3-
import _ from 'lodash';
43
import styles from './Pagination.scss';
5-
import Select from '../Select';
4+
import ReactPaginate from 'react-paginate';
65

7-
const pageOptions = [
8-
{value: 10, label: '10'},
9-
{value: 30, label: '30'},
10-
{value: 50, label: '50'},
11-
];
6+
export const Pagination = ({forcePage, pageCount, onPageChange}) => {
7+
const props = {...{
8+
previousLabel: '',
9+
nextLabel: '',
10+
marginPagesDisplayed: 1,
11+
pageRangeDisplayed: 3,
12+
containerClassName: styles.pagination,
13+
pageClassName: styles.page,
14+
activeClassName: styles.page_active,
15+
breakClassName: styles.break,
16+
nextClassName: styles.next,
17+
previousClassName: styles.prev,
18+
disabledClassName: styles.disabled,
19+
},
20+
forcePage,
21+
pageCount,
22+
onPageChange,
23+
};
1224

13-
14-
export const Pagination = ({pages, activePageIndex}) => (
15-
<div styleName="pagination">
16-
<div styleName="show-per-page">
17-
<span>Show</span>
18-
<Select
19-
styleName="pagination-select"
20-
clearable={false}
21-
value={10}
22-
options={pageOptions}
23-
{..._.pick({}, 'value', 'onChange')}
24-
/>
25-
<span>per page</span>
26-
</div>
27-
<ul styleName="pageControl">
28-
<li styleName="previousPage">&lt;</li>
29-
{_.range(pages).map((i) => (
30-
<li styleName={(activePageIndex || 0) === i ? 'active' : ''} key={i}>{i + 1}</li>
31-
))}
32-
<li>...</li>
33-
<li styleName="nextPage">&gt;</li>
34-
</ul>
35-
</div>
36-
);
25+
return (<ReactPaginate {...props} />);
26+
};
3727

3828
Pagination.propTypes = {
39-
pages: PropTypes.number.isRequired,
40-
activePageIndex: PropTypes.number,
29+
forcePage: PropTypes.number.isRequired,
30+
pageCount: PropTypes.number.isRequired,
31+
onPageChange: PropTypes.func.isRequired,
4132
};
4233

4334
export default CSSModules(Pagination, styles);

0 commit comments

Comments
 (0)