Fix dispute
This commit is contained in:
@@ -2,7 +2,7 @@ import { useState, useEffect, useCallback, useRef, useImperativeHandle, forwardR
|
||||
import { useNavigate } from 'react-router-dom'
|
||||
import { feedApi } from '@/api'
|
||||
import type { Activity, ActivityType } from '@/types'
|
||||
import { Loader2, ChevronDown, Bell, ExternalLink } from 'lucide-react'
|
||||
import { Loader2, ChevronDown, Bell, ExternalLink, AlertTriangle } from 'lucide-react'
|
||||
import {
|
||||
formatRelativeTime,
|
||||
getActivityIcon,
|
||||
@@ -177,9 +177,13 @@ function ActivityItem({ activity }: ActivityItemProps) {
|
||||
const isEvent = isEventActivity(activity.type)
|
||||
const { title, details, extra } = formatActivityMessage(activity)
|
||||
|
||||
// Get assignment_id for complete activities
|
||||
const assignmentId = activity.type === 'complete' && activity.data
|
||||
? (activity.data as { assignment_id?: number }).assignment_id
|
||||
// Get assignment_id and dispute status for complete activities
|
||||
const activityData = activity.data as { assignment_id?: number; dispute_status?: string } | null
|
||||
const assignmentId = activity.type === 'complete' && activityData?.assignment_id
|
||||
? activityData.assignment_id
|
||||
: null
|
||||
const disputeStatus = activity.type === 'complete' && activityData?.dispute_status
|
||||
? activityData.dispute_status
|
||||
: null
|
||||
|
||||
if (isEvent) {
|
||||
@@ -247,15 +251,29 @@ function ActivityItem({ activity }: ActivityItemProps) {
|
||||
{extra}
|
||||
</div>
|
||||
)}
|
||||
{/* Details button for complete activities */}
|
||||
{/* Details button and dispute indicator for complete activities */}
|
||||
{assignmentId && (
|
||||
<button
|
||||
onClick={() => navigate(`/assignments/${assignmentId}`)}
|
||||
className="mt-2 text-xs text-primary-400 hover:text-primary-300 flex items-center gap-1"
|
||||
>
|
||||
<ExternalLink className="w-3 h-3" />
|
||||
Детали
|
||||
</button>
|
||||
<div className="flex items-center gap-3 mt-2">
|
||||
<button
|
||||
onClick={() => navigate(`/assignments/${assignmentId}`)}
|
||||
className="text-xs text-primary-400 hover:text-primary-300 flex items-center gap-1"
|
||||
>
|
||||
<ExternalLink className="w-3 h-3" />
|
||||
Детали
|
||||
</button>
|
||||
{disputeStatus === 'open' && (
|
||||
<span className="text-xs text-orange-400 flex items-center gap-1">
|
||||
<AlertTriangle className="w-3 h-3" />
|
||||
Оспаривается
|
||||
</span>
|
||||
)}
|
||||
{disputeStatus === 'valid' && (
|
||||
<span className="text-xs text-red-400 flex items-center gap-1">
|
||||
<AlertTriangle className="w-3 h-3" />
|
||||
Отклонено
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user