From f466a24b4588300c699d082eb08a98e080affdaa Mon Sep 17 00:00:00 2001 From: Ivan Diaz Date: Sat, 11 Jun 2016 21:37:08 -0300 Subject: [PATCH] [Ivan Diaz] - Add secondary menu, $secondary-blue variable, refactor Icon component, update demo page [skip ci] --- client/src/app/demo/components-demo-page.js | 39 ++++++++++++++----- client/src/core-components/icon.js | 42 +++++++++++++++++---- client/src/core-components/menu.scss | 7 ++++ client/src/main.scss | 2 +- client/src/scss/_vars.scss | 1 + 5 files changed, 73 insertions(+), 18 deletions(-) diff --git a/client/src/app/demo/components-demo-page.js b/client/src/app/demo/components-demo-page.js index f32e42d0..38a79775 100644 --- a/client/src/app/demo/components-demo-page.js +++ b/client/src/app/demo/components-demo-page.js @@ -1,16 +1,23 @@ 'use strict'; -import React from 'react'; -import {Link} from 'react-router'; -import DocumentTitle from 'react-document-title'; +const React = require('react'); +const DocumentTitle = require('react-document-title'); -import Button from 'core-components/button'; -import Input from 'core-components/input'; -import Checkbox from 'core-components/checkbox'; -import Widget from 'core-components/widget'; -import DropDown from 'core-components/drop-down'; +const Button = require('core-components/button'); +const Input = require('core-components/input'); +const Checkbox = require('core-components/checkbox'); +const Widget = require('core-components/widget'); +const DropDown = require('core-components/drop-down'); +const Menu = require('core-components/menu'); let dropDownItems = [{content: 'English'}, {content: 'Spanish'}, {content: 'German'}, {content: 'Portuguese'}, {content: 'Japanese'}]; +let secondaryMenuItems = [ + {content: 'My Tickets', icon: 'file-text'}, + {content: 'New Ticket', icon: 'plus'}, + {content: 'Articles', icon: 'book'}, + {content: 'Edit Profile', icon: 'pencil'}, + {content: 'Close Session', icon: 'lock'} +]; let DemoPage = React.createClass({ @@ -58,13 +65,25 @@ let DemoPage = React.createClass({ render: ( ) + }, + { + title: 'Primary Menu', + render: ( + + ) + }, + { + title: 'Secondary Menu', + render: ( + + ) } ], render() { return ( -
+
{this.renderElements()}
@@ -74,7 +93,7 @@ let DemoPage = React.createClass({ renderElements: function () { return this.elements.map((element) => { return ( -
+

{element.title}

diff --git a/client/src/core-components/icon.js b/client/src/core-components/icon.js index 3642c1d0..26c0898e 100644 --- a/client/src/core-components/icon.js +++ b/client/src/core-components/icon.js @@ -1,17 +1,45 @@ -import React from 'react'; +const React = require('react'); +const classNames = require('classnames'); -let Icon = React.createClass({ +const Icon = React.createClass({ propTypes: { - name: React.PropTypes.string.isRequired + name: React.PropTypes.string.isRequired, + size: React.PropTypes.number + }, + + getDefaultProps() { + return { + size: 0 + }; }, render() { - return ( - - ); - } + return (this.props.name.length > 2) ? this.renderFontIcon() : this.renderFlag(); + }, + renderFontIcon() { + return ( +