From 048398f7a2bc4456cac1be4c2237fd489a88a2fd Mon Sep 17 00:00:00 2001 From: Gil Barbara Date: Tue, 14 Jul 2015 20:31:35 -0300 Subject: [PATCH] add feature toggle --- app/scripts/components/Header.jsx | 69 +++++++++++++++++-------------- app/scripts/components/Logo.jsx | 1 - app/scripts/config.js | 6 +++ 3 files changed, 45 insertions(+), 31 deletions(-) create mode 100644 app/scripts/config.js diff --git a/app/scripts/components/Header.jsx b/app/scripts/components/Header.jsx index f4e8c86..6673670 100644 --- a/app/scripts/components/Header.jsx +++ b/app/scripts/components/Header.jsx @@ -1,5 +1,6 @@ var React = require('react/addons'), - ScaleLog = require('../utils/scaleLog'); + ScaleLog = require('../utils/scaleLog'), + config = require('../config'); var Header = React.createClass({ mixins: [React.addons.PureRenderMixin], @@ -15,30 +16,32 @@ var Header = React.createClass({ max: 0 }; - this.props.logos.forEach(function (d) { - d.tags.forEach(function (t) { - if (!tags.hasOwnProperty(t)) { - tags[t] = 0; - } - tags[t]++; + if (config.features.tags) { + this.props.logos.forEach(function (d) { + d.tags.forEach(function (t) { + if (!tags.hasOwnProperty(t)) { + tags[t] = 0; + } + tags[t]++; + }); }); - }); - tags = this.sortObject(tags); + tags = this.sortObject(tags); - tags.forEach((t) => { - if (t.value < sizer.min) { - sizer.min = t.value; - } - if (t.value > sizer.max) { - sizer.max = t.value; - } - }); + tags.forEach((t) => { + if (t.value < sizer.min) { + sizer.min = t.value; + } + if (t.value > sizer.max) { + sizer.max = t.value; + } + }); - this.setState({ - tags: tags, - scale: new ScaleLog(sizer) - }); + this.setState({ + tags: tags, + scale: new ScaleLog(sizer) + }); + } }, sortObject (obj) { @@ -62,21 +65,27 @@ var Header = React.createClass({ }, render () { - var state = this.state; + var state = this.state, + tags; + + if (config.features.tags) { + tags = ( +
+ {state.tags.map((d, i) => { + return ({d.key + ' (' + d.value + ')'} + ); + })} +
+ ); + } return (

A collection of svg logos for developers.

- -
- {state.tags.map((d, i) => { - return ({d.key + ' (' + d.value + ')'} - ); - })} -
+ {tags}
); } diff --git a/app/scripts/components/Logo.jsx b/app/scripts/components/Logo.jsx index 8d8cc1b..a72c8e0 100644 --- a/app/scripts/components/Logo.jsx +++ b/app/scripts/components/Logo.jsx @@ -14,7 +14,6 @@ var Logo = React.createClass({ render () { var info = this.props.info; - return (
  • diff --git a/app/scripts/config.js b/app/scripts/config.js new file mode 100644 index 0000000..d88825f --- /dev/null +++ b/app/scripts/config.js @@ -0,0 +1,6 @@ +module.exports = { + features: { + menu: false, + tags: false + } +};