Skip to content

Commit cfa69ab

Browse files
committed
fix: child visibility for loading state
1 parent eb19fde commit cfa69ab

File tree

3 files changed

+15
-6
lines changed

3 files changed

+15
-6
lines changed

src/Shared/Components/Button/Button.component.tsx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,18 @@ const Button = ({
1616
disabled,
1717
isLoading,
1818
}: ButtonProps) => {
19-
const visibilityClass = isLoading ? 'dc__visibility-hidden' : ''
20-
const iconClass = `dc__no-shrink flex dc__fill-available-space ${BUTTON_SIZE_TO_ICON_CLASS_NAME_MAP[size]} ${visibilityClass}`
19+
const iconClass = `dc__no-shrink flex dc__fill-available-space ${BUTTON_SIZE_TO_ICON_CLASS_NAME_MAP[size]}`
2120

2221
return (
2322
<button
2423
{...buttonProps}
2524
disabled={disabled || isLoading}
2625
// eslint-disable-next-line react/button-has-type
2726
type={buttonProps.type || 'button'}
28-
className={`br-4 flex cursor dc__mnw-100 dc__tab-focus dc__position-rel dc__capitalize ${getButtonDerivedClass({ size, variant, style })} ${disabled ? 'dc__disabled' : ''} ${buttonProps.className || ''}`}
27+
className={`br-4 flex cursor dc__mnw-100 dc__tab-focus dc__position-rel dc__capitalize ${getButtonDerivedClass({ size, variant, style, isLoading })} ${disabled ? 'dc__disabled' : ''} ${buttonProps.className || ''}`}
2928
>
3029
{startIcon && <span className={iconClass}>{startIcon}</span>}
31-
<span className={`dc__mxw-150 dc__align-left dc__truncate ${visibilityClass}`}>{text}</span>
30+
<span className="dc__mxw-150 dc__align-left dc__truncate">{text}</span>
3231
{endIcon && <span className={iconClass}>{endIcon}</span>}
3332
{isLoading && <Progressing size={BUTTON_SIZE_TO_LOADER_SIZE_MAP[size]} />}
3433
</button>

src/Shared/Components/Button/button.scss

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
// Custom state for loader
1212
.loader {
13+
visibility: visible;
1314
position: absolute;
1415

1516
svg,
@@ -165,4 +166,8 @@
165166
}
166167
}
167168
}
169+
170+
&--loading > * {
171+
visibility: hidden;
172+
}
168173
}

src/Shared/Components/Button/utils.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
import { BUTTON_SIZE_TO_CLASS_NAME_MAP } from './constants'
22
import { ButtonProps, ButtonStyleType, ButtonVariantType } from './types'
33

4-
export const getButtonDerivedClass = ({ size, variant, style }: Pick<ButtonProps, 'variant' | 'size' | 'style'>) =>
5-
`button button__${ButtonVariantType[variant]}--${ButtonStyleType[style]} ${BUTTON_SIZE_TO_CLASS_NAME_MAP[size]}`
4+
export const getButtonDerivedClass = ({
5+
size,
6+
variant,
7+
style,
8+
isLoading,
9+
}: Pick<ButtonProps, 'variant' | 'size' | 'style' | 'isLoading'>) =>
10+
`button button__${ButtonVariantType[variant]}--${ButtonStyleType[style]} ${BUTTON_SIZE_TO_CLASS_NAME_MAP[size]} ${isLoading ? 'button--loading' : ''}`

0 commit comments

Comments
 (0)