Skip to content

Commit bd46349

Browse files
committed
refresh UI per broadcast
1 parent 4a6aabb commit bd46349

2 files changed

Lines changed: 20 additions & 14 deletions

File tree

TODO.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
# TODO
22

3-
- permissions on workspaces
4-
53
## Content
64

75
- page vs loops.so
@@ -11,6 +9,7 @@
119

1210
## Eventual features
1311

12+
- permissions with roles per workspace
1413
- better design for system email
1514
- store last cron timestamp in DB and render an alert if it's not running (only in production)
1615
- add contact_list reason string

console/src/pages/BroadcastsPage.tsx

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)