Update icons and small refacto for performance

This commit is contained in:
Gustavo Lelis 2020-04-07 16:59:48 -03:00 committed by James A. Petts
parent 1cf286962c
commit c8eda21da4
2 changed files with 17 additions and 12 deletions

View File

@ -1,4 +1,4 @@
import React, { useState } from 'react'; import React, { useState, useCallback } from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import classnames from 'classnames'; import classnames from 'classnames';
@ -38,6 +38,11 @@ const classesMap = {
}, },
}; };
const openIconName = {
left: 'panel-left',
right: 'panel-right',
};
const SidePanel = ({ const SidePanel = ({
side, side,
className, className,
@ -50,12 +55,8 @@ const SidePanel = ({
const [isOpen, setIsOpen] = useState(defaultIsOpen); const [isOpen, setIsOpen] = useState(defaultIsOpen);
const openStatus = isOpen ? 'open' : 'closed'; const openStatus = isOpen ? 'open' : 'closed';
const style = Object.assign({}, styleMap[openStatus][side], baseStyle); const style = Object.assign({}, styleMap[openStatus][side], baseStyle);
const openIconName = {
left: 'chevron-right',
right: 'chevron-right',
};
const sidePanelHeader = () => { const getSidePanelHeader = useCallback(() => {
return ( return (
<React.Fragment> <React.Fragment>
{isOpen ? ( {isOpen ? (
@ -63,7 +64,9 @@ const SidePanel = ({
variant="text" variant="text"
color="inherit" color="inherit"
rounded="none" rounded="none"
onClick={() => setIsOpen(false)} onClick={() => {
setIsOpen(false);
}}
className="flex flex-row items-center border-b w-100 border-secondary-main h-12" className="flex flex-row items-center border-b w-100 border-secondary-main h-12"
> >
<Icon <Icon
@ -79,7 +82,9 @@ const SidePanel = ({
<Button <Button
variant="text" variant="text"
color="inherit" color="inherit"
onClick={() => setIsOpen(true)} onClick={() => {
setIsOpen(true);
}}
style={{ style={{
minWidth: `${collapsedWidth}px`, minWidth: `${collapsedWidth}px`,
width: `${collapsedWidth}px`, width: `${collapsedWidth}px`,
@ -92,7 +97,7 @@ const SidePanel = ({
)} )}
</React.Fragment> </React.Fragment>
); );
}; }, [componentLabel, iconLabel, iconName, isOpen, side]);
return ( return (
<div <div
@ -103,7 +108,7 @@ const SidePanel = ({
)} )}
style={style} style={style}
> >
{sidePanelHeader(isOpen, side, iconLabel, iconName)} {getSidePanelHeader()}
{isOpen && children} {isOpen && children}
</div> </div>
); );

View File

@ -15,7 +15,7 @@ const Viewer = () => {
> >
<SidePanel <SidePanel
side="left" side="left"
iconName="info-link" iconName="icon-nav-studies"
iconLabel="Studies" iconLabel="Studies"
componentLabel="Studies" componentLabel="Studies"
defaultIsOpen={false} defaultIsOpen={false}
@ -27,7 +27,7 @@ const Viewer = () => {
</div> </div>
<SidePanel <SidePanel
side="right" side="right"
iconName="info-link" iconName="list-bullets"
iconLabel="Measure" iconLabel="Measure"
componentLabel="Measurements" componentLabel="Measurements"
defaultIsOpen={true} defaultIsOpen={true}