From 6484629ffbd231ae9f9f16ed8c3775177f1810dd Mon Sep 17 00:00:00 2001 From: devalexandre Date: Sun, 22 Apr 2018 14:14:49 -0300 Subject: [PATCH 1/7] actios for app --- src/actions/todo/index.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 src/actions/todo/index.js diff --git a/src/actions/todo/index.js b/src/actions/todo/index.js new file mode 100644 index 0000000..03ef09f --- /dev/null +++ b/src/actions/todo/index.js @@ -0,0 +1,13 @@ +export function addTodo(text) { + return { + type: 'ADD_TODO', + text + }; +} + +export function removeTodo(todo) { + return { + type: 'REMOVE_TODO', + todo + }; +} \ No newline at end of file From ddf7fe2ccc9dfdd3a9e92154f8c9e114ee1c39bf Mon Sep 17 00:00:00 2001 From: devalexandre Date: Sun, 22 Apr 2018 14:15:56 -0300 Subject: [PATCH 2/7] alter actions and reducers folders --- src/components/app.js | 7 ++++--- src/components/todo-item.js | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/components/app.js b/src/components/app.js index aab7733..07453e0 100644 --- a/src/components/app.js +++ b/src/components/app.js @@ -1,10 +1,11 @@ import { h, Component } from 'preact'; import { connect } from 'preact-redux'; -import reduce from '../reducers'; -import * as actions from '../actions'; +import reduce from '../reducers/reducers'; +import * as actions from '../actions/todo'; import TodoItem from './todo-item'; @connect(reduce, actions) + export default class App extends Component { addTodos = () => { this.props.addTodo(this.state.text); @@ -33,4 +34,4 @@ export default class App extends Component { ); } -} +} \ No newline at end of file diff --git a/src/components/todo-item.js b/src/components/todo-item.js index 79ccc7d..5bb170f 100644 --- a/src/components/todo-item.js +++ b/src/components/todo-item.js @@ -18,4 +18,4 @@ export default class TodoItem extends Component { ); } -} +} \ No newline at end of file From fa8928024aa9e22401c0180f0f84d1d9746a2478 Mon Sep 17 00:00:00 2001 From: devalexandre Date: Sun, 22 Apr 2018 14:17:20 -0300 Subject: [PATCH 3/7] separate you reduce the actions --- src/reducers/reducers.js | 3 +++ src/reducers/store.js | 15 +++++++++++++++ src/reducers/todo.js | 17 +++++++++++++++++ 3 files changed, 35 insertions(+) create mode 100644 src/reducers/reducers.js create mode 100644 src/reducers/store.js create mode 100644 src/reducers/todo.js diff --git a/src/reducers/reducers.js b/src/reducers/reducers.js new file mode 100644 index 0000000..eb7423d --- /dev/null +++ b/src/reducers/reducers.js @@ -0,0 +1,3 @@ +const EMPTY = {}; + +export default store => store || EMPTY; \ No newline at end of file diff --git a/src/reducers/store.js b/src/reducers/store.js new file mode 100644 index 0000000..99c3ee4 --- /dev/null +++ b/src/reducers/store.js @@ -0,0 +1,15 @@ +import { createStore } from 'redux'; +import {ADD_TODO, REMOVE_TODO} from './todo' + +const ACTIONS = { + ADD_TODO, + REMOVE_TODO +} + +const INITIAL = { + todos: [] +}; + +export default createStore( (state, action) => ( + action && ACTIONS[action.type] ? ACTIONS[action.type](state, action) : state +), INITIAL, typeof devToolsExtension==='function' ? devToolsExtension() : undefined); \ No newline at end of file diff --git a/src/reducers/todo.js b/src/reducers/todo.js new file mode 100644 index 0000000..83367b8 --- /dev/null +++ b/src/reducers/todo.js @@ -0,0 +1,17 @@ + + +const ADD_TODO = ({ todos, ...state }, { text }) => ({ + todos: [...todos, { + id: Math.random().toString(36).substring(2), + text + }], + ...state + }) + +const REMOVE_TODO = ({ todos, ...state }, { todo }) => ({ + todos: todos.filter( i => i!==todo ), + ...state + }) + + +export {ADD_TODO, REMOVE_TODO } \ No newline at end of file From 4efbb9c01f0b056e5e9d7c82cd045e17c66de871 Mon Sep 17 00:00:00 2001 From: devalexandre Date: Sun, 22 Apr 2018 14:18:10 -0300 Subject: [PATCH 4/7] alter reducers folder --- src/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/index.js b/src/index.js index 2597494..dfe6807 100755 --- a/src/index.js +++ b/src/index.js @@ -1,5 +1,5 @@ import { Provider } from 'preact-redux'; -import store from './store'; +import store from './reducers/store'; import App from './components/app'; import './style'; @@ -9,4 +9,4 @@ export default () => ( -); +); \ No newline at end of file From d9be386c907480dacfc65870d8e4baccaa386dd6 Mon Sep 17 00:00:00 2001 From: "Alexandre E. Souza" Date: Sun, 22 Apr 2018 14:19:41 -0300 Subject: [PATCH 5/7] movied for reducers folder --- src/actions.js | 14 -------------- 1 file changed, 14 deletions(-) delete mode 100644 src/actions.js diff --git a/src/actions.js b/src/actions.js deleted file mode 100644 index 11cc0eb..0000000 --- a/src/actions.js +++ /dev/null @@ -1,14 +0,0 @@ - -export function addTodo(text) { - return { - type: 'ADD_TODO', - text - }; -} - -export function removeTodo(todo) { - return { - type: 'REMOVE_TODO', - todo - }; -} From 933c03c87e47fc6fe6a2d06006a6b87138679a4f Mon Sep 17 00:00:00 2001 From: "Alexandre E. Souza" Date: Sun, 22 Apr 2018 14:19:53 -0300 Subject: [PATCH 6/7] movied for reducers folder --- src/reducers.js | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 src/reducers.js diff --git a/src/reducers.js b/src/reducers.js deleted file mode 100644 index 8da1ff1..0000000 --- a/src/reducers.js +++ /dev/null @@ -1,4 +0,0 @@ - -const EMPTY = {}; - -export default store => store || EMPTY; From b755d1a8d3d1687de6ef80a944f4552ca2320cb4 Mon Sep 17 00:00:00 2001 From: "Alexandre E. Souza" Date: Sun, 22 Apr 2018 14:20:04 -0300 Subject: [PATCH 7/7] movied for reducers folder --- src/store.js | 24 ------------------------ 1 file changed, 24 deletions(-) delete mode 100644 src/store.js diff --git a/src/store.js b/src/store.js deleted file mode 100644 index 7b20d57..0000000 --- a/src/store.js +++ /dev/null @@ -1,24 +0,0 @@ -import { createStore } from 'redux'; - -let ACTIONS = { - ADD_TODO: ({ todos, ...state }, { text }) => ({ - todos: [...todos, { - id: Math.random().toString(36).substring(2), - text - }], - ...state - }), - - REMOVE_TODO: ({ todos, ...state }, { todo }) => ({ - todos: todos.filter( i => i!==todo ), - ...state - }) -}; - -const INITIAL = { - todos: [] -}; - -export default createStore( (state, action) => ( - action && ACTIONS[action.type] ? ACTIONS[action.type](state, action) : state -), INITIAL, typeof devToolsExtension==='function' ? devToolsExtension() : undefined);