teqo-backup/src/components/campaign/shared
Francisco Solla 9a66a23cf6 refactor(campaign): E1 extrai useAsyncSearchOptions (3ª cópia da busca com debounce)
DemandResponsibleMultiSelect (C143), ResponsibleMultiSelect (C90) e
AsyncSearchCombobox trocam o efeito duplicado (requestId/setTimeout 250ms/
loading/failed) pelo hook compartilhado src/hooks/useAsyncSearchOptions.ts,
com isQueryReady opcional preservando a semântica de query vazia de cada
consumidor. Comportamento preservado; unit novo do hook (renderHook +
fake timers); sem schema/server/migration.
2026-08-23 13:16:47 -03:00
..
AsyncSearchCombobox.tsx refactor(campaign): E1 extrai useAsyncSearchOptions (3ª cópia da busca com debounce) 2026-08-23 13:16:47 -03:00
CampaignCellEditOverlay.tsx refactor(B193): simplify fixes pós-revisão — mapper único de updates, API de trigger uniforme, grupos de relação extraídos, hardening do sheet host 2026-08-10 11:23:49 -03:00
CampaignCellTooltip.tsx E10 /simplify: remove superficie morta, unifica o parser de enum repetivel e reusa o ranking A11 2026-07-25 22:33:16 -03:00
CampaignColumnPicker.tsx B137 — simplify pass: dedupe picker type, derive territory columns 2026-08-03 00:06:16 +00:00
CampaignColumnPickerTrailing.tsx B137 — Colunas ao lado da omnibox e fim do Ordenado por residual 2026-08-03 00:06:15 +00:00
CampaignCopyableCell.tsx Fix /campanha/liderancas 500: RSC-safe phone display 2026-07-26 20:16:01 -03:00
CampaignFormActionMessage.tsx Engineering Pass 3: consolidate patterns and lock them with guards. 2026-07-29 06:11:29 -03:00
CampaignHeaderFilterPopover.tsx Polish selected-first filter shells after simplify. 2026-07-28 18:37:05 -03:00
CampaignHoverTooltip.tsx feat(campaign): Tendência migra para Ações ao colapsar a coluna (B172) 2026-08-09 13:36:04 -03:00
CampaignInfoHint.tsx Pass 2 W2: components/campaign em subpastas por dominio 2026-07-25 14:52:17 -03:00
CampaignInlineEditableCell.tsx feat(campaign): C142 UI respects advisor permission profile somente_leitura 2026-08-21 23:01:35 -03:00
CampaignListEmptyState.tsx Pass 2 W2: components/campaign em subpastas por dominio 2026-07-25 14:52:17 -03:00
CampaignListFooter.tsx Pass 2 W2: components/campaign em subpastas por dominio 2026-07-25 14:52:17 -03:00
CampaignListOmnibox.tsx feat(B200): encaixes dos cards mobile de municípios — densidade, alinhamento de labels e pilha de avatares (pós-B196) 2026-08-12 15:40:02 -03:00
CampaignListPagination.tsx Pass 2 W4b: zero exports mortos; knip exports/types/enumMembers em ERROR no CI 2026-07-25 15:51:52 -03:00
CampaignListPending.tsx B78 — Indicar carregamento na navegação do wizard 2026-07-31 00:24:39 +00:00
CampaignListSheetHost.tsx refactor(B193): simplify fixes pós-revisão — mapper único de updates, API de trigger uniforme, grupos de relação extraídos, hardening do sheet host 2026-08-10 11:23:49 -03:00
CampaignMetricStrip.tsx Pass 2 W2: components/campaign em subpastas por dominio 2026-07-25 14:52:17 -03:00
CampaignNameSubline.tsx refactor(C129): simplify — CampaignNameSubline compartilhado (a11y sr-label), guard legenda==nome, sem plumb morto, spec mais forte 2026-08-12 12:52:35 -03:00
CampaignScopeBadge.tsx Pass 2 W2: components/campaign em subpastas por dominio 2026-07-25 14:52:17 -03:00
CampaignSearchInput.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
CampaignSortableHead.tsx B21: cria página própria dos territórios 2026-07-25 21:50:24 -03:00
CampaignTable.tsx feat(campaign): Tendência migra para Ações ao colapsar a coluna (B172) 2026-08-09 13:36:04 -03:00
CampaignUserAvatar.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
CampaignWizardNavLink.tsx B135 — Voltar no wizard usa passo lógico anterior na cadeia (#289) 2026-08-02 23:04:26 +00:00
CampaignWizardShell.tsx feat(campanha): B168 — desfazer encadeamento automático das ações rápidas do wizard 2026-08-08 14:10:47 -03:00
ConsentText.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
ContactCombobox.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
LeadershipStateDeputyRelationCell.tsx feat(campaign): C142 UI respects advisor permission profile somente_leitura 2026-08-21 23:01:35 -03:00
MunicipalityPortfolioCell.tsx C130: ajustes da tabela desktop de pessoas (contato completo, base sob o nome, caret, tooltips, Dobra em, filtro/ordenação por partido) 2026-08-12 16:01:25 -03:00
MunicipalityRelationAvatarStack.tsx feat(B200): encaixes dos cards mobile de municípios — densidade, alinhamento de labels e pilha de avatares (pós-B196) 2026-08-12 15:40:02 -03:00
MunicipalityRelationEditor.tsx feat(campaign): C142 UI respects advisor permission profile somente_leitura 2026-08-21 23:01:35 -03:00
MunicipalityStateDeputyRelationCell.tsx feat(campaign): C142 UI respects advisor permission profile somente_leitura 2026-08-21 23:01:35 -03:00
PhonesFieldEditor.tsx feat(campaign): C142 UI respects advisor permission profile somente_leitura 2026-08-21 23:01:35 -03:00
RelationChipCell.tsx C130: ajustes da tabela desktop de pessoas (contato completo, base sob o nome, caret, tooltips, Dobra em, filtro/ordenação por partido) 2026-08-12 16:01:25 -03:00
RelationMultiSelect.tsx Pass 2 W2: components/campaign em subpastas por dominio 2026-07-25 14:52:17 -03:00
RelationOptionCell.tsx feat(C116): pessoas — edição onde você vê na lista desktop (células sempre input, chips territoriais internos, nome-link, tooltips nas ações) 2026-08-11 15:09:56 -03:00
ResponsibleMultiSelect.tsx refactor(campaign): E1 extrai useAsyncSearchOptions (3ª cópia da busca com debounce) 2026-08-23 13:16:47 -03:00
StrictCombobox.tsx feat(C103): agenda mobile — formulário de criação usável (sheet do topo, sem labels, salvar fixo, seletor em bottom sheet) 2026-08-10 03:34:33 -03:00
useCampaignCellAutosave.ts B32+: share the campaign JSON route wrapper, fetch helper and cell auto-save. 2026-07-28 08:07:29 -03:00
useCampaignCellFailureChannel.ts B32+: share the campaign JSON route wrapper, fetch helper and cell auto-save. 2026-07-28 08:07:29 -03:00
useCampaignFormSuccessToast.ts feat(B195): finalizar wizard Registrar pedido — campo único + título derivado por IA + edição no detalhe 2026-08-10 20:15:05 -03:00
useCampaignListFilterNavigation.ts chore: remove orphaned list filter shells after B128 omnibox migration 2026-08-02 20:57:47 +00:00
useMunicipalitySavedFilters.ts chore: unexport unused MUNICIPALITY_SAVED_FILTER_IGNORED_PARAMS (knip) 2026-08-02 21:21:41 +00:00
useNearestMunicipalitySlug.ts B125 — nearest município first in search suggest + wizard 2026-08-02 18:21:52 +00:00
usePeopleSavedFilters.ts feat(C100): lista unificada de pessoas em /campanha/pessoas 2026-08-10 13:45:46 -03:00
WizardExpectedVotesStep.tsx chore(D11): chrome comum dos passos finais do wizard — WizardStepFormChrome + DemandFields 2026-08-11 07:37:44 -03:00
WizardMunicipalitySearchStep.tsx B125 — nearest município first in search suggest + wizard 2026-08-02 18:21:52 +00:00
WizardRegisterDemandStep.tsx feat(C143): demandas visíveis apenas para responsáveis explícitos + candidato/coordenador 2026-08-19 23:55:07 -03:00
WizardStepFormChrome.tsx chore(D11): chrome comum dos passos finais do wizard — WizardStepFormChrome + DemandFields 2026-08-11 07:37:44 -03:00