Skip to content

Commit 9bd4bc8

Browse files
authored
Merge pull request #112 from tempfiles-Team/111-파일-드래그-업로드
111 파일 드래그 업로드
2 parents a862b28 + 4d1e5f6 commit 9bd4bc8

File tree

4 files changed

+47
-8
lines changed

4 files changed

+47
-8
lines changed

src/components/common/FileFind/index.tsx

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,24 @@ import * as S from './styled';
44

55
type FileFindProps = {
66
handleChangeFile: any;
7+
handleDrop: any;
8+
handleDragOver: any;
79
fileProps: any;
810
};
911

10-
export const FileFind: React.FC<FileFindProps> = ({ handleChangeFile, fileProps }) => (
12+
export const FileFind: React.FC<FileFindProps> = ({
13+
handleChangeFile,
14+
fileProps,
15+
handleDrop,
16+
handleDragOver,
17+
}) => (
1118
<S.FileFindContainer>
12-
<S.FileFindTextBox>
19+
<S.FileFindLabelBox
20+
id="label-file-upload"
21+
htmlFor="input-file-upload"
22+
onDrop={handleDrop}
23+
onDragOver={handleDragOver}
24+
>
1325
{fileProps.filename != '' && fileProps.size != '' && fileProps.fileType != ''
1426
? '이름:' +
1527
fileProps.filename +
@@ -18,9 +30,14 @@ export const FileFind: React.FC<FileFindProps> = ({ handleChangeFile, fileProps
1830
' / 타입:' +
1931
fileProps.fileType
2032
: '업로드 할 파일을 선택해주세요....'}
21-
</S.FileFindTextBox>
33+
</S.FileFindLabelBox>
2234

23-
<S.FileFindButton htmlFor="file">찾아보기</S.FileFindButton>
24-
<input type={'file'} id="file" style={{ display: 'none' }} onChange={handleChangeFile} />
35+
<S.FileFindButton htmlFor="input-file-upload">찾아보기</S.FileFindButton>
36+
<input
37+
id="input-file-upload"
38+
type={'file'}
39+
style={{ display: 'none' }}
40+
onChange={handleChangeFile}
41+
/>
2542
</S.FileFindContainer>
2643
);

src/components/common/FileFind/styled.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export const FileFindContainer = styled.div`
77
margin-top: 2rem;
88
`;
99

10-
export const FileFindTextBox = styled.div`
10+
export const FileFindLabelBox = styled.label`
1111
border: 0.4rem solid var(--color-border);
1212
border-radius: 1rem;
1313
width: 45rem;

src/pages/main/index.tsx

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ export const MainPage: React.FC = () => {
4747
const { SetDownloadFileProps } = bindActionCreators(actionCreators, dispatch);
4848

4949
const handleChangeFile = (event: any) => {
50+
event.preventDefault();
5051
setFileProps({
5152
filename: event.target.files[0].name,
5253
size: getFileSize(event.target.files[0].size),
@@ -56,6 +57,22 @@ export const MainPage: React.FC = () => {
5657
});
5758
};
5859

60+
const handleDrop = function (event: any) {
61+
event.preventDefault();
62+
setFileProps({
63+
filename: event.dataTransfer.files[0].name,
64+
size: getFileSize(event.dataTransfer.files[0].size),
65+
fileType:
66+
event.dataTransfer.files[0].type === ''
67+
? 'application/actet-stream'
68+
: event.dataTransfer.files[0].type,
69+
fileData: event.dataTransfer.files[0],
70+
});
71+
};
72+
const dragOver = (event: any) => {
73+
event.preventDefault();
74+
};
75+
5976
const UpLoad = async () => {
6077
if (fileProps.filename != '' && fileProps.size != '') {
6178
const formdata = new FormData();
@@ -168,7 +185,12 @@ export const MainPage: React.FC = () => {
168185
placeholder="비밀번호를 입력해주세요."
169186
/>
170187
)}
171-
<FileFind handleChangeFile={handleChangeFile} fileProps={fileProps} />
188+
<FileFind
189+
handleDrop={handleDrop}
190+
handleDragOver={dragOver}
191+
handleChangeFile={handleChangeFile}
192+
fileProps={fileProps}
193+
/>
172194
<UpLoadButton type={'button'} value={'업로드'} onClick={UpLoad} />
173195
</>
174196
) : (

src/utils/getDate.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export const getExpireTime = (date: string) => {
1010
const differenceTime = expireTime.getTime() - today.getTime();
1111
const differenceTimeDay =
1212
differenceTime / (1000 * 60 * 60 * 24) >= 0 ? differenceTime / (1000 * 60 * 60 * 24) : 0;
13-
console.log(differenceTimeDay);
13+
1414
let differenceTimeHour = differenceTime / (1000 * 60 * 60);
1515
while (true) {
1616
differenceTimeHour %= 24;

0 commit comments

Comments
 (0)