import { ActionBlockerHint, GuidedReviewList, i18nMessage, type ActionBlockerReason } from "@govoplan/core-webui"; import type { BuildReviewProgress } from "./reviewProgress"; type InterventionHintProps = { tone: "warning" | "danger"; summary: string; requiredAction: string; destination: string; documentationTopicId: string; }; function InterventionHint({ tone, summary, requiredAction, destination, documentationTopicId }: InterventionHintProps) { const requiredActionLabel = i18nMessage("i18n:govoplan-campaign.required_action.f2429497"); const actorLabel = i18nMessage("i18n:govoplan-campaign.who_can_resolve_this.e60939b2"); const destinationLabel = i18nMessage("i18n:govoplan-campaign.where_to_go.bb1c6969"); const actor = i18nMessage("i18n:govoplan-campaign.campaign_editor_or_reviewer.7869b106"); const reason: ActionBlockerReason = { summary, requiredAction, actor, target: destination }; return ( ); } export function ValidationWorkflowGuidance({ errors, warnings, stale, reviewSatisfied = false }: { errors: number; warnings: number; stale: boolean; reviewSatisfied?: boolean; }) { return (
{errors > 0 && ( )} {stale && ( )} {warnings > 0 && !reviewSatisfied && ( )}
); } export function BuiltMessageReviewProgress({ progress }: { progress: BuildReviewProgress }) { const blockerDetail = progress.blocking > 0 ? i18nMessage("i18n:govoplan-campaign.must_be_corrected_before_delivery.b8e6a54b") : i18nMessage("i18n:govoplan-campaign.no_critical_built_message_blockers_remain.97b3c64f"); const individualDetail = progress.individualRemaining > 0 ? i18nMessage("i18n:govoplan-campaign.requires_an_individual_decision.44cd81c9") : i18nMessage("i18n:govoplan-campaign.all_required_review_decisions_are_complete.503919dc"); const groupDetail = progress.groupRemaining > 0 ? i18nMessage("i18n:govoplan-campaign.may_be_accepted_together_after_critical_review_is_comple.8753522f") : progress.groupRequired > 0 ? i18nMessage("i18n:govoplan-campaign.already_acknowledged_in_the_completed_review.76a263f6") : i18nMessage("i18n:govoplan-campaign.all_required_review_decisions_are_complete.503919dc"); return ( 0 ? "danger" : "success" }, { label: i18nMessage("i18n:govoplan-campaign.individual_review.402783bf"), value: `${progress.individualReviewed} / ${progress.individualRequired}`, detail: individualDetail, tone: progress.individualRemaining > 0 ? "warning" : "success" }, { label: i18nMessage("i18n:govoplan-campaign.group_review.a809a9d9"), value: `${progress.groupReviewed} / ${progress.groupRequired}`, detail: groupDetail, tone: progress.groupRemaining > 0 ? "warning" : "success" } ]} /> ); } export function BuiltMessageWorkflowGuidance({ progress }: { progress: BuildReviewProgress; }) { // Frozen job review requirements are authoritative. Aggregate build warnings // also contain expected policy outcomes and already acknowledged conditions. return (
{progress.blocking > 0 && ( )} {progress.remaining > 0 && ( )}
); }