mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-22 05:16:00 +00:00
upload file button
This commit is contained in:
26
packages/web/src/utility/UploadButton.js
Normal file
26
packages/web/src/utility/UploadButton.js
Normal 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>
|
||||
);
|
||||
}
|
||||
@@ -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 };
|
||||
|
||||
Reference in New Issue
Block a user