1234567891011121314151617181920212223242526272829303132 |
- <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">visibleTodoFilter</span>(<span class="hljs-params">state = 'watch', action</span>) </span>{
- <span class="hljs-keyword">switch</span> (action.type) {
- <span class="hljs-keyword">case</span> <span class="hljs-string">'CHANGE_VISIBLE_FILTER'</span>:
- <span class="hljs-keyword">return</span> action.filter;
- <span class="hljs-keyword">default</span>:
- <span class="hljs-keyword">return</span> state;
- }
- }
- <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">todos</span>(<span class="hljs-params">state, action</span>) </span>{
- <span class="hljs-keyword">switch</span> (action.type) {
- <span class="hljs-keyword">case</span> <span class="hljs-string">'ADD_TODO'</span>:
- <span class="hljs-keyword">return</span> [...state, {
- text: action.text,
- completed: <span class="hljs-literal">false</span>
- }];
- <span class="hljs-keyword">case</span> <span class="hljs-string">'COMPLETE_TODO'</span>:
- <span class="hljs-keyword">return</span> [
- ...state.slice(<span class="hljs-number">0</span>, action.index),
- <span class="hljs-built_in">Object</span>.assign({}, state[action.index], {
- completed: <span class="hljs-literal">true</span>
- }),
- ...state.slice(action.index + <span class="hljs-number">1</span>)
- ]
- <span class="hljs-keyword">default</span>:
- <span class="hljs-keyword">return</span> state;
- }
- }
- <span class="hljs-keyword">import</span> { combineReducers, createStore } <span class="hljs-keyword">from</span> <span class="hljs-string">'redux'</span>;
- <span class="hljs-keyword">let</span> reducer = combineReducers({ visibleTodoFilter, todos });
- <span class="hljs-keyword">let</span> store = createStore(reducer);
|