Skip to content

Commit

Permalink
feat: 增加了一个显示当前任务进度的进度条
Browse files Browse the repository at this point in the history
  • Loading branch information
14790897 committed Feb 18, 2024
1 parent e5ee52a commit c55a93c
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 1 deletion.
38 changes: 38 additions & 0 deletions components/ProgressBar.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import React from "react";

// 定义props的类型
interface ProgressDisplayProps {
generatedPaperNumber: number;
i: number;
}

// 使用接口为函数组件的props提供类型注解
const ProgressDisplay: React.FC<ProgressDisplayProps> = ({
generatedPaperNumber,
i,
}) => {
// 计算完成的百分比
const percentage = ((i / generatedPaperNumber) * 100).toFixed(2);

return (
<div className="relative">
{/* 可以添加一个进度条来直观显示进度 */}
<div className="h-4 bg-gray-200 rounded-full">
<div
className={`h-full rounded-full ${
Number(percentage) < 100 ? "bg-yellow-500" : "bg-green-500"
}`}
style={{ width: `${percentage}%` }}
></div>
</div>
{/* 文字放置在进度条内部 */}
<div className="absolute inset-0 flex items-center justify-center text-xs text-white pointer-events-none">
<p>
{i} / {generatedPaperNumber}task {percentage}% Complete
</p>
</div>
</div>
);
};

export default ProgressDisplay;
15 changes: 14 additions & 1 deletion components/QuillEditor.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -105,6 +106,8 @@ const QEditor = ({ lng }) => {
"生成次数",
1
); // 初始值设为1
const [generateNumber, setGenerateNumber] = useState(0); //当前任务的进行数
const [openProgressBar, setOpenProgressBar] = useState(false);

//redux
const dispatch = useAppDispatch();
Expand Down Expand Up @@ -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) {
Expand Down Expand Up @@ -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 (
Expand Down Expand Up @@ -449,10 +456,16 @@ const QEditor = ({ lng }) => {
{t("更新索引")}
</button>
</div>
{openProgressBar ? (
<ProgressDisplay
generatedPaperNumber={generatedPaperNumber!}
i={generateNumber}
/>
) : null}
<div>
<div id="editor"></div>
<ReferenceList editor={quill} lng={lng} />
<ExportDocx editor={quill} lng={lng} />
<ExportDocx editor={quill} />
</div>
</div>
);
Expand Down
4 changes: 4 additions & 0 deletions components/SignInGitHub.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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);
};
Expand Down

0 comments on commit c55a93c

Please sign in to comment.