From 296ab5b5f2d5a396733ee667a077898bfafa724e Mon Sep 17 00:00:00 2001 From: brenopolanski Date: Fri, 30 Dec 2016 15:47:40 -0300 Subject: [PATCH] SREP-3 #comment Add initial code for work with react redux --- README.md | 4 +- react-eco.gif | Bin 0 -> 20042 bytes src/components/App/App.js | 7 ++- src/components/FilterTable/FilterTable.js | 42 ++++++++++++++++ src/components/FilterTable/index.js | 17 +++++++ src/data/products.js | 58 ++++++++++++++++++++++ src/routes.js | 2 + 7 files changed, 127 insertions(+), 3 deletions(-) create mode 100644 react-eco.gif create mode 100644 src/components/FilterTable/FilterTable.js create mode 100644 src/components/FilterTable/index.js create mode 100644 src/data/products.js diff --git a/README.md b/README.md index 09c0949..66fe739 100755 --- a/README.md +++ b/README.md @@ -2,13 +2,15 @@ A template for writing React based ECMAScript 2015 (ES6) + Redux + React Router + Webpack and more. +![](./react-eco.gif) + ## What's inside it? - [x] [Webpack](https://webpack.github.io) - [x] [Webpack Dashboard](https://github.com/FormidableLabs/webpack-dashboard) - [x] [React](https://facebook.github.io/react/) - [x] [React Router](https://github.com/ReactTraining/react-router) -- [ ] [Redux](https://github.com/reactjs/redux) +- [x] [Redux](https://github.com/reactjs/redux) - [x] [React Hot Loader](https://github.com/gaearon/react-hot-loader) - [x] [Jest](https://facebook.github.io/jest/) for tests and [Chai](http://chaijs.com/) for assertions - [x] [Storybook](https://getstorybook.io/) to create isolated components' stories diff --git a/react-eco.gif b/react-eco.gif new file mode 100644 index 0000000000000000000000000000000000000000..17c8a5d535a617a438b6b92119350ed451425ed3 GIT binary patch literal 20042 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 Home + + Filter Table + - About + About - Contact + Contact diff --git a/src/components/FilterTable/FilterTable.js b/src/components/FilterTable/FilterTable.js new file mode 100644 index 0000000..99c9d2e --- /dev/null +++ b/src/components/FilterTable/FilterTable.js @@ -0,0 +1,42 @@ +/** + * Copyright 2017 OSBI Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import React, { Component } from 'react'; +import { + FormGroup, + ControlLabel, + FormControl +} from 'react-bootstrap'; + +class FilterTable extends Component { + render() { + return ( +
+
+ + Filter Table + + +
+
+ ); + } +} + +export default FilterTable; diff --git a/src/components/FilterTable/index.js b/src/components/FilterTable/index.js new file mode 100644 index 0000000..e4d5ca1 --- /dev/null +++ b/src/components/FilterTable/index.js @@ -0,0 +1,17 @@ +/** + * Copyright 2017 OSBI Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export { default } from './FilterTable.js'; diff --git a/src/data/products.js b/src/data/products.js new file mode 100644 index 0000000..689ecdc --- /dev/null +++ b/src/data/products.js @@ -0,0 +1,58 @@ +/** + * Copyright 2017 OSBI Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; + +const products = [ + { + category: 'Sporting Goods', + price: '$49.99', + stocked: true, + name: 'Football' + }, + { + category: 'Sporting Goods', + price: '$9.99', + stocked: true, + name: 'Baseball' + }, + { + category: 'Sporting Goods', + price: '$29.99', + stocked: false, + name: 'Basketball' + }, + { + category: 'Electronics', + price: '$99.99', + stocked: true, + name: 'iPod Touch' + }, + { + category: 'Electronics', + price: '$399.99', + stocked: false, + name: 'iPhone 5' + }, + { + category: 'Electronics', + price: '$199.99', + stocked: true, + name: 'Nexus 7' + } +]; + +export default products; diff --git a/src/routes.js b/src/routes.js index 7daf6d1..20bf58d 100755 --- a/src/routes.js +++ b/src/routes.js @@ -21,12 +21,14 @@ import { } from 'react-router'; import App from './components/App'; import Home from './components/Home'; +import FilterTable from './components/FilterTable'; import About from './components/About'; import Contact from './components/Contact'; export default ( +