teqo/src/components
Francisco Solla 5ad2f7c722 fix(campanha): quick-edit sheet mobile com footer custom quebrava ao abrir (C109)
O footer custom ('Registrar atualização' B42, 'Registrar movimento' E14) era
portalado da célula para o DrawerFooter do shared-sheet: createPortal preserva
o contexto React da origem (sem Drawer.Root), então o DrawerCloseButton
(base-ui DialogClose) crashava em useDialogRootContext() e o sheet nunca
renderizava.

O footer agora viaja no chrome do CampaignListSheetHost (mesmo mecanismo de
title/description) e é renderizado inline no DrawerFooter — contexto correto
por construção. O elemento continua criado na célula (estado do form e
associação form attribute preservados). footerPortalRef/attachFooterPortal/
hasCustomFooter removidos; fallback sem provider e popover intactos.

Cobertura: unit do shared path (abre/fecha/reabre + submit via form attribute)
e e2e mobile no describe B42 (abre, registra, fecha — incluindo o sheet do
nível E14).
2026-08-10 08:11:05 -03:00
..
campaign fix(campanha): quick-edit sheet mobile com footer custom quebrava ao abrir (C109) 2026-08-10 08:11:05 -03:00
ui feat(C97): seletor shadcn de dia+horário 24h no popover de criação rápida da agenda 2026-08-09 15:13:15 -03:00
CitySelect.tsx Replace state/city selects with type-to-filter comboboxes 2026-07-15 14:41:58 -03:00
EmailInput.tsx Improve Inputs 2026-03-20 12:36:16 -03:00
Footer.tsx style: Prettier (O0+ #34) 2026-08-01 06:04:44 +00:00
FormattedInput.tsx Ship /campanha nuclei MVP with RBAC, invites, and vote estimates. 2026-07-18 15:01:56 -03:00
FormCombobox.tsx Replace state/city selects with type-to-filter comboboxes 2026-07-15 14:41:58 -03:00
FormInput.tsx Ship /campanha nuclei MVP with RBAC, invites, and vote estimates. 2026-07-18 15:01:56 -03:00
MetaPixel.tsx Add the tooling gate: knip, CI, zero-warning lint, as-never ban 2026-07-23 23:06:12 -03:00
NameInput.tsx Improve NameInput 2026-03-20 15:44:11 -03:00
PetitionForm.tsx Engineering Pass 3: consolidate patterns and lock them with guards. 2026-07-29 06:11:29 -03:00
PetitionSuccessDialog.tsx Tooling: prettier como autoridade de formatacao (organize-imports deterministico, scripts format/format:check, normalizacao mecanica de 312 arquivos; artefatos gerados e migrations excluidos via .prettierignore) 2026-07-25 17:22:20 -03:00
PhoneInput.tsx Pass 2 W2: correcoes de fronteira lib/utilities e client boundary 2026-07-25 14:38:41 -03:00
PostalCodeInput.tsx fix zip code input field 2026-05-01 00:22:18 -03:00
PostCard.tsx Tooling: prettier como autoridade de formatacao (organize-imports deterministico, scripts format/format:check, normalizacao mecanica de 312 arquivos; artefatos gerados e migrations excluidos via .prettierignore) 2026-07-25 17:22:20 -03:00
RefreshRouteOnSave.tsx Break up the god modules into deep domain modules 2026-07-23 23:44:45 -03:00
SignatureCounter.tsx Tooling: prettier como autoridade de formatacao (organize-imports deterministico, scripts format/format:check, normalizacao mecanica de 312 arquivos; artefatos gerados e migrations excluidos via .prettierignore) 2026-07-25 17:22:20 -03:00
SiteHeader.tsx Guardas programaticas: fronteira lib/ (no-restricted-imports), ban de consent id hardcoded, codebaseConventions.unit.spec (server-only, copy Praca/Nucleo, listas legadas do eslint, wrappers de formActions), ciclo do payload.config quebrado (documents/globals divididos em tags+reads), timeout global do int suite, personName schema-valido, consent drafts Onda 0 p/ Municipio 2026-07-25 18:02:02 -03:00
socialIcons.tsx Add ThankStep 2026-03-18 23:55:28 -03:00
socialLinks.tsx Guardas programaticas: fronteira lib/ (no-restricted-imports), ban de consent id hardcoded, codebaseConventions.unit.spec (server-only, copy Praca/Nucleo, listas legadas do eslint, wrappers de formActions), ciclo do payload.config quebrado (documents/globals divididos em tags+reads), timeout global do int suite, personName schema-valido, consent drafts Onda 0 p/ Municipio 2026-07-25 18:02:02 -03:00
StateSelect.tsx Replace state/city selects with type-to-filter comboboxes 2026-07-15 14:41:58 -03:00
ThemeProvider.tsx Tooling: prettier como autoridade de formatacao (organize-imports deterministico, scripts format/format:check, normalizacao mecanica de 312 arquivos; artefatos gerados e migrations excluidos via .prettierignore) 2026-07-25 17:22:20 -03:00
WhatsappForm.tsx Tooling: prettier como autoridade de formatacao (organize-imports deterministico, scripts format/format:check, normalizacao mecanica de 312 arquivos; artefatos gerados e migrations excluidos via .prettierignore) 2026-07-25 17:22:20 -03:00