import { useEffect, useState } from "react"; import { Modal } from "./Modal"; import { replaceImage, search, type SearchResponse } from "api/api"; import SearchResults from "../SearchResults"; import { AsyncButton } from "../AsyncButton"; interface Props { type: string id: number musicbrainzId?: string open: boolean setOpen: Function } export default function ImageReplaceModal({ musicbrainzId, type, id, open, setOpen }: Props) { const [query, setQuery] = useState(''); const [loading, setLoading] = useState(false) const [suggestedImgLoading, setSuggestedImgLoading] = useState(true) const doImageReplace = (url: string) => { setLoading(true) const formData = new FormData formData.set(`${type.toLowerCase()}_id`, id.toString()) formData.set("image_url", url) replaceImage(formData) .then((r) => { if (r.ok) { window.location.reload() } else { console.log(r) setLoading(false) } }) .catch((err) => console.log(err)) } const closeModal = () => { setOpen(false) setQuery('') } return (

Replace Image

setQuery(e.target.value)} /> { query != "" ?
doImageReplace(query)}>Submit
: ''} { type === "Album" && musicbrainzId ? <>

Suggested Image (Click to Apply)

: '' }
) }