@@ -320,6 +320,7 @@ interface BroadcastCardProps {
320320 onResume : ( broadcast : Broadcast ) => void
321321 onCancel : ( broadcast : Broadcast ) => void
322322 onSchedule : ( broadcast : Broadcast ) => void
323+ onRefresh : ( broadcast : Broadcast ) => void
323324 currentWorkspace : any
324325 isFirst ?: boolean
325326}
@@ -333,6 +334,7 @@ const BroadcastCard: React.FC<BroadcastCardProps> = ({
333334 onResume,
334335 onCancel,
335336 onSchedule,
337+ onRefresh,
336338 currentWorkspace,
337339 isFirst = false
338340} ) => {
@@ -509,6 +511,15 @@ const BroadcastCard: React.FC<BroadcastCardProps> = ({
509511 }
510512 extra = {
511513 < Space >
514+ < Tooltip title = "Refresh Broadcast" >
515+ < Button
516+ type = "text"
517+ size = "small"
518+ icon = { < FontAwesomeIcon icon = { faRefresh } /> }
519+ onClick = { ( ) => onRefresh ( broadcast ) }
520+ className = "opacity-70 hover:opacity-100"
521+ />
522+ </ Tooltip >
512523 { ( broadcast . status === 'draft' || broadcast . status === 'scheduled' ) && (
513524 < UpsertBroadcastDrawer
514525 workspace = { currentWorkspace ! }
@@ -937,10 +948,14 @@ export function BroadcastsPage() {
937948 setBroadcastToSchedule ( null )
938949 }
939950
940- const handleRefresh = ( ) => {
951+ const handleRefreshBroadcast = ( broadcast : Broadcast ) => {
952+ // Refresh specific broadcast data
953+ queryClient . invalidateQueries ( { queryKey : [ 'broadcast-stats' , workspaceId , broadcast . id ] } )
954+ queryClient . invalidateQueries ( { queryKey : [ 'task' , workspaceId , broadcast . id ] } )
955+ queryClient . invalidateQueries ( { queryKey : [ 'testResults' , workspaceId , broadcast . id ] } )
956+ // Also refresh the main broadcast data to get updated status
941957 queryClient . invalidateQueries ( { queryKey : [ 'broadcasts' , workspaceId ] } )
942- queryClient . invalidateQueries ( { queryKey : [ 'lists' , workspaceId ] } )
943- message . success ( 'Broadcasts refreshed' )
958+ message . success ( `Broadcast "${ broadcast . name } " refreshed` )
944959 }
945960
946961 const hasBroadcasts = ! isLoading && data ?. broadcasts && data . broadcasts . length > 0
@@ -952,15 +967,6 @@ export function BroadcastsPage() {
952967 < div className = "text-2xl font-medium" > Broadcasts</ div >
953968 { currentWorkspace && hasBroadcasts && (
954969 < Space >
955- < Tooltip title = "Refresh" >
956- < Button
957- type = "text"
958- size = "small"
959- icon = { < FontAwesomeIcon icon = { faRefresh } /> }
960- onClick = { handleRefresh }
961- className = "opacity-70 hover:opacity-100"
962- />
963- </ Tooltip >
964970 < UpsertBroadcastDrawer
965971 workspace = { currentWorkspace }
966972 lists = { lists }
@@ -1006,6 +1012,7 @@ export function BroadcastsPage() {
10061012 onResume = { handleResumeBroadcast }
10071013 onCancel = { handleCancelBroadcast }
10081014 onSchedule = { handleScheduleBroadcast }
1015+ onRefresh = { handleRefreshBroadcast }
10091016 currentWorkspace = { currentWorkspace }
10101017 isFirst = { index === 0 }
10111018 />
0 commit comments