diff --git a/.babelrc b/.babelrc index 1d3efd4..626ad90 100644 --- a/.babelrc +++ b/.babelrc @@ -1,4 +1,3 @@ { - "plugins": ["transform-react-jsx"], - "presets": ["env"] + "presets": ["env", "stage-0", "react", "es2015"] } diff --git a/package.json b/package.json index ff6399b..578e06d 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,9 @@ "babel-core": "^6.25.0", "babel-loader": "^7.1.1", "babel-preset-env": "^1.6.0", + "babel-preset-es2015": "^6.24.1", + "babel-preset-react": "^6.24.1", + "babel-preset-stage-0": "^6.24.1", "css-loader": "^0.28.4", "react": "^15.6.1", "react-dom": "^15.6.1", diff --git a/src/actions/resources.js b/src/actions/resources.js new file mode 100644 index 0000000..2eaff0a --- /dev/null +++ b/src/actions/resources.js @@ -0,0 +1 @@ +export const UPDATE_RESOURCES = 'UPDATE_RESOURCES'; diff --git a/src/index.js b/src/index.js index bd628de..f29ac0a 100644 --- a/src/index.js +++ b/src/index.js @@ -1,10 +1,15 @@ import React from 'react'; import { render } from 'react-dom'; +import { Provider } from 'react-redux'; + +import store from './store'; import scss from '../scss/base.scss'; render( -

- Hello world! -

, + +

+ Hello world! +

+
, document.getElementById('root') ); diff --git a/src/reducers/index.js b/src/reducers/index.js new file mode 100644 index 0000000..0ec8ab2 --- /dev/null +++ b/src/reducers/index.js @@ -0,0 +1,8 @@ +import { combineReducers } from 'redux'; +import torrents from './torrents'; + +const root = combineReducers({ + torrents +}); + +export default root; diff --git a/src/reducers/torrents.js b/src/reducers/torrents.js new file mode 100644 index 0000000..4aba48e --- /dev/null +++ b/src/reducers/torrents.js @@ -0,0 +1,14 @@ +import { UPDATE_RESOURCES } from '../actions/resources'; + +export default function torrents(state = {}, action) { + switch (action.type) { + case UPDATE_RESOURCES: + return { + ...state, + ...action.resources + .filter(r => r.type === "torrent") + .reduce((s, r) => s[r.id] = r, {}) + }; + } + return state; +} diff --git a/src/store.js b/src/store.js new file mode 100644 index 0000000..30ae752 --- /dev/null +++ b/src/store.js @@ -0,0 +1,10 @@ +import { createStore } from 'redux'; + +import reducer from './reducers'; + +const store = createStore( + reducer, + window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__() +); + +export default store;