teqo/src/components/campaign/shell
Francisco Solla 0d483a08db feat(campaign): C142 UI respects advisor permission profile somente_leitura
- Pure helpers: advisorEditingScope, rowEditingAllowed in campaignAdvisorProfile.ts
- gate: 'writable' in requireCampaignPageActor for route-level enforcement
- Shared cells accept readOnly prop: CampaignInlineEditableCell, MunicipalityRelationEditor, PhonesFieldEditor, DemandDescriptionEditor, etc.
- Municipality pages compute editingScope via resolveMunicipalityWriteScope and thread it to list/detail/edit surfaces
- Home actions, FAB mount rule, quick actions registry accept editingScope parameter
- Demands, activities, supporters, organizations create buttons gated
- E2E spec: campaignPermissionProfile.e2e.spec.ts covering 3 profiles
- Unit tests: campaignAdvisorProfile, accessShared, campaignComponents updated
- gate:fast passed (tsc, lint, format, knip, cycles, unit)
2026-08-21 23:01:35 -03:00
..
ai fix(B199): fechar o drawer mid-stream persiste open:false imediato — reload não ressuscita (Closes #672) 2026-08-11 19:41:48 -03:00
BiometricEnrollmentToast.tsx Deliver B40: biometric login for /campanha. 2026-07-28 10:59:23 -03:00
campaign-logo.tsx Pass 2 W2: components/campaign em subpastas por dominio 2026-07-25 14:52:17 -03:00
CampaignAppScrollChrome.tsx feat(campaign): C142 UI respects advisor permission profile somente_leitura 2026-08-21 23:01:35 -03:00
CampaignBottomNav.tsx feat(C100): lista unificada de pessoas em /campanha/pessoas 2026-08-10 13:45:46 -03:00
CampaignDesktopHeader.tsx fix(C94): draft mirror p/ picks cumulativos no omnibox + simplificações do /simplify 2026-08-09 04:36:02 -03:00
CampaignHomeSearchChromeContext.tsx B106 — optional home search chrome read for wizard unit tests 2026-08-01 18:38:04 +00:00
CampaignIosViewportHeal.tsx fix(B182): PWA iOS — heal do zoom preso do visual viewport no standalone 2026-08-09 18:50:00 -03:00
CampaignMobileTopBar.tsx feat(B184): omnibox mobile sem moldura como padrão das listas (sticky no form, X de limpar no input, salvar filtro no header, cards edge-to-edge) 2026-08-10 03:11:43 -03:00
CampaignNotificationBell.tsx feat(C108): sino de notificações — abrir marca tudo como lido, painel limpo, modal central no desktop 2026-08-10 02:56:20 -03:00
CampaignNotificationBellSlot.tsx D2 — Push + sino in-app para /campanha 2026-07-31 01:51:41 +00:00
CampaignPageChromeContext.tsx feat(C94): agenda omnibox + feed no header/FAB 2026-08-09 04:35:39 -03:00
CampaignPageChromeDisplay.tsx chore: remove orphaned getCampaignScopeLabel and unexported hook 2026-08-02 18:12:43 +00:00
CampaignPageChromeText.tsx feat(C101-ux): agenda mobile — navegação por teclado (região focável) + affordance do tap no título 2026-08-10 00:53:19 -03:00
CampaignPageShell.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
CampaignPushOptInToast.tsx feat(push): opt-in automático e fix do prompt nativo no /campanha 2026-08-10 21:14:56 -03:00
CampaignQuickActionContext.tsx feat(C123): agenda — overlay modal central como única superfície de criação/edição de atividade (Closes #667) 2026-08-12 14:16:20 -03:00
CampaignQuickActionContextBridge.tsx B84 — Ações rápidas na vertical Atividades (lista + detalhe) 2026-08-01 04:35:38 +00:00
CampaignQuickActionContextSync.tsx B85 — Ações rápidas no drawer de Demandas (lista + detalhe) 2026-08-01 05:26:12 +00:00
CampaignQuickActionsFab.tsx B126 — FAB de ações rápidas substitui drawer persistente 2026-08-02 18:39:27 +00:00
CampaignQuickActionsHost.tsx feat(campaign): C142 UI respects advisor permission profile somente_leitura 2026-08-21 23:01:35 -03:00
CampaignQuickActionsOverlay.tsx fix(C94): draft mirror p/ picks cumulativos no omnibox + simplificações do /simplify 2026-08-09 04:36:02 -03:00
CampaignSidebar.tsx feat(C100): lista unificada de pessoas em /campanha/pessoas 2026-08-10 13:45:46 -03:00
CampaignSidebarViewportDefault.tsx B38: sidebar recolhido em tablet no shell /campanha 2026-07-26 18:40:31 -03:00
CampaignWizardChromeContext.tsx feat(campanha): B168 — desfazer encadeamento automático das ações rápidas do wizard 2026-08-08 14:10:47 -03:00
InstallPwaToast.tsx fix(campanha): share one Drawer across municipalities mobile cards 2026-07-30 17:37:20 -03:00
MunicipalityNavSavedFilters.tsx feat(C102): sem hamburger/sheet de sidebar no mobile staff — navegação pela barra + Mais 2026-08-09 19:13:43 -03:00
nav.ts feat(C139): domínio de contatos — URL state, loader com vínculos e invariante de nome 2026-08-13 14:05:24 -03:00
RegisterServiceWorker.tsx Pass 2 W2: components/campaign em subpastas por dominio 2026-07-25 14:52:17 -03:00