feat(tickets): exclui visitas da listagem principal de tickets
All checks were successful
All checks were successful
- Adiciona filtro excludeVisits no estado de filtros - Aplica excludeVisits: true em /tickets e /tickets/resolved - Visitas agora aparecem apenas em /tickets/visits 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
0a36ed049f
commit
cd3305f1e3
4 changed files with 9 additions and 2 deletions
|
|
@ -24,7 +24,7 @@ export function TicketsResolvedPageClient() {
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<div className="flex flex-col gap-6">
|
<div className="flex flex-col gap-6">
|
||||||
<TicketsView initialFilters={{ view: "completed" }} />
|
<TicketsView initialFilters={{ view: "completed", excludeVisits: true }} />
|
||||||
</div>
|
</div>
|
||||||
</AppShell>
|
</AppShell>
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,7 @@ type TicketsPageClientProps = {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function TicketsPageClient({ initialFilters }: TicketsPageClientProps = {}) {
|
export function TicketsPageClient({ initialFilters }: TicketsPageClientProps = {}) {
|
||||||
|
const mergedFilters = { excludeVisits: true, ...initialFilters }
|
||||||
return (
|
return (
|
||||||
<AppShell
|
<AppShell
|
||||||
header={
|
header={
|
||||||
|
|
@ -49,7 +50,7 @@ export function TicketsPageClient({ initialFilters }: TicketsPageClientProps = {
|
||||||
<div className="px-4 lg:px-6">
|
<div className="px-4 lg:px-6">
|
||||||
<TicketQueueSummaryCards />
|
<TicketQueueSummaryCards />
|
||||||
</div>
|
</div>
|
||||||
<TicketsView initialFilters={initialFilters} />
|
<TicketsView initialFilters={mergedFilters} />
|
||||||
</div>
|
</div>
|
||||||
</AppShell>
|
</AppShell>
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -194,6 +194,9 @@ export function TicketsView({ initialFilters }: TicketsViewProps = {}) {
|
||||||
if (filters.focusVisits) {
|
if (filters.focusVisits) {
|
||||||
working = working.filter((t) => isVisitTicket(t))
|
working = working.filter((t) => isVisitTicket(t))
|
||||||
}
|
}
|
||||||
|
if (filters.excludeVisits) {
|
||||||
|
working = working.filter((t) => !isVisitTicket(t))
|
||||||
|
}
|
||||||
if (filters.categoryId) {
|
if (filters.categoryId) {
|
||||||
working = working.filter((t) => (t.category?.id ?? null) === filters.categoryId)
|
working = working.filter((t) => (t.category?.id ?? null) === filters.categoryId)
|
||||||
}
|
}
|
||||||
|
|
@ -219,6 +222,7 @@ export function TicketsView({ initialFilters }: TicketsViewProps = {}) {
|
||||||
filters.view,
|
filters.view,
|
||||||
filters.company,
|
filters.company,
|
||||||
filters.focusVisits,
|
filters.focusVisits,
|
||||||
|
filters.excludeVisits,
|
||||||
filters.categoryId,
|
filters.categoryId,
|
||||||
filters.dateFrom,
|
filters.dateFrom,
|
||||||
filters.dateTo,
|
filters.dateTo,
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@ export type TicketFiltersState = {
|
||||||
categoryId: string | null
|
categoryId: string | null
|
||||||
view: "active" | "completed"
|
view: "active" | "completed"
|
||||||
focusVisits: boolean
|
focusVisits: boolean
|
||||||
|
excludeVisits: boolean
|
||||||
dateFrom: string | null
|
dateFrom: string | null
|
||||||
dateTo: string | null
|
dateTo: string | null
|
||||||
sort: "recent" | "oldest"
|
sort: "recent" | "oldest"
|
||||||
|
|
@ -27,6 +28,7 @@ export const defaultTicketFilters: TicketFiltersState = {
|
||||||
categoryId: null,
|
categoryId: null,
|
||||||
view: "active",
|
view: "active",
|
||||||
focusVisits: false,
|
focusVisits: false,
|
||||||
|
excludeVisits: false,
|
||||||
dateFrom: null,
|
dateFrom: null,
|
||||||
dateTo: null,
|
dateTo: null,
|
||||||
sort: "recent",
|
sort: "recent",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue