feat: Leads-Aktionsbuttons icon-only + WOID des Akquise-Tickets

- Maps/Website/Repo nur noch Icon (title/aria-label bleiben)
- WOID je Lead als klickbarer Chip -> /tickets?woid= (Lead->Kunde->Akquise-Ticket, live in useLeads gejoint)
- useWorkorders: woid server-seitig filterbar (macht den bisher wirkungslosen WOID-Filter nutzbar)
- TicketsPage: ?woid= Deep-Link liest Param, filtert ueber alle Status

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Opus 4.8 committed 2026-07-16 18:40:40 +00:00
1 parent 4c305fcd46
commit fe3e39bd04
4 files changed
+93 -9

No files matched your search

+14 -1
View File
@@ -1,4 +1,5 @@
import { useState } from 'react'
import { useEffect, useState } from 'react'
import { useSearchParams } from 'react-router-dom'
import { FaAngleDown, FaSpinner, FaPlus, FaList, FaSliders } from 'react-icons/fa6'
import { useWorkorders } from '../hooks/useWorkorders'
import { useCustomers } from '../hooks/useCustomers'
@@ -35,6 +36,18 @@ export default function TicketsPage() {
const [showCreateModal, setShowCreateModal] = useState(false)
const [showOverviewModal, setShowOverviewModal] = useState(false)
const [showAdvanced, setShowAdvanced] = useState(false)
const [searchParams] = useSearchParams()
// Deep-Link aus den Leads: /tickets?woid=123 -> Filter vorbelegen + anwenden
// (ueber ALLE Status, damit das Ticket unabhaengig vom Status gefunden wird)
useEffect(() => {
const w = searchParams.get('woid')
if (!w) return
setLocalFilters((p) => ({ ...p, woid: w }))
setShowAdvanced(true)
setStatusSel(ALL_STATUSES)
setFilters((prev) => ({ ...prev, status: ALL_STATUSES, woid: w }))
}, [searchParams])
const applyFilters = () => {
setFilters((prev) => ({