Files
users/components/user-pool/user-pool-filters.tsx
v0 2408d50cb0 refactor: overhaul UI for streamlined user experience
Redesign navigation, home overview, user portrait, and valuation pages
with improved functionality and responsive design.

Co-authored-by: null <4804959+fnvtk@users.noreply.github.com>
2025-07-18 13:47:12 +00:00

90 lines
3.4 KiB
TypeScript

"use client"
import { useState } from "react"
import { Button } from "@/components/ui/button"
import { Input } from "@/components/ui/input"
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"
import { Search, Filter, X } from "lucide-react"
export function UserPoolFilters() {
const [searchQuery, setSearchQuery] = useState("")
const [userType, setUserType] = useState("all")
const [userSource, setUserSource] = useState("all")
const [userValue, setUserValue] = useState("all")
const [showFilters, setShowFilters] = useState(false)
const clearFilters = () => {
setSearchQuery("")
setUserType("all")
setUserSource("all")
setUserValue("all")
}
return (
<div className="space-y-4">
<div className="flex flex-col md:flex-row gap-4">
<div className="flex-1 relative">
<Search className="absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground" />
<Input
type="text"
placeholder="搜索用户名、手机号、标签..."
className="pl-8"
value={searchQuery}
onChange={(e) => setSearchQuery(e.target.value)}
/>
</div>
<Button variant="outline" onClick={() => setShowFilters(!showFilters)}>
<Filter className="mr-2 h-4 w-4" />
</Button>
{(userType !== "all" || userSource !== "all" || userValue !== "all") && (
<Button variant="ghost" onClick={clearFilters}>
<X className="mr-2 h-4 w-4" />
</Button>
)}
</div>
{showFilters && (
<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
<Select value={userType} onValueChange={setUserType}>
<SelectTrigger>
<SelectValue placeholder="用户类型" />
</SelectTrigger>
<SelectContent>
<SelectItem value="all"></SelectItem>
<SelectItem value="new"></SelectItem>
<SelectItem value="active"></SelectItem>
<SelectItem value="inactive"></SelectItem>
<SelectItem value="lost"></SelectItem>
</SelectContent>
</Select>
<Select value={userSource} onValueChange={setUserSource}>
<SelectTrigger>
<SelectValue placeholder="用户来源" />
</SelectTrigger>
<SelectContent>
<SelectItem value="all"></SelectItem>
<SelectItem value="wechat"></SelectItem>
<SelectItem value="douyin"></SelectItem>
<SelectItem value="xiaohongshu"></SelectItem>
<SelectItem value="website"></SelectItem>
<SelectItem value="other"></SelectItem>
</SelectContent>
</Select>
<Select value={userValue} onValueChange={setUserValue}>
<SelectTrigger>
<SelectValue placeholder="用户价值" />
</SelectTrigger>
<SelectContent>
<SelectItem value="all"></SelectItem>
<SelectItem value="high"></SelectItem>
<SelectItem value="medium"></SelectItem>
<SelectItem value="low"></SelectItem>
</SelectContent>
</Select>
</div>
)}
</div>
)
}