Skip to content

Commit e968843

Browse files
committed
refactor(CSpinner): add visually hidden label
1 parent 5563b36 commit e968843

File tree

1 file changed

+20
-6
lines changed

1 file changed

+20
-6
lines changed

src/components/spinner/CSpinner.tsx

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ import { Colors, colorPropType } from '../Types'
77
export interface CSpinnerProps extends HTMLAttributes<HTMLDivElement | HTMLSpanElement> {
88
/**
99
* A string of all className you want applied to the component. [docs]
10-
*
11-
* @default 'undefined'
1210
*/
1311
className?: string
1412
/**
@@ -25,8 +23,6 @@ export interface CSpinnerProps extends HTMLAttributes<HTMLDivElement | HTMLSpanE
2523
component?: string | ElementType
2624
/**
2725
* Size the component small. [docs]
28-
*
29-
* @default 'undefined'
3026
*/
3127
size?: 'sm'
3228
/**
@@ -35,10 +31,27 @@ export interface CSpinnerProps extends HTMLAttributes<HTMLDivElement | HTMLSpanE
3531
* @default 'border'
3632
*/
3733
variant?: 'border' | 'grow'
34+
/**
35+
* Set visually hidden label for accessibility purposes. [docs]
36+
*
37+
* @default 'Loading...'
38+
*/
39+
visuallyHiddenLabel?: string
3840
}
3941

4042
export const CSpinner = forwardRef<HTMLDivElement | HTMLSpanElement, CSpinnerProps>(
41-
({ className, color, component: Component = 'div', size, variant = 'border', ...rest }, ref) => {
43+
(
44+
{
45+
className,
46+
color,
47+
component: Component = 'div',
48+
size,
49+
variant = 'border',
50+
visuallyHiddenLabel = 'Loading...',
51+
...rest
52+
},
53+
ref,
54+
) => {
4255
const _className = classNames(
4356
`spinner-${variant}`,
4457
`text-${color}`,
@@ -48,7 +61,7 @@ export const CSpinner = forwardRef<HTMLDivElement | HTMLSpanElement, CSpinnerPro
4861

4962
return (
5063
<Component className={_className} role="status" {...rest} ref={ref}>
51-
<span className="visually-hidden">Loading...</span>
64+
<span className="visually-hidden">{visuallyHiddenLabel}</span>
5265
</Component>
5366
)
5467
},
@@ -60,6 +73,7 @@ CSpinner.propTypes = {
6073
component: PropTypes.string,
6174
size: PropTypes.oneOf(['sm']),
6275
variant: PropTypes.oneOf(['border', 'grow']),
76+
visuallyHiddenLabel: PropTypes.string,
6377
}
6478

6579
CSpinner.displayName = 'CSpinner'

0 commit comments

Comments
 (0)