Skip to content

Commit 07be616

Browse files
feat(UploadButton): add generic UploadButton component (#67)
1 parent 741177a commit 07be616

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

src/components/UploadButton.tsx

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import React, { ComponentProps } from 'react';
2+
3+
import { useHandleFileChangeWrapper } from '../utils';
4+
5+
export type UploadButtonProps = {
6+
resetOnChange?: boolean;
7+
onFileChange: (files: Array<File>) => void;
8+
} & Omit<ComponentProps<'input'>, 'type' | 'onChange'>;
9+
10+
export const UploadButton = ({
11+
resetOnChange = true,
12+
onFileChange,
13+
...rest
14+
}: UploadButtonProps) => {
15+
const handleInputChange = useHandleFileChangeWrapper(
16+
resetOnChange,
17+
onFileChange,
18+
);
19+
20+
return <input type="file" onChange={handleInputChange} {...rest} />;
21+
};

src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ export * from './components/LoadingIndicator';
1010
export * from './components/PictureIcon';
1111
export * from './components/Thumbnail';
1212
export * from './components/ThumbnailPlaceholder';
13+
export * from './components/UploadButton';
1314

1415
export * from './types';
1516
export { dataTransferItemsToFiles, dataTransferItemsHaveFiles } from './utils';

0 commit comments

Comments
 (0)