fix(campaign): bound operator queue polling
This commit is contained in:
@@ -70,6 +70,34 @@ export function campaignLifecycleTotals(items: CampaignLifecycleTotals[]): Campa
|
||||
}), { pausable: 0, paused: 0, cancellable: 0 });
|
||||
}
|
||||
|
||||
export function operatorDeliveryStateCounts(
|
||||
queue: {queued?: number;},
|
||||
// send.queued intentionally does not contribute: paused queue rows retain that send state.
|
||||
send: {queued?: number;claimed?: number;sending?: number;smtpAccepted?: number;sent?: number;}
|
||||
) {
|
||||
const queued = queue.queued ?? 0;
|
||||
const claimed = send.claimed ?? 0;
|
||||
const sending = send.sending ?? 0;
|
||||
const completed = (send.smtpAccepted ?? 0) + (send.sent ?? 0);
|
||||
return { queued, claimed, sending, completed, queuedOrActive: queued + claimed + sending };
|
||||
}
|
||||
|
||||
export function shouldRefreshOperatorVersionSummary(input: {
|
||||
fullDiscovery: boolean;
|
||||
versionChanged: boolean;
|
||||
selected: boolean;
|
||||
cached: boolean;
|
||||
queuedOrActive: number;
|
||||
needsAttention: number;
|
||||
}): boolean {
|
||||
return input.fullDiscovery
|
||||
|| input.versionChanged
|
||||
|| !input.cached
|
||||
|| input.selected
|
||||
|| input.queuedOrActive > 0
|
||||
|| input.needsAttention > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the reason each fixed queue action is unavailable. A null result means
|
||||
* the action is permitted and meaningful for the current queue projection.
|
||||
|
||||
Reference in New Issue
Block a user