fix(campaigns): complete ACTION_LABELS map and timeline cache invalidation
Adds the 4 backend-logged campaign actions missing from ACTION_LABELS (delete_campaign, generate_campaign, schedule_campaign, recurring_campaign_run), and wires campaign-timeline invalidation into the remaining audit-logging mutations on the page (complete, schedule, approve/reject modification request) so the timeline panel updates live instead of only on next reload, consistent with submit/approve/ reject campaign.
This commit is contained in:
@@ -140,6 +140,7 @@ export default function CampaignDetailPage() {
|
||||
mutationFn: () => completeCampaign(campaignId!),
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries({ queryKey: ["campaign", campaignId] });
|
||||
queryClient.invalidateQueries({ queryKey: ["campaign-timeline", campaignId] });
|
||||
showToast("Campaign completed", "success");
|
||||
},
|
||||
onError: (err: Error) => showToast(err.message, "error"),
|
||||
@@ -159,6 +160,7 @@ export default function CampaignDetailPage() {
|
||||
scheduleCampaign(campaignId!, payload),
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries({ queryKey: ["campaign", campaignId] });
|
||||
queryClient.invalidateQueries({ queryKey: ["campaign-timeline", campaignId] });
|
||||
showToast("Schedule updated", "success");
|
||||
},
|
||||
onError: (err: Error) => showToast(err.message, "error"),
|
||||
@@ -199,6 +201,7 @@ export default function CampaignDetailPage() {
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries({ queryKey: ["campaign", campaignId] });
|
||||
queryClient.invalidateQueries({ queryKey: ["campaign-modification-requests", campaignId] });
|
||||
queryClient.invalidateQueries({ queryKey: ["campaign-timeline", campaignId] });
|
||||
showToast("Modification approved and applied", "success");
|
||||
},
|
||||
onError: (err: Error) => showToast(err.message, "error"),
|
||||
@@ -209,6 +212,7 @@ export default function CampaignDetailPage() {
|
||||
rejectModificationRequest(requestId, notes),
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries({ queryKey: ["campaign-modification-requests", campaignId] });
|
||||
queryClient.invalidateQueries({ queryKey: ["campaign-timeline", campaignId] });
|
||||
showToast("Modification rejected", "success");
|
||||
},
|
||||
onError: (err: Error) => showToast(err.message, "error"),
|
||||
|
||||
Reference in New Issue
Block a user