"use client" import { useState, useEffect } from "react" import { Dialog, DialogContent, DialogHeader, DialogTitle } from "@/components/ui/dialog" import { Input } from "@/components/ui/input" import { Button } from "@/components/ui/button" import { Search } from "lucide-react" import { Checkbox } from "@/components/ui/checkbox" import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar" interface WechatFriend { id: string nickname: string wechatId: string avatar: string gender: "male" | "female" customer: string } interface WechatFriendSelectorProps { open: boolean onOpenChange: (open: boolean) => void selectedFriends: WechatFriend[] onSelect: (friends: WechatFriend[]) => void } export function WechatFriendSelector({ open, onOpenChange, selectedFriends, onSelect }: WechatFriendSelectorProps) { const [searchQuery, setSearchQuery] = useState("") const [friends, setFriends] = useState([]) const [loading, setLoading] = useState(false) useEffect(() => { if (open) { fetchFriends() } }, [open]) const fetchFriends = async () => { setLoading(true) // 模拟从API获取好友列表 await new Promise((resolve) => setTimeout(resolve, 1000)) const mockFriends = Array.from({ length: 20 }, (_, i) => ({ id: `friend-${i}`, nickname: `好友${i + 1}`, wechatId: `wxid_${Math.random().toString(36).substr(2, 8)}`, avatar: `/placeholder.svg?height=40&width=40&text=${i + 1}`, gender: Math.random() > 0.5 ? "male" : "female", customer: `客户${i + 1}`, })) setFriends(mockFriends) setLoading(false) } const filteredFriends = friends.filter( (friend) => friend.nickname.toLowerCase().includes(searchQuery.toLowerCase()) || friend.wechatId.toLowerCase().includes(searchQuery.toLowerCase()), ) return ( 选择微信好友
setSearchQuery(e.target.value)} className="pl-9" />
{loading ? (
加载中...
) : filteredFriends.length === 0 ? (
未找到匹配的好友
) : ( filteredFriends.map((friend) => (
f.id === friend.id)} onCheckedChange={(checked) => { if (checked) { onSelect([...selectedFriends, friend]) } else { onSelect(selectedFriends.filter((f) => f.id !== friend.id)) } }} /> {friend.nickname[0]}
{friend.nickname}
{friend.wechatId}
归属客户:{friend.customer}
)) )}
) }