77 type PaperReportListResponse ,
88 startPaperReadingWorkflow ,
99} from "@/lib/paperReport" ;
10- import { getWorkflowStatus , type WorkflowStatusResponse } from "@/lib/workflow" ;
1110
1211function validateArxivInput ( value : string ) : string | null {
1312 const trimmed = value . trim ( ) ;
@@ -30,9 +29,6 @@ export default function PaperReportPage() {
3029 const [ submitting , setSubmitting ] = useState ( false ) ;
3130 const [ error , setError ] = useState < string | null > ( null ) ;
3231 const [ history , setHistory ] = useState < PaperReportListResponse | null > ( null ) ;
33- const [ activeWorkflowId , setActiveWorkflowId ] = useState < number | null > ( null ) ;
34- const [ activeWorkflowStatus , setActiveWorkflowStatus ] =
35- useState < WorkflowStatusResponse | null > ( null ) ;
3632 const [ latestPaperId , setLatestPaperId ] = useState < string | null > ( null ) ;
3733
3834 const inputError = useMemo (
@@ -64,39 +60,10 @@ export default function PaperReportPage() {
6460 }
6561 } , [ page ] ) ;
6662
67- const loadWorkflowStatus = useCallback ( async ( ) => {
68- if ( ! activeWorkflowId ) {
69- setActiveWorkflowStatus ( null ) ;
70- return ;
71- }
72- try {
73- const status = await getWorkflowStatus ( activeWorkflowId ) ;
74- setActiveWorkflowStatus ( status ) ;
75- if ( status . stage === "success" || status . stage === "failed" ) {
76- void loadHistory ( ) ;
77- }
78- } catch {
79- // no-op: status panel should not block the page
80- }
81- } , [ activeWorkflowId , loadHistory ] ) ;
82-
8363 useEffect ( ( ) => {
8464 void loadHistory ( ) ;
8565 } , [ loadHistory ] ) ;
8666
87- useEffect ( ( ) => {
88- if ( ! activeWorkflowId ) {
89- return ;
90- }
91- void loadWorkflowStatus ( ) ;
92- const timer = window . setInterval ( ( ) => {
93- void loadWorkflowStatus ( ) ;
94- } , 2000 ) ;
95- return ( ) => {
96- window . clearInterval ( timer ) ;
97- } ;
98- } , [ activeWorkflowId , loadWorkflowStatus ] ) ;
99-
10067 const handleSubmit = useCallback (
10168 async ( event : React . FormEvent < HTMLFormElement > ) => {
10269 event . preventDefault ( ) ;
@@ -113,9 +80,7 @@ export default function PaperReportPage() {
11380 paperIdOrUrl : paperInput . trim ( ) ,
11481 } ) ;
11582 setLatestPaperId ( response . paperId ) ;
116- setActiveWorkflowId ( response . workflowId ) ;
117- setPaperInput ( "" ) ;
118- void loadHistory ( ) ;
83+ window . location . href = `/workflow?workflowId=${ response . workflowId } ` ;
11984 } catch ( submitError ) {
12085 setError (
12186 submitError instanceof Error
@@ -126,7 +91,7 @@ export default function PaperReportPage() {
12691 setSubmitting ( false ) ;
12792 }
12893 } ,
129- [ loadHistory , paperInput ] ,
94+ [ paperInput ] ,
13095 ) ;
13196
13297 return (
@@ -172,23 +137,6 @@ export default function PaperReportPage() {
172137 { error ? < p className = "mt-3 text-sm text-[#ff9fba]" > { error } </ p > : null }
173138 </ section >
174139
175- { activeWorkflowId ? (
176- < section className = "mt-5 rounded-3xl border border-[#2d3a52] bg-[#101a2c] p-4" >
177- < p className = "text-xs font-semibold tracking-wide text-[#8ba2c7]" >
178- 当前任务
179- </ p >
180- < p className = "mt-1 text-sm text-[#dbe6ff]" >
181- workflowId: { activeWorkflowId } / stage:{ " " }
182- { activeWorkflowStatus ?. stage ?? "running" }
183- </ p >
184- { activeWorkflowStatus ?. error ? (
185- < p className = "mt-2 text-sm text-[#ff9fba]" >
186- { activeWorkflowStatus . error }
187- </ p >
188- ) : null }
189- </ section >
190- ) : null }
191-
192140 < section className = "mt-6 rounded-3xl border border-[#1f2a3d] bg-[#0f1724] p-5 shadow-[0_14px_40px_rgba(0,0,0,0.35)]" >
193141 { loading ? (
194142 < p className = "text-sm text-[#8ba2c7]" > 正在加载报告列表...</ p >
0 commit comments