summaryrefslogtreecommitdiffstats
path: root/packages/gitbook-plugin-fontsettings/src
diff options
context:
space:
mode:
authorSamy Pesse <samypesse@gmail.com>2016-10-13 00:18:47 +0200
committerSamy Pesse <samypesse@gmail.com>2016-10-13 00:18:47 +0200
commitba56801352359e606e261b1fc066af4e394c47c9 (patch)
tree20c26cfd18f30858baf7527f3720e9011e3b6f57 /packages/gitbook-plugin-fontsettings/src
parent48ee0e35b0a9f77cfc66b2ec35a45e487020c847 (diff)
downloadgitbook-ba56801352359e606e261b1fc066af4e394c47c9.zip
gitbook-ba56801352359e606e261b1fc066af4e394c47c9.tar.gz
gitbook-ba56801352359e606e261b1fc066af4e394c47c9.tar.bz2
Add base for new fontsettings plugin
Diffstat (limited to 'packages/gitbook-plugin-fontsettings/src')
-rw-r--r--packages/gitbook-plugin-fontsettings/src/actions/font.js25
-rw-r--r--packages/gitbook-plugin-fontsettings/src/components/FontButton.js16
-rw-r--r--packages/gitbook-plugin-fontsettings/src/index.js13
-rw-r--r--packages/gitbook-plugin-fontsettings/src/reducers/font.js29
-rw-r--r--packages/gitbook-plugin-fontsettings/src/reducers/index.js3
5 files changed, 86 insertions, 0 deletions
diff --git a/packages/gitbook-plugin-fontsettings/src/actions/font.js b/packages/gitbook-plugin-fontsettings/src/actions/font.js
new file mode 100644
index 0000000..9034701
--- /dev/null
+++ b/packages/gitbook-plugin-fontsettings/src/actions/font.js
@@ -0,0 +1,25 @@
+
+const TYPES = {
+ INCREASE: 'font/increase',
+ DECREASE: 'font/decrease',
+ RESET: 'font/reset'
+};
+
+function increase() {
+ return { type: TYPES.INCREASE };
+}
+
+function decrease() {
+ return { type: TYPES.DECREASE };
+}
+
+function reset() {
+ return { type: TYPES.RESET };
+}
+
+module.exports = {
+ TYPES,
+ increase,
+ decrease,
+ reset
+};
diff --git a/packages/gitbook-plugin-fontsettings/src/components/FontButton.js b/packages/gitbook-plugin-fontsettings/src/components/FontButton.js
new file mode 100644
index 0000000..f1ea78b
--- /dev/null
+++ b/packages/gitbook-plugin-fontsettings/src/components/FontButton.js
@@ -0,0 +1,16 @@
+const GitBook = require('gitbook-core');
+const { React } = GitBook;
+
+const FontButton = React.createClass({
+ render() {
+ return (
+ <GitBook.Button>
+ <GitBook.Icon id="font"/>
+ </GitBook.Button>
+ );
+ }
+});
+
+module.exports = GitBook.connect(FontButton, (state) => {
+ return { font: state.font };
+});
diff --git a/packages/gitbook-plugin-fontsettings/src/index.js b/packages/gitbook-plugin-fontsettings/src/index.js
new file mode 100644
index 0000000..6ef7ba9
--- /dev/null
+++ b/packages/gitbook-plugin-fontsettings/src/index.js
@@ -0,0 +1,13 @@
+const GitBook = require('gitbook-core');
+const FontButton = require('./components/FontButton');
+const font = require('./actions/font');
+const reduce = require('./reducers');
+
+module.exports = GitBook.createPlugin({
+ activate: (dispatch, getState, { Components }) => {
+ // Dispatch initialization actions
+ dispatch(Components.registerComponent(FontButton, { role: 'toolbar:buttons:left' }));
+ },
+ actions: { font },
+ reduce
+});
diff --git a/packages/gitbook-plugin-fontsettings/src/reducers/font.js b/packages/gitbook-plugin-fontsettings/src/reducers/font.js
new file mode 100644
index 0000000..fff582d
--- /dev/null
+++ b/packages/gitbook-plugin-fontsettings/src/reducers/font.js
@@ -0,0 +1,29 @@
+const GitBook = require('gitbook-core');
+const { Record } = GitBook.Immutable;
+
+const { TYPES } = require('../actions/font');
+
+const FontState = Record({
+ fontSize: 1
+});
+
+module.exports = (state = FontState(), action) => {
+ switch (action.type) {
+
+ case TYPES.RESET:
+ return FontState();
+
+ case TYPES.INCREASE:
+ return state.merge({
+ fontSize: state.fontSize + 1
+ });
+
+ case TYPES.DECREASE:
+ return state.merge({
+ fontSize: state.fontSize + 1
+ });
+
+ default:
+ return state;
+ }
+};
diff --git a/packages/gitbook-plugin-fontsettings/src/reducers/index.js b/packages/gitbook-plugin-fontsettings/src/reducers/index.js
new file mode 100644
index 0000000..64d60c9
--- /dev/null
+++ b/packages/gitbook-plugin-fontsettings/src/reducers/index.js
@@ -0,0 +1,3 @@
+const GitBook = require('gitbook-core');
+
+module.exports = GitBook.createReducer('font', require('./font'));