From a292318d2307543333fd5c2ea06610c6b82b0566 Mon Sep 17 00:00:00 2001 From: Pawel Kowalczyk Date: Mon, 25 Jun 2018 13:11:14 +0200 Subject: [PATCH] new flags in side panel Feature ##13598 Arvados-DCO-1.1-Signed-off-by: Pawel Kowalczyk --- src/components/side-panel/side-panel.tsx | 18 ++++++++++-------- src/store/side-panel/side-panel-reducer.ts | 2 ++ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/components/side-panel/side-panel.tsx b/src/components/side-panel/side-panel.tsx index 36e4c74d..ac207301 100644 --- a/src/components/side-panel/side-panel.tsx +++ b/src/components/side-panel/side-panel.tsx @@ -19,6 +19,8 @@ export interface SidePanelItem { icon: string; active?: boolean; open?: boolean; + margin?: boolean; + openAble?: boolean; } interface SidePanelProps { @@ -29,8 +31,8 @@ interface SidePanelProps { class SidePanel extends React.Component> { render(): ReactElement { - const { classes, toggleOpen, toggleActive, sidePanelItems } = this.props; - const { listItemText, leftSidePanelContainer, row, list, icon, projectIcon, active, activeArrow, inactiveArrow, arrowTransition, arrowRotate } = classes; + const { classes, toggleOpen, toggleActive, sidePanelItems, children } = this.props; + const { listItemText, leftSidePanelContainer, row, list, icon, projectIconMargin, active, activeArrow, inactiveArrow, arrowTransition, arrowRotate } = classes; return (
@@ -38,17 +40,17 @@ class SidePanel extends React.Component> { toggleActive(it.id)}> - {it.name === "Projects" ? toggleOpen(it.id)} className={`${it.active ? activeArrow : inactiveArrow} + {it.openAble ? toggleOpen(it.id)} className={`${it.active ? activeArrow : inactiveArrow} ${it.open ? `fas fa-caret-down ${arrowTransition}` : `fas fa-caret-down ${arrowRotate}`}`} /> : null} - + {it.name}} /> - {it.name === "Projects" ? ( + {it.openAble ? ( - {this.props.children} + {children} ) : null} ))} @@ -58,7 +60,7 @@ class SidePanel extends React.Component> { } } -type CssRules = 'active' | 'listItemText' | 'row' | 'leftSidePanelContainer' | 'list' | 'icon' | 'projectIcon' | +type CssRules = 'active' | 'listItemText' | 'row' | 'leftSidePanelContainer' | 'list' | 'icon' | 'projectIconMargin' | 'activeArrow' | 'inactiveArrow' | 'arrowRotate' | 'arrowTransition'; const styles: StyleRulesCallback = (theme: Theme) => ({ @@ -103,7 +105,7 @@ const styles: StyleRulesCallback = (theme: Theme) => ({ icon: { minWidth: '20px', }, - projectIcon: { + projectIconMargin: { marginLeft: '17px', } }); diff --git a/src/store/side-panel/side-panel-reducer.ts b/src/store/side-panel/side-panel-reducer.ts index 8051017c..9fc5df15 100644 --- a/src/store/side-panel/side-panel-reducer.ts +++ b/src/store/side-panel/side-panel-reducer.ts @@ -42,6 +42,8 @@ export const sidePanelData = [ icon: "fas fa-th fa-fw", open: false, active: false, + margin: true, + openAble: true }, { id: "2", -- 2.30.2