diff --git a/components/ProgressBar.tsx b/components/ProgressBar.tsx new file mode 100644 index 00000000..2cca046e --- /dev/null +++ b/components/ProgressBar.tsx @@ -0,0 +1,38 @@ +import React from "react"; + +// 定义props的类型 +interface ProgressDisplayProps { + generatedPaperNumber: number; + i: number; +} + +// 使用接口为函数组件的props提供类型注解 +const ProgressDisplay: React.FC = ({ + generatedPaperNumber, + i, +}) => { + // 计算完成的百分比 + const percentage = ((i / generatedPaperNumber) * 100).toFixed(2); + + return ( +
+ {/* 可以添加一个进度条来直观显示进度 */} +
+
+
+ {/* 文字放置在进度条内部 */} +
+

+ {i} / {generatedPaperNumber}task {percentage}% Complete +

+
+
+ ); +}; + +export default ProgressDisplay; diff --git a/components/QuillEditor.tsx b/components/QuillEditor.tsx index 2a5e9419..eb8ca77d 100644 --- a/components/QuillEditor.tsx +++ b/components/QuillEditor.tsx @@ -22,6 +22,7 @@ import { //组件 import ExportDocx from "./Export"; import ReferenceList from "./ReferenceList"; +import ProgressDisplay from "./ProgressBar"; //redux import { useAppDispatch, useAppSelector } from "@/app/store"; import { @@ -105,6 +106,8 @@ const QEditor = ({ lng }) => { "生成次数", 1 ); // 初始值设为1 + const [generateNumber, setGenerateNumber] = useState(0); //当前任务的进行数 + const [openProgressBar, setOpenProgressBar] = useState(false); //redux const dispatch = useAppDispatch(); @@ -267,6 +270,7 @@ const QEditor = ({ lng }) => { quill!.setSelection(cursorPosition!, 0); // 将光标移动到原来的位置 let offset = -1; if (generatedPaperNumber) offset = 0; + setOpenProgressBar(true); for (let i = 0; i < generatedPaperNumber!; i++) { try { if (!topic) { @@ -385,12 +389,15 @@ const QEditor = ({ lng }) => { } //修改offset使得按照接下来的顺序进行获取文献 offset += 2; + setGenerateNumber(i + 1); } catch (error) { // console.error("Error fetching data:", error); // 在处理错误后,再次抛出这个错误 throw new Error(`Paper2AI出现错误: ${error}`); } } + setOpenProgressBar(false); + setGenerateNumber(0); //总的已经生成的数量 } return ( @@ -449,10 +456,16 @@ const QEditor = ({ lng }) => { {t("更新索引")} + {openProgressBar ? ( + + ) : null}
- +
); diff --git a/components/SignInGitHub.tsx b/components/SignInGitHub.tsx index 5a09d147..8ba66b47 100644 --- a/components/SignInGitHub.tsx +++ b/components/SignInGitHub.tsx @@ -7,6 +7,10 @@ export function SignInGitHub() { const { data, error } = await supabase.auth.signInWithOAuth({ provider: "github", }); + if (error) { + console.error("GitHub authentication failed:", error.message); + return; // 如果出现错误,不再继续执行 + } //profiles表 插入用户信息 await insertUserProfile(data, supabase); };