Skip to content

Commit

Permalink
fix(ToolButton): mv gap to wrapper of children prop (#7039)
Browse files Browse the repository at this point in the history
h2. Описание

При ширине >= 768px включается десктопный режим, в этот момент показывается иконка для десктопа. Для этой иконки применяется отступ справа – это создаёт визуальный баг когда не передан `children`.

Переносим отступ на контейнер для `children`, т.к. отступ нужен только тогда, когда он передан.

h2. Дополнительные изменения

- добавил JSDoc для параметра `rounded`;
- убрал динамический ключ в объекте `sizeYClassNames`.
  • Loading branch information
inomdzhon authored Jun 21, 2024
1 parent bbb7ad3 commit 0f7194b
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 16 deletions.
18 changes: 4 additions & 14 deletions packages/vkui/src/components/ToolButton/ToolButton.module.css
Original file line number Diff line number Diff line change
Expand Up @@ -48,24 +48,14 @@
flex-direction: column;
}

/* stylelint-disable selector-max-universal -- gap для элементов */
.ToolButton--direction-row > * {
margin-inline-end: 4px;
.ToolButton--direction-row .ToolButton__text {
margin-inline-start: 4px;
}

.ToolButton--direction-row > *:last-child {
margin-inline-end: 0;
.ToolButton--direction-column .ToolButton__text {
margin-block-start: 4px;
}

.ToolButton--direction-column > * {
margin-block-end: 4px;
}

.ToolButton--direction-column > *:last-child {
margin-block-end: 0;
}
/* stylelint-enable selector-max-universal */

/* ToolButton's backgrounds */
/* Mode = Primary */
.ToolButton--mode-primary.ToolButton--appearance-accent {
Expand Down
9 changes: 7 additions & 2 deletions packages/vkui/src/components/ToolButton/ToolButton.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,18 @@ const stylesDirection = {

const sizeYClassNames = {
none: styles['ToolButton--sizeY-none'],
['regular']: styles['ToolButton--sizeY-regular'],
regular: styles['ToolButton--sizeY-regular'],
};

export interface ToolButtonProps extends TappableProps, AdaptiveIconRendererProps {
mode?: 'primary' | 'secondary' | 'tertiary' | 'outline';
appearance?: 'accent' | 'neutral';
direction?: 'row' | 'column';
/**
* Задаёт `50%` закругления для контейнера.
*
* > Note: игнорируется при передаче `children`.
*/
rounded?: boolean;
}

Expand Down Expand Up @@ -77,7 +82,7 @@ export const ToolButton = ({
{...restProps}
>
<AdaptiveIconRenderer IconCompact={IconCompact} IconRegular={IconRegular} />
{hasChildren && <span>{children}</span>}
{hasChildren && <span className={styles['ToolButton__text']}>{children}</span>}
</Tappable>
);
};

0 comments on commit 0f7194b

Please sign in to comment.