teqo/src/lib/wizardLeadershipContract.ts
Cursor Agent d5697bcfcb
B110 — wizard return path via allowlisted from query
Propagate return path from quick actions through the B98 wizard chain so
dismiss, skip, and chain end navigate back to the originating page instead
of always redirecting to Início.

Co-authored-by: Francisco Solla <fsolla@users.noreply.github.com>
2026-08-01 20:39:24 +00:00

42 lines
1.3 KiB
TypeScript

import type { CampaignWizardActionId } from '@/lib/campaignActionRoutes'
import { WIZARD_CHAIN_SKIP_LABEL } from '@/lib/campaignWizardCopy'
import type { SupportStatus } from '@/lib/schemas/leadership'
import { resolveWizardChainEntry, wizardChainContinueHref } from '@/lib/wizardActionChain'
/** Client-safe tile payload for the B70 leadership wizard grid. */
export type WizardLeadershipTileViewModel = {
id: number
name: string
phone: string | null
email: string | null
supportStatus: SupportStatus | null
exclusive: boolean
notes: string | null
}
export type WizardLeadershipSkipAction = {
label: string
href: string
}
export const showLeadershipWizardSkip = (entryAction?: CampaignWizardActionId): boolean => {
const effectiveEntry = entryAction ?? 'update-leadership'
return effectiveEntry !== 'update-leadership'
}
export const resolveWizardLeadershipSkip = (
entryAction: CampaignWizardActionId | undefined,
municipalitySlug: string,
returnPath?: string,
): WizardLeadershipSkipAction | undefined =>
showLeadershipWizardSkip(entryAction)
? {
label: WIZARD_CHAIN_SKIP_LABEL,
href: wizardChainContinueHref(
resolveWizardChainEntry(entryAction, 'update-leadership'),
'update-leadership',
municipalitySlug,
returnPath,
),
}
: undefined