upload file button

This commit is contained in:
Jan Prochazka
2020-11-29 10:49:01 +01:00
parent 634e63a3dc
commit 0d68eeac63
4 changed files with 49 additions and 8 deletions

View File

@@ -0,0 +1,26 @@
import React from 'react';
import useTheme from '../theme/useTheme';
import { FormStyledLabel } from '../widgets/FormStyledButton';
import styled from 'styled-components';
import { useUploadFiles } from './UploadsProvider';
const Wrapper = styled.div`
margin: 10px;
`;
export default function UploadButton() {
const theme = useTheme();
const uploadFiles = useUploadFiles();
const handleChange = (e) => {
const files = [...e.target.files];
uploadFiles(files);
};
return (
<Wrapper>
<FormStyledLabel htmlFor="uploadFileButton" theme={theme}>
Upload file
</FormStyledLabel>
<input type="file" id="uploadFileButton" hidden onChange={handleChange} />
</Wrapper>
);
}

View File

@@ -17,12 +17,12 @@ export function useUploadsProvider() {
return React.useContext(UploadsContext);
}
export function useUploadsZone() {
export function useUploadFiles() {
const { uploadListener } = useUploadsProvider();
const showModal = useShowModal();
const extensions = useExtensions();
const onDrop = React.useCallback(
const handleUploadFiles = React.useCallback(
(files) => {
files.forEach(async (file) => {
if (parseInt(file.size, 10) >= 4 * 1024 * 1024) {
@@ -87,6 +87,12 @@ export function useUploadsZone() {
},
[uploadListener, extensions]
);
return handleUploadFiles;
}
export function useUploadsZone() {
const onDrop = useUploadFiles();
const { getRootProps, getInputProps, isDragActive } = useDropzone({ onDrop });
return { getRootProps, getInputProps, isDragActive };