Author: bricks Date: 2017-01-13 14:48:01 +0100 (Fri, 13 Jan 2017) New Revision: 27205
Modified: trunk/gsa/ChangeLog trunk/gsa/src/html/classic/ng/src/web/icons/icon.js trunk/gsa/src/html/classic/ng/src/web/menu/iconmenu.js Log: * src/html/classic/ng/src/web/icons/icon.js, src/html/classic/ng/src/web/menu/iconmenu.js: Allow to use icon css on icon menu by extractint a withIconCss HOC from Icon component. Modified: trunk/gsa/ChangeLog =================================================================== --- trunk/gsa/ChangeLog 2017-01-13 13:08:02 UTC (rev 27204) +++ trunk/gsa/ChangeLog 2017-01-13 13:48:01 UTC (rev 27205) @@ -1,3 +1,9 @@ +2017-01-13 Bj�rn Ricks <bjoern.ri...@greenbone.net> + + * src/html/classic/ng/src/web/icons/icon.js, + src/html/classic/ng/src/web/menu/iconmenu.js: Allow to use icon css on icon + menu by extractint a withIconCss HOC from Icon component. + 2016-01-13 Hani Benhabiles <hani.benhabi...@greenbone.net> * src/gsad_http.c (handler_send_response), src/gsad_http_handler.c Modified: trunk/gsa/src/html/classic/ng/src/web/icons/icon.js =================================================================== --- trunk/gsa/src/html/classic/ng/src/web/icons/icon.js 2017-01-13 13:08:02 UTC (rev 27204) +++ trunk/gsa/src/html/classic/ng/src/web/icons/icon.js 2017-01-13 13:48:01 UTC (rev 27205) @@ -27,44 +27,47 @@ import './css/icon.css'; -export const Icon = props => { - const {img, href, size = 'small', className, onClick, alt = '', - ...other} = props; - let css = 'icon'; +export const withIconCss = Component => { + return function(props) { + let {size = 'small', className, onClick, ...other} = props; //eslint-disable-line - if (size === 'small') { - css = classes('icon', 'icon-sm', className); - } - else if (size === 'medium') { - css = classes('icon', 'icon-m', className); - } - else if (size === 'large') { - css = classes('icon', 'icon-lg', className); - } - else { - css = classes('icon', className); - } + if (size === 'small') { + className = classes('icon', 'icon-sm', className); + } + else if (size === 'medium') { + className = classes('icon', 'icon-m', className); + } + else if (size === 'large') { + className = classes('icon', 'icon-lg', className); + } + else { + className = classes('icon', className); + } - if (onClick) { - css = classes(css, 'icon-button'); - } + if (onClick) { + className = classes(className, 'icon-button'); + } + return <Component {...other} onClick={onClick} className={className}/>; + }; +}; +const IconContainer = props => { + const {img, href, alt = '', ...other} = props; let img_path = process.env.PUBLIC_URL + '/img/' + img; // eslint-disable-line no-process-env,no-undef if (href) { return ( - <a onClick={onClick} {...other} className={css} href={href}> + <a {...other} href={href}> <img src={img_path} alt={alt}/> </a> ); } return ( - <img onClick={onClick} {...other} alt={alt} className={css} - src={img_path}/> + <img {...other} alt={alt} src={img_path}/> ); }; -Icon.propTypes = { +IconContainer.propTypes = { alt: React.PropTypes.string, img: React.PropTypes.string.isRequired, size: React.PropTypes.string, @@ -73,6 +76,8 @@ onClick: React.PropTypes.func, }; +export const Icon = withIconCss(IconContainer); + export default Icon; // vim: set ts=2 sw=2 tw=80: Modified: trunk/gsa/src/html/classic/ng/src/web/menu/iconmenu.js =================================================================== --- trunk/gsa/src/html/classic/ng/src/web/menu/iconmenu.js 2017-01-13 13:08:02 UTC (rev 27204) +++ trunk/gsa/src/html/classic/ng/src/web/menu/iconmenu.js 2017-01-13 13:48:01 UTC (rev 27205) @@ -23,17 +23,20 @@ import React from 'react'; -import Icon from '../icons/icon.js'; +import {classes} from '../../utils.js'; +import Icon, {withIconCss} from '../icons/icon.js'; + import './css/iconmenu.css'; -export const IconMenu = props => { +const IconMenuContainer = props => { - let {children, onClick, ...other} = props; - let css = onClick ? 'icon-menu icon-button' : 'icon-menu'; + let {children, onClick, className, ...other} = props; + className = classes('icon-menu', className); + return ( - <span className={css}> + <span className={className}> <Icon onClick={onClick} {...other}/> <ul> {children} @@ -42,11 +45,14 @@ ); }; -IconMenu.propTypes = { +IconMenuContainer.propTypes = { img: React.PropTypes.string.isRequired, + className: React.PropTypes.string, onClick: React.PropTypes.func, }; +export const IconMenu = withIconCss(IconMenuContainer); + export default IconMenu; // vim: set ts=2 sw=2 tw=80:
_______________________________________________ Openvas-commits mailing list Openvas-commits@wald.intevation.org https://lists.wald.intevation.org/cgi-bin/mailman/listinfo/openvas-commits