Skip to content

Commit ca3101f

Browse files
committed
refactor: use ToolbarButtonView
1 parent 118fe0b commit ca3101f

File tree

1 file changed

+14
-53
lines changed

1 file changed

+14
-53
lines changed

src/toolbar/ToolbarListButton.tsx

Lines changed: 14 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,15 @@
11
import {Fragment, useEffect, useState} from 'react';
22

33
import {ChevronDown} from '@gravity-ui/icons';
4-
import {
5-
ActionTooltip,
6-
Button,
7-
HelpMark,
8-
Hotkey,
9-
Icon,
10-
Menu,
11-
Popover,
12-
Popup,
13-
} from '@gravity-ui/uikit';
4+
import {HelpMark, Hotkey, Icon, Menu, Popover, Popup} from '@gravity-ui/uikit';
145

156
import {cn} from '../classname';
167
import {i18n} from '../i18n/common';
178
import {isFunction} from '../lodash';
189
import {useBooleanState, useElementState} from '../react-utils/hooks';
1910

2011
import {PreviewTooltip} from './PreviewTooltip';
21-
import {ToolbarTooltipDelay} from './const';
12+
import {ToolbarButtonView} from './ToolbarButton';
2213
import type {
2314
ToolbarBaseProps,
2415
ToolbarButtonPopupData,
@@ -70,50 +61,20 @@ export function ToolbarListButton<E>({
7061
buttonContent.push(<Icon key={3} data={ChevronDown} size={16} />);
7162
}
7263

73-
const titleText: string = isFunction(title) ? title() : title;
74-
75-
const button = (
76-
<Button
77-
size="m"
78-
ref={setAnchorElement}
79-
view={someActive || popupOpen ? 'normal' : 'flat'}
80-
selected={someActive}
81-
disabled={everyDisabled}
82-
className={b({arrow: withArrow}, [className])}
83-
onClick={() => {
84-
if (popupItem) setPopupItem(undefined);
85-
else toggleOpen();
86-
}}
87-
>
88-
{buttonContent}
89-
</Button>
90-
);
91-
9264
return (
9365
<>
94-
{everyDisabled ? (
95-
<ActionTooltip
96-
title={titleText}
97-
disabled={Boolean(popupItem) || popupOpen}
98-
openDelay={ToolbarTooltipDelay.Open}
99-
closeDelay={ToolbarTooltipDelay.Close}
100-
>
101-
{button}
102-
</ActionTooltip>
103-
) : (
104-
<Popover
105-
className={b('action-disabled-popover')}
106-
content={
107-
<div className={b('action-disabled-tooltip')}>
108-
{i18n('toolbar_action_disabled')}
109-
</div>
110-
}
111-
placement={'bottom'}
112-
disabled={!everyDisabled}
113-
>
114-
{button}
115-
</Popover>
116-
)}
66+
<ToolbarButtonView
67+
ref={setAnchorElement}
68+
active={someActive}
69+
enabled={!everyDisabled}
70+
title={title}
71+
icon={icon}
72+
className={b({arrow: withArrow}, [className])}
73+
onClick={() => {
74+
if (popupItem) setPopupItem(undefined);
75+
else toggleOpen();
76+
}}
77+
/>
11778
<Popup anchorElement={anchorElement} open={popupOpen} onOpenChange={hide}>
11879
<Menu size="l" className={b('menu')}>
11980
{data

0 commit comments

Comments
 (0)