Skip to content

Commit e5bf195

Browse files
Merge pull request #2576 from adamviktora/tree-view-close-button
CNV-56949: tree view close button styling changes
2 parents b39da3a + f5b7ad2 commit e5bf195

File tree

4 files changed

+55
-49
lines changed

4 files changed

+55
-49
lines changed

src/views/virtualmachines/tree/VirtualMachineTreeView.scss

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
.vms-tree-view {
2-
overflow-x: hidden;
2+
overflow: visible;
33

44
.pf-v6-c-tree-view__list-item {
55
position: relative;
@@ -22,20 +22,44 @@
2222
width: 100%;
2323
}
2424

25-
&__toolbar-top-panel {
26-
align-items: center;
27-
margin: var(--pf-t--global--spacer--sm) var(--pf-t--global--spacer--md) 0
28-
var(--pf-t--global--spacer--sm);
29-
}
30-
3125
&__search-input {
32-
width: 100%;
26+
margin-top: var(--pf-t--global--spacer--sm);
27+
margin-inline: var(--pf-t--global--spacer--md);
3328
}
3429

3530
&__action {
3631
padding: var(--pf-t--global--spacer--sm);
3732
}
3833

34+
&__panel-toggle-button {
35+
display: flex;
36+
justify-content: center;
37+
align-items: center;
38+
width: 1.5rem;
39+
height: 1.5rem;
40+
position: absolute;
41+
right: -0.5rem;
42+
top: 1.375rem;
43+
z-index: var(--pf-t--global--z-index--2xl);
44+
border: 1px solid var(--pf-t--global--icon--color--brand--default);
45+
border-radius: 100%;
46+
background: var(--pf-t--global--background--color--primary--default);
47+
48+
&:hover {
49+
border-color: var(--pf-t--global--icon--color--brand--hover);
50+
51+
svg {
52+
color: var(--pf-t--global--icon--color--brand--hover);
53+
}
54+
}
55+
56+
svg {
57+
color: var(--pf-t--global--icon--color--brand--default);
58+
width: 1rem;
59+
height: 1rem;
60+
}
61+
}
62+
3963
&__header-section {
4064
margin: var(--pf-t--global--spacer--sm) 0;
4165
}

src/views/virtualmachines/tree/components/PanelToggleButton.tsx

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,24 @@
11
import React, { FC } from 'react';
22

33
import { useKubevirtTranslation } from '@kubevirt-utils/hooks/useKubevirtTranslation';
4-
import { Button, ButtonVariant, Tooltip } from '@patternfly/react-core';
5-
import { PanelCloseIcon, PanelOpenIcon } from '@patternfly/react-icons';
4+
import { Tooltip } from '@patternfly/react-core';
5+
import { AngleLeftIcon, AngleRightIcon } from '@patternfly/react-icons';
66

77
type PanelToggleButtonProps = {
8-
className?: string;
98
isOpen: boolean;
109
toggleDrawer: () => void;
1110
};
1211

13-
const PanelToggleButton: FC<PanelToggleButtonProps> = ({ className, isOpen, toggleDrawer }) => {
12+
const PanelToggleButton: FC<PanelToggleButtonProps> = ({ isOpen, toggleDrawer }) => {
1413
const { t } = useKubevirtTranslation();
14+
15+
const SvgIcon = isOpen ? AngleLeftIcon : AngleRightIcon;
16+
1517
return (
1618
<Tooltip content={isOpen ? t('Close') : t('Open')}>
17-
<Button
18-
className={className}
19-
hasNoPadding
20-
icon={isOpen ? <PanelCloseIcon /> : <PanelOpenIcon />}
21-
onClick={toggleDrawer}
22-
variant={ButtonVariant.plain}
23-
/>
19+
<button className="vms-tree-view__panel-toggle-button" onClick={toggleDrawer}>
20+
<SvgIcon />
21+
</button>
2422
</Tooltip>
2523
);
2624
};

src/views/virtualmachines/tree/components/TreeViewContent.tsx

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -54,23 +54,16 @@ const TreeViewContent: FC<TreeViewContentProps> = ({
5454
);
5555
}
5656

57+
const panelToggleButton = <PanelToggleButton isOpen={isOpen} toggleDrawer={toggleDrawer} />;
58+
5759
if (!isOpen) {
58-
return (
59-
<PanelToggleButton
60-
className="vms-tree-view__action"
61-
isOpen={isOpen}
62-
toggleDrawer={toggleDrawer}
63-
/>
64-
);
60+
return panelToggleButton;
6561
}
6662

6763
return (
6864
<>
69-
<TreeViewToolbar
70-
closeComponent={<PanelToggleButton isOpen={isOpen} toggleDrawer={toggleDrawer} />}
71-
isSwitchDisabled={isSwitchDisabled}
72-
onSearch={onSearch}
73-
/>
65+
{panelToggleButton}
66+
<TreeViewToolbar isSwitchDisabled={isSwitchDisabled} onSearch={onSearch} />
7467
<DrawerHead className="vms-tree-view__header-section">
7568
<Content className="vms-tree-view__title" component="p">
7669
<TreeViewCollapseExpand setShowAll={setShowAll} showAll={showAll} />

src/views/virtualmachines/tree/components/TreeViewToolbar.tsx

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { ChangeEvent, FC, ReactNode } from 'react';
1+
import React, { ChangeEvent, FC } from 'react';
22

33
import { useKubevirtTranslation } from '@kubevirt-utils/hooks/useKubevirtTranslation';
44
import useLocalStorage from '@kubevirt-utils/hooks/useLocalStorage';
@@ -18,16 +18,11 @@ import {
1818
import { HIDE, SHOW, SHOW_EMPTY_PROJECTS_KEY, TREE_VIEW_SEARCH_ID } from '../utils/constants';
1919

2020
type TreeViewToolbarProps = {
21-
closeComponent: ReactNode;
2221
isSwitchDisabled: boolean;
2322
onSearch: (event: ChangeEvent<HTMLInputElement>) => void;
2423
};
2524

26-
const TreeViewToolbar: FC<TreeViewToolbarProps> = ({
27-
closeComponent,
28-
isSwitchDisabled,
29-
onSearch,
30-
}) => {
25+
const TreeViewToolbar: FC<TreeViewToolbarProps> = ({ isSwitchDisabled, onSearch }) => {
3126
const { t } = useKubevirtTranslation();
3227
const [showEmptyProjects, setShowEmptyProjects] = useLocalStorage(SHOW_EMPTY_PROJECTS_KEY, HIDE);
3328

@@ -36,17 +31,13 @@ const TreeViewToolbar: FC<TreeViewToolbarProps> = ({
3631
<ToolbarContent className="vms-tree-view-toolbar-content">
3732
<Stack className="vms-tree-view__toolbar-section" hasGutter>
3833
<StackItem>
39-
<Split className="vms-tree-view__toolbar-top-panel" hasGutter>
40-
<SplitItem className="vms-tree-view__search-input" isFilled>
41-
<TreeViewSearch
42-
id={TREE_VIEW_SEARCH_ID}
43-
name={TREE_VIEW_SEARCH_ID}
44-
onSearch={onSearch}
45-
placeholder={t('Search')}
46-
/>
47-
</SplitItem>
48-
<SplitItem>{closeComponent}</SplitItem>
49-
</Split>
34+
<TreeViewSearch
35+
className="vms-tree-view__search-input"
36+
id={TREE_VIEW_SEARCH_ID}
37+
name={TREE_VIEW_SEARCH_ID}
38+
onSearch={onSearch}
39+
placeholder={t('Search')}
40+
/>
5041
</StackItem>
5142
<Divider />
5243
<StackItem>

0 commit comments

Comments
 (0)