Registra catálogo B84 no registry B79: Nova atividade e Planejar giro na lista; wizards A1–A5 com ?municipio= no detalhe quando há município, mais atalhos Editar/Tarefas/Atualizações. Context bridge no detalhe; drawer omitido em /atividades/giros (compositor E13 já tem CTAs). Co-authored-by: Francisco Solla <fsolla@users.noreply.github.com>
27 lines
1.4 KiB
TypeScript
27 lines
1.4 KiB
TypeScript
import { CAMPAIGN_ACTIONS_HOME } from '@/lib/campaignActionRoutes'
|
|
import { isActivityTourComposerPath } from '@/lib/campaignQuickActionPaths'
|
|
import { CAMPAIGN_HOME, LEADER_CONTACTS_HOME } from '@/lib/campaignPaths'
|
|
import { isStaffCampaignRole, type CampaignRole } from '@/lib/campaignRoles'
|
|
|
|
/** Início matches only exactly — same rule as sidebar nav. */
|
|
export const isCampaignHomePath = (pathname: string): boolean =>
|
|
pathname === CAMPAIGN_HOME || pathname === `${CAMPAIGN_HOME}/`
|
|
|
|
export const isCampaignActionsPath = (pathname: string): boolean =>
|
|
pathname === CAMPAIGN_ACTIONS_HOME || pathname.startsWith(`${CAMPAIGN_ACTIONS_HOME}/`)
|
|
|
|
export const isLeaderContactsPath = (pathname: string): boolean =>
|
|
pathname === LEADER_CONTACTS_HOME || pathname.startsWith(`${LEADER_CONTACTS_HOME}/`)
|
|
|
|
/**
|
|
* Whether the mobile quick-actions drawer should mount on this navigation.
|
|
* Desktop (`md+`) is gated in the host via `useIsMobile`.
|
|
*/
|
|
export const shouldMountQuickActionsDrawer = (pathname: string, role: CampaignRole): boolean => {
|
|
if (isCampaignHomePath(pathname)) return false
|
|
if (isCampaignActionsPath(pathname)) return false
|
|
// B84: E13 compositor already exposes primary CTAs — skip competing drawer chrome.
|
|
if (isActivityTourComposerPath(pathname)) return false
|
|
if (role === 'leader') return isLeaderContactsPath(pathname)
|
|
return isStaffCampaignRole(role)
|
|
}
|