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;