feat: add governed postbox delivery and report hardening
This commit is contained in:
@@ -32,7 +32,11 @@ export default function CampaignListPage({ settings }: {settings: ApiSettings;})
|
||||
let response: CampaignDeltaResponse;
|
||||
do {
|
||||
response = await listCampaignsDelta(settings, { since: nextWatermark });
|
||||
nextCampaigns = mergeCampaignDelta(nextCampaigns, response);
|
||||
nextCampaigns = mergeCampaignDelta(
|
||||
nextCampaigns,
|
||||
response,
|
||||
Boolean(response.full && nextWatermark?.startsWith("full:campaigns:"))
|
||||
);
|
||||
nextWatermark = response.watermark ?? null;
|
||||
} while (response.has_more);
|
||||
setCampaigns(nextCampaigns);
|
||||
@@ -199,8 +203,12 @@ function formatLoadedAt(value: Date): string {
|
||||
return formatDateTimeFromDate(value, { second: "2-digit" });
|
||||
}
|
||||
|
||||
function mergeCampaignDelta(current: CampaignListItem[], response: CampaignDeltaResponse): CampaignListItem[] {
|
||||
if (response.full) return response.campaigns;
|
||||
function mergeCampaignDelta(
|
||||
current: CampaignListItem[],
|
||||
response: CampaignDeltaResponse,
|
||||
continuingFullSnapshot = false
|
||||
): CampaignListItem[] {
|
||||
if (response.full && !continuingFullSnapshot) return response.campaigns;
|
||||
return mergeDeltaRows(current, response.campaigns, response.deleted, (campaign) => campaign.id, {
|
||||
deletedResourceType: "campaign",
|
||||
sort: sortCampaignsByUpdatedDesc
|
||||
|
||||
Reference in New Issue
Block a user