"use client" import { useState } 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, CheckCircle2, Circle } from "lucide-react" import { ScrollArea } from "@/components/ui/scroll-area" interface ContentLibrarySelectionDialogProps { open: boolean onOpenChange: (open: boolean) => void selectedLibraries: string[] onSelect: (libraries: string[]) => void } export function ContentLibrarySelectionDialog({ open, onOpenChange, selectedLibraries, onSelect, }: ContentLibrarySelectionDialogProps) { const [searchQuery, setSearchQuery] = useState("") const [libraries] = useState([ { id: "1", name: "卡若朋友圈", count: 58 }, { id: "2", name: "暗黑4代练", count: 422 }, { id: "3", name: "家装设计", count: 107 }, { id: "4", name: "美食分享", count: 321 }, { id: "5", name: "旅游攻略", count: 89 }, ]) const [tempSelectedLibraries, setTempSelectedLibraries] = useState(selectedLibraries) const toggleLibrary = (libraryId: string) => { setTempSelectedLibraries((prev) => prev.includes(libraryId) ? prev.filter((id) => id !== libraryId) : [...prev, libraryId] ) } const handleConfirm = () => { onSelect(tempSelectedLibraries) onOpenChange(false) } const handleCancel = () => { setTempSelectedLibraries(selectedLibraries) onOpenChange(false) } const filteredLibraries = libraries.filter((library) => library.name.toLowerCase().includes(searchQuery.toLowerCase()) ) return ( 选择内容库
setSearchQuery(e.target.value)} />
{filteredLibraries.map((library) => (
toggleLibrary(library.id)} >

{library.name}

{library.count}条内容

{tempSelectedLibraries.includes(library.id) ? ( ) : ( )}
))}
) }