Fase 2 do plano aprovado. Três módulos em src/utilities/contacts/:
- contactListUrl: contrato de params (q|gender|state|city|ausencia|vinculo|sort|dir|page),
canonicalize, hrefs de sort e where de fonte com 'phones.value' like (ILIKE verificado
no Postgres local).
- contactListData: loader com UM find em contact (user threadado, overrideAccess false),
vínculos (liderancas/dobradinhas/assessores/equipe) como facets sobre o conjunto
legível, filtro/sort/paginação em memória, nulos no fim (precedente B15).
- contactNameInvariant: lock contact-name:{normalized} + prefilter ILIKE + veredito
exato em memória; mensagem de conflito pt-BR.
38 testes unit novos; format + tsc limpos.
23 lines
957 B
TypeScript
23 lines
957 B
TypeScript
/** Client-safe `/campanha` route paths shared by nav, gates, and home actions. */
|
|
export const CAMPAIGN_HOME = '/campanha' as const
|
|
|
|
export const CAMPAIGN_TERRITORIES_HOME = '/campanha/territorios' as const
|
|
|
|
export const CAMPAIGN_DEMANDS_HOME = '/campanha/demandas' as const
|
|
|
|
export const CAMPAIGN_ADVISORS_HOME = '/campanha/assessores' as const
|
|
|
|
export const CAMPAIGN_SUPPORTERS_HOME = '/campanha/apoiadores' as const
|
|
|
|
export const CAMPAIGN_AGENDA_HOME = '/campanha/agenda' as const
|
|
|
|
/** Staff page for the `Contact` ficha (C139). */
|
|
export const CAMPAIGN_CONTACTS_HOME = '/campanha/contatos' as const
|
|
|
|
/** Leader's own supporter contact tool (B43) — moved here by C139 so staff
|
|
* and leader no longer share the `/campanha/contatos` route. */
|
|
export const LEADER_CONTACTS_HOME = '/campanha/meus-contatos' as const
|
|
|
|
export const CAMPAIGN_PROFILE_HOME = '/campanha/perfil' as const
|
|
|
|
export const CAMPAIGN_UPDATES_HREF = '/campanha/atualizacoes' as const
|