Skip to content

Commit bb494e4

Browse files
authored
fix: changed the button lable from Upload to Browse (#9275)
* fix: changed the button lable from Upload to Browse * change button label from hardcoded text to props element * passes label as Browse * Update MultipleFileUploadMain.tsx * made changes as per your requirements * follow-up * follow-up * follow-up
1 parent 7b33179 commit bb494e4

File tree

3 files changed

+17
-2
lines changed

3 files changed

+17
-2
lines changed

packages/react-core/src/components/MultipleFileUpload/MultipleFileUploadButton.tsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,26 @@ export interface MultipleFileUploadButtonProps extends React.HTMLProps<HTMLDivEl
99
className?: string;
1010
/** Aria-label for the button */
1111
'aria-label'?: string;
12+
/** Visible text label for the button */
13+
'browseButtonText'?: string;
1214
}
1315

1416
export const MultipleFileUploadButton: React.FunctionComponent<MultipleFileUploadButtonProps> = ({
1517
className,
1618
'aria-label': ariaLabel,
19+
browseButtonText = "Upload",
1720
...props
1821
}: MultipleFileUploadButtonProps) => {
22+
if (!ariaLabel && !browseButtonText) {
23+
// eslint-disable-next-line no-console
24+
console.warn("For accessibility reasons an aria-label should be specified on MultipleFileUploadButton if a browseButtonText isn't");
25+
}
1926
const { open } = React.useContext(MultipleFileUploadContext);
2027

2128
return (
2229
<div className={css(styles.multipleFileUploadUpload, className)} {...props}>
2330
<Button variant="secondary" aria-label={ariaLabel} onClick={open}>
24-
Upload
31+
{browseButtonText}
2532
</Button>
2633
</div>
2734
);

packages/react-core/src/components/MultipleFileUpload/MultipleFileUploadMain.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ export interface MultipleFileUploadMainProps extends React.HTMLProps<HTMLDivElem
2121
infoText?: React.ReactNode;
2222
/** Flag to prevent the upload button from being rendered */
2323
isUploadButtonHidden?: boolean;
24+
/** Visible text label for the upload button */
25+
browseButtonText?: string
2426
}
2527

2628
export const MultipleFileUploadMain: React.FunctionComponent<MultipleFileUploadMainProps> = ({
@@ -30,14 +32,15 @@ export const MultipleFileUploadMain: React.FunctionComponent<MultipleFileUploadM
3032
titleTextSeparator,
3133
infoText,
3234
isUploadButtonHidden,
35+
browseButtonText="Upload",
3336
...props
3437
}: MultipleFileUploadMainProps) => {
3538
const showTitle = !!titleIcon || !!titleText || !!titleTextSeparator;
3639

3740
return (
3841
<div className={css(styles.multipleFileUploadMain, className)} {...props}>
3942
{showTitle && <MultipleFileUploadTitle icon={titleIcon} text={titleText} textSeparator={titleTextSeparator} />}
40-
{isUploadButtonHidden || <MultipleFileUploadButton />}
43+
{isUploadButtonHidden || <MultipleFileUploadButton browseButtonText={browseButtonText}/>}
4144
{!!infoText && <MultipleFileUploadInfo>{infoText}</MultipleFileUploadInfo>}
4245
</div>
4346
);

packages/react-core/src/components/MultipleFileUpload/__tests__/MultipleFileUploadButton.test.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,9 @@ describe('MultipleFileUploadButton', () => {
1717
const { asFragment } = render(<MultipleFileUploadButton aria-label="test">Foo</MultipleFileUploadButton>);
1818
expect(asFragment()).toMatchSnapshot();
1919
});
20+
21+
test('renders with label applied to the button', () => {
22+
const { asFragment } = render(<MultipleFileUploadButton browseButtonText="test">Foo</MultipleFileUploadButton>);
23+
expect(asFragment()).toMatchSnapshot();
24+
});
2025
});

0 commit comments

Comments
 (0)