【操盘手】 内容库 - 修复选择好友或群直接渲染数据的BUG

This commit is contained in:
wong
2025-04-23 14:47:32 +08:00
parent 3e12687cc9
commit b324c87488
4 changed files with 58 additions and 27 deletions

View File

@@ -48,13 +48,15 @@ export function WechatFriendSelector({ open, onOpenChange, selectedFriends, onSe
const [page, setPage] = useState(1)
const [totalPages, setTotalPages] = useState(1)
const [totalItems, setTotalItems] = useState(0)
const [tempSelectedFriends, setTempSelectedFriends] = useState<WechatFriend[]>([])
const pageSize = 20
useEffect(() => {
if (open) {
fetchFriends(1)
setTempSelectedFriends([...selectedFriends])
}
}, [open])
}, [open, selectedFriends])
const fetchFriends = async (pageNum: number) => {
setLoading(true)
@@ -145,12 +147,12 @@ export function WechatFriendSelector({ open, onOpenChange, selectedFriends, onSe
friends.map((friend) => (
<div key={friend.id} className="flex items-center space-x-3 p-2 hover:bg-gray-100 rounded-lg">
<Checkbox
checked={selectedFriends.some((f) => f.id === friend.id)}
checked={tempSelectedFriends.some((f) => f.id === friend.id)}
onCheckedChange={(checked) => {
if (checked) {
onSelect([...selectedFriends, friend])
setTempSelectedFriends([...tempSelectedFriends, friend])
} else {
onSelect(selectedFriends.filter((f) => f.id !== friend.id))
setTempSelectedFriends(tempSelectedFriends.filter((f) => f.id !== friend.id))
}
}}
/>
@@ -204,7 +206,12 @@ export function WechatFriendSelector({ open, onOpenChange, selectedFriends, onSe
<Button variant="outline" onClick={() => onOpenChange(false)}>
</Button>
<Button onClick={() => onOpenChange(false)}> ({selectedFriends.length})</Button>
<Button onClick={() => {
onSelect(tempSelectedFriends)
onOpenChange(false)
}}>
({tempSelectedFriends.length})
</Button>
</div>
</DialogContent>
</Dialog>