teqo-backup/src/utilities/activityDetailTabUi.ts
Cursor Agent 8372cec91d
C11: picker remoto de atividades na demanda + paginação de vínculos
- Substitui loadActivityOptions (pagination: false) por AsyncSearchCombobox
  com busca server-backed filtrada por município (searchActivityRelationOptions).
- Pagina card Demandas vinculadas no detalhe da atividade (10/página) com
  soma de custo em query separada e link Ver todas na lista filtrada.
- Adiciona filtro ?activity= na lista /campanha/demandas.

Co-authored-by: Francisco Solla <fsolla@users.noreply.github.com>
2026-08-01 06:37:53 +00:00

26 lines
949 B
TypeScript

import { createDetailTabHelpers, type DetailTabSearchParams } from '@/utilities/detailTabUi'
export const activityDetailTabs = ['overview', 'tasks', 'updates'] as const
export type ActivityDetailTab = (typeof activityDetailTabs)[number]
export type ActivityDetailSearchParams = DetailTabSearchParams
const helpers = createDetailTabHelpers<ActivityDetailTab>({
tabs: activityDetailTabs,
defaultTab: 'overview',
tabQueryKeys: {
overview: ['demandsPage'],
tasks: [],
updates: ['newUpdate'],
},
basePath: (activitySlug) => `/campanha/atividades/${activitySlug}`,
forcedTab: (searchParams) =>
(Array.isArray(searchParams.newUpdate) ? searchParams.newUpdate[0] : searchParams.newUpdate) ===
'1'
? 'updates'
: null,
})
export const resolveActivityDetailTab = helpers.resolveTab
export const buildActivityDetailTabHref = helpers.buildTabHref
export const getActivityDetailTabRedirect = helpers.getTabRedirect