({
TracksinSearch,
TracksNotinSearch,
}: {
TracksinSearch: Track[];
TracksNotinSearch: Track[];
})
| 5 | import { createCollection, insertData } from "../../lib/search"; |
| 6 | |
| 7 | const AdminSearch = ({ |
| 8 | TracksinSearch, |
| 9 | TracksNotinSearch, |
| 10 | }: { |
| 11 | TracksinSearch: Track[]; |
| 12 | TracksNotinSearch: Track[]; |
| 13 | }) => { |
| 14 | const [isSubmitting, setIsSubmitting] = useState(false); |
| 15 | async function handleAddTracks() { |
| 16 | setIsSubmitting(true); |
| 17 | for (const track of TracksNotinSearch) { |
| 18 | await insertData(track.id); |
| 19 | } |
| 20 | setIsSubmitting(false); |
| 21 | } |
| 22 | async function handlecreateCollection() { |
| 23 | toast({ |
| 24 | title: "Creating Collection", |
| 25 | description: "Please wait", |
| 26 | }); |
| 27 | try { |
| 28 | await createCollection(); |
| 29 | toast({ |
| 30 | title: "Collection Created", |
| 31 | description: "Collection Created Successfully", |
| 32 | }); |
| 33 | } catch (error) { |
| 34 | toast({ |
| 35 | title: "Error", |
| 36 | description: "Error Creating Collection", |
| 37 | }); |
| 38 | } |
| 39 | } |
| 40 | return ( |
| 41 | <div> |
| 42 | <div className="flex justify-center space-x-3"> |
| 43 | <Button variant="outline" onClick={handlecreateCollection}> |
| 44 | Create Collection |
| 45 | </Button> |
| 46 | <Button disabled={isSubmitting} variant="outline" onClick={handleAddTracks}> |
| 47 | {!isSubmitting ? "Add Track" : "Adding Track to Search"} |
| 48 | </Button> |
| 49 | </div> |
| 50 | <div className="grid grid-cols-2"> |
| 51 | <ScrollArea className="h-screen m-2"> |
| 52 | <div className="text-3xl text-center mb-4">Not in Search</div> |
| 53 | <div className="space-y-4"> |
| 54 | {TracksNotinSearch.map((track, i) => ( |
| 55 | <Card key={track.id}> |
| 56 | <div className="grid grid-cols-6"> |
| 57 | <img |
| 58 | src={track.image} |
| 59 | className="flex m-4 min-h-[130px] sm:h-[130px] min-w-[130px] sm:w-[130px] rounded-xl" |
| 60 | /> |
| 61 | <div className="col-span-5"> |
| 62 | <CardHeader> |
| 63 | <div className="flex justify-between"> |
| 64 | <CardTitle>{track.title}</CardTitle> |
nothing calls this directly
no outgoing calls
no test coverage detected