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

Reply via email to