Skip to content

Commit f442abb

Browse files
committed
fixed bugs
1 parent 05d221b commit f442abb

3 files changed

Lines changed: 24 additions & 37 deletions

File tree

frontend/src/components/Main.jsx

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,14 @@ import { useRetry } from "../hooks/UseRetry";
88
import { useSessionContext } from "../contexts/SessionContext";
99
import FileList from "./FileList";
1010
const Main = () => {
11-
const { files, expiry, setExpiry, updateState, findFailedFiles } = useFile();
11+
const {
12+
files,
13+
expiry,
14+
setExpiry,
15+
updateState,
16+
findFailedFiles,
17+
failedFiles,
18+
} = useFile();
1219
const { sendRequest, uploadAllFiles, requestState, uploadState } =
1320
useUpload();
1421
const { retryRequest, isConnecting } = useRetry();
@@ -64,12 +71,12 @@ const Main = () => {
6471
<div className="flex justify-between mt-2">
6572
<ExpiresIn value={expiry} onChange={setExpiry} />
6673
<div>
67-
{sessionInfo.newRequest && findFailedFiles().length > 0 && (
74+
{sessionInfo.newRequest && failedFiles.length > 0 && (
6875
<button
6976
type="button"
7077
className="py-2 px-6 bg-neutral-900 text-xs sm:text-sm text-white rounded-md overflow-hidden hover:bg-white hover:text-black
7178
transition-all duration-300"
72-
onClick={() => retry(findFailedFiles())}
79+
onClick={() => retry(failedFiles)}
7380
disabled={isConnecting || uploadState.uploading}
7481
>
7582
{isConnecting ? (

frontend/src/components/NewRequest.jsx

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,21 @@
11
import { useFile } from "../contexts/FileContext";
22
import { useKey } from "../contexts/KeyContext";
33
import KeyHolder from "./KeyHolder";
4-
import { useEffect, useState } from "react";
4+
import { useEffect } from "react";
55
import { useSessionContext } from "../contexts/SessionContext";
6-
import { PulseLoader } from "react-spinners";
76

87
const NewRequest = () => {
9-
const { clearFiles, updateState, filesRef, fileVersion, findFailedFiles } =
10-
useFile();
8+
const { clearFiles, updateState, files, failedFiles } = useFile();
119
const { key, removeKey } = useKey();
12-
const [failedFile, setFailedFiles] = useState([]);
1310
const { setSessionInfo } = useSessionContext();
1411

1512
useEffect(() => {
16-
for (const file of filesRef.current) {
17-
if (
18-
file.state.status !== "success" &&
19-
file.state.status !== "uploading"
20-
) {
13+
files.forEach((file) => {
14+
if (!["success", "uploading"].includes(file.state.status)) {
2115
updateState({ status: "error" }, file.fileInfo.id);
2216
}
23-
}
24-
}, []);
25-
26-
useEffect(() => {
27-
setTimeout(() => {
28-
setFailedFiles(findFailedFiles(), 0);
2917
});
30-
}, [fileVersion]);
18+
}, []);
3119

3220
const handleNewRequest = () => {
3321
sessionStorage.removeItem("page");
@@ -39,14 +27,16 @@ const NewRequest = () => {
3927
newRequest: false,
4028
}));
4129
};
30+
31+
const successCount = files.length - failedFiles.length;
32+
4233
return (
43-
<div className="relative flex flex-col items-center justify-center space-y-4">
34+
<div className="relative flex flex-col items-center justify-center space-y-4">
4435
<p className="text-green-400 text-sm sm:text-lg font-semibold">
45-
Uploaded files {filesRef.current.length - failedFile.length}/
46-
{filesRef.current.length}!
36+
Uploaded files {successCount}/{files.length}!
4737
</p>
4838

49-
{key && filesRef.current.length - failedFile.length > 0 && <KeyHolder />}
39+
{key && successCount > 0 && <KeyHolder />}
5040

5141
<button
5242
onClick={handleNewRequest}

frontend/src/contexts/FileContext.jsx

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ export const FileProvider = ({ children }) => {
1616
} = useIndexedDb();
1717
const abortController = useRef(null);
1818
const filesRef = useRef(files);
19-
const [fileVersion, setFileVersion] = useState(0);
2019
useEffect(() => {
2120
filesRef.current = files;
2221
}, [files]);
@@ -69,7 +68,6 @@ export const FileProvider = ({ children }) => {
6968
const updatedFile = prev.map((file) => {
7069
if (file.fileInfo.id === id) {
7170
found = true;
72-
setFileVersion((v) => v + 1);
7371
return {
7472
...file,
7573
state: { ...file.state, ...update },
@@ -85,15 +83,8 @@ export const FileProvider = ({ children }) => {
8583
return updatedFile;
8684
});
8785
};
88-
const findFailedFiles = () => {
89-
const f = [];
90-
for (const file of filesRef.current) {
91-
if (file.state.status !== "success") {
92-
f.push(file);
93-
}
94-
}
95-
return f;
96-
};
86+
87+
const failedFiles = files.filter((f) => f.state.status !== "success");
9788

9889
return (
9990
<FileContext.Provider
@@ -107,8 +98,7 @@ export const FileProvider = ({ children }) => {
10798
expiry,
10899
filesRef,
109100
abortController,
110-
fileVersion,
111-
findFailedFiles,
101+
failedFiles,
112102
}}
113103
>
114104
{children}

0 commit comments

Comments
 (0)