@@ -10,8 +10,10 @@ import { Badge } from "@/components/ui/badge";
1010import { Select , SelectContent , SelectItem , SelectTrigger , SelectValue } from "@/components/ui/select" ;
1111import { ProtectedRoute } from "@/components/protected-route" ;
1212import { TaskStatusBadge } from "@/components/task-status-badge" ;
13+ import { PRStatusBadge } from "@/components/pr-status-badge" ;
1314import { useAuth } from "@/contexts/auth-context" ;
1415import { ApiService } from "@/lib/api-service" ;
16+ import { SupabaseService } from "@/lib/supabase-service" ;
1517import { Task , Project } from "@/types" ;
1618
1719interface TaskWithProject extends Task {
@@ -44,13 +46,16 @@ export default function TasksPage() {
4446 const interval = setInterval ( async ( ) => {
4547 try {
4648 const updatedTasks = await Promise . all (
47- runningTasks . map ( task => ApiService . getTaskStatus ( user . id , task . id ) )
49+ runningTasks . map ( task => SupabaseService . getTask ( task . id ) )
4850 ) ;
4951
5052 setTasks ( prevTasks =>
5153 prevTasks . map ( task => {
52- const updated = updatedTasks . find ( t => t . id === task . id ) ;
53- return updated ? { ...task , ...updated } : task ;
54+ const updated = updatedTasks . find ( t => t && t . id === task . id ) ;
55+ if ( updated ) {
56+ return { ...task , ...updated } ;
57+ }
58+ return task ;
5459 } )
5560 ) ;
5661 } catch ( error ) {
@@ -67,7 +72,7 @@ export default function TasksPage() {
6772 try {
6873 setLoading ( true ) ;
6974 const [ taskData , projectData ] = await Promise . all ( [
70- ApiService . getTasks ( user . id ) ,
75+ SupabaseService . getTasks ( ) ,
7176 ApiService . getProjects ( user . id )
7277 ] ) ;
7378
@@ -374,6 +379,15 @@ export default function TasksPage() {
374379 < div className = "flex-1 min-w-0" >
375380 < div className = "flex items-center gap-3 mb-3" >
376381 < TaskStatusBadge status = { task . status || '' } />
382+ { task . pr_url && task . pr_number && (
383+ < PRStatusBadge
384+ prUrl = { task . pr_url }
385+ prNumber = { task . pr_number }
386+ prBranch = { task . pr_branch }
387+ variant = "badge"
388+ size = "default"
389+ />
390+ ) }
377391 < span className = "text-sm text-slate-500" >
378392 Task #{ task . id }
379393 </ span >
@@ -432,17 +446,14 @@ export default function TasksPage() {
432446 View
433447 </ Button >
434448 </ Link >
435- { task . pr_url && (
436- < a
437- href = { task . pr_url }
438- target = "_blank"
439- rel = "noopener noreferrer"
440- >
441- < Button variant = "outline" size = "sm" className = "gap-2" >
442- < ExternalLink className = "w-4 h-4" />
443- PR #{ task . pr_number }
444- </ Button >
445- </ a >
449+ { task . pr_url && task . pr_number && (
450+ < PRStatusBadge
451+ prUrl = { task . pr_url }
452+ prNumber = { task . pr_number }
453+ prBranch = { task . pr_branch }
454+ variant = "button"
455+ size = "sm"
456+ />
446457 ) }
447458 </ div >
448459 </ div >
0 commit comments