From 70aeb7a48342df9dafa2c49fd8d7ebc34245d591 Mon Sep 17 00:00:00 2001
From: HFO4 <912394456@qq.com>
Date: Wed, 13 Apr 2022 18:32:49 +0800
Subject: [PATCH] feat: set uploading task concurrent limit
---
src/component/Modals/ConcurrentOption.js | 62 ++++++++++++++++++
src/component/Uploader/Popup/MoreActions.js | 70 +++++++++++++++------
src/component/Uploader/Popup/TaskList.js | 3 -
src/component/Uploader/Uploader.js | 5 +-
src/component/Uploader/core/index.ts | 4 ++
src/component/Uploader/core/utils/pool.ts | 2 +-
6 files changed, 121 insertions(+), 25 deletions(-)
create mode 100644 src/component/Modals/ConcurrentOption.js
diff --git a/src/component/Modals/ConcurrentOption.js b/src/component/Modals/ConcurrentOption.js
new file mode 100644
index 0000000..a3bf0cd
--- /dev/null
+++ b/src/component/Modals/ConcurrentOption.js
@@ -0,0 +1,62 @@
+import React, { useState } from "react";
+import { Input, InputLabel, makeStyles } from "@material-ui/core";
+import {
+ Button,
+ Dialog,
+ DialogActions,
+ DialogContent,
+ DialogTitle,
+} from "@material-ui/core";
+import FormControl from "@material-ui/core/FormControl";
+import Auth from "../../middleware/Auth";
+const useStyles = makeStyles((theme) => ({}));
+
+export default function ConcurrentOptionDialog({ open, onClose, onSave }) {
+ const [count, setCount] = useState(
+ Auth.GetPreferenceWithDefault("concurrent_limit", "5")
+ );
+ const classes = useStyles();
+
+ return (
+
+ );
+}
diff --git a/src/component/Uploader/Popup/MoreActions.js b/src/component/Uploader/Popup/MoreActions.js
index d9edce4..caf9292 100644
--- a/src/component/Uploader/Popup/MoreActions.js
+++ b/src/component/Uploader/Popup/MoreActions.js
@@ -6,7 +6,7 @@ import {
MenuItem,
Tooltip,
} from "@material-ui/core";
-import React, { useCallback, useMemo } from "react";
+import React, { useCallback, useMemo, useState } from "react";
import { useDispatch } from "react-redux";
import API from "../../../middleware/Api";
import { TaskType } from "../core/types";
@@ -15,6 +15,9 @@ import Divider from "@material-ui/core/Divider";
import CheckIcon from "@material-ui/icons/Check";
import { DeleteEmpty } from "mdi-material-ui";
import DeleteIcon from "@material-ui/icons/Delete";
+import ConcurrentOptionDialog from "../../Modals/ConcurrentOption";
+import Auth from "../../../middleware/Auth";
+import { ClearAll } from "@material-ui/icons";
const useStyles = makeStyles((theme) => ({
icon: {
@@ -37,6 +40,7 @@ export default function MoreActions({
}) {
const classes = useStyles();
const dispatch = useDispatch();
+ const [concurrentDialog, setConcurrentDialog] = useState(false);
const ToggleSnackbar = useCallback(
(vertical, horizontal, msg, color) =>
dispatch(toggleSnackbar(vertical, horizontal, msg, color)),
@@ -126,6 +130,13 @@ export default function MoreActions({
onClick: () => cleanFinished(),
icon: