feat: SwipeRow integrated into Leads Finder review queue
Pending leads now render as SwipeableLeadCard (ReactBits SwipeRow): - Swipe right: approve (green action) - Swipe right (second action): snooze (gray) - Swipe left: reject (dismiss action) - Full swipe with commit at 55% threshold - Score badge + company name + website + city + score label - Selecting a lead opens the detail panel Non-pending leads (approved/rejected/converted) keep the simple button card for review history. 0 TS errors, ESLint clean, 0 console errors.
This commit is contained in:
1 parent
4618d96201
commit
7eba4cfaeb
1 file changed
+23
@@ -17,6 +17,7 @@ import {
|
||||
Filter,
|
||||
ArrowRight,
|
||||
} from 'lucide-react'
|
||||
import { SwipeableLeadCard } from '../swipeable-lead-card'
|
||||
import { useFetch } from '@/hooks/use-fetch'
|
||||
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'
|
||||
import { Badge } from '@/components/ui/badge'
|
||||
@@ -207,6 +208,28 @@ export function LeadsView() {
|
||||
<div className="space-y-1.5 p-2">
|
||||
{filtered.map((l) => {
|
||||
const meta = STATUS_META[l.status] ?? STATUS_META.pending
|
||||
// Pending leads get SwipeRow (swipe to approve/reject/snooze)
|
||||
if (l.status === 'pending') {
|
||||
return (
|
||||
<div key={l.id} className={cn('rounded-md border overflow-hidden', selected?.id === l.id && 'ring-1 ring-foreground/40')}>
|
||||
<SwipeableLeadCard
|
||||
lead={{
|
||||
id: l.id,
|
||||
companyName: l.companyName,
|
||||
website: l.website,
|
||||
city: l.city,
|
||||
score: l.score,
|
||||
scoreLabel: l.scoreLabel,
|
||||
createdAt: l.createdAt,
|
||||
}}
|
||||
onApprove={(id) => { setSelectedId(id); review(id, 'approved') }}
|
||||
onReject={(id) => { setSelectedId(id); review(id, 'rejected', 'Nicht zur Zielgruppe') }}
|
||||
onSnooze={(id) => { setSelectedId(id); review(id, 'snoozed', 'Später erneut prüfen') }}
|
||||
/>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
// Non-pending leads keep the simple button card
|
||||
return (
|
||||
<button
|
||||
key={l.id}
|
||||
|
||||
Reference in new issue
Block a user