added more checks

This commit is contained in:
Daniel Shleifman
2021-06-09 18:14:25 +03:00
parent dbf7f9a556
commit 00abbe1a3d

View File

@@ -45,6 +45,7 @@ export default function AddDialog({ handleClose }) {
const [isPosterUrlCorrect, setIsPosterUrlCorrect] = useState(false) const [isPosterUrlCorrect, setIsPosterUrlCorrect] = useState(false)
const [posterList, setPosterList] = useState() const [posterList, setPosterList] = useState()
const [isUserInteractedWithPoster, setIsUserInteractedWithPoster] = useState(false) const [isUserInteractedWithPoster, setIsUserInteractedWithPoster] = useState(false)
const [isUserInteractedWithTitle, setIsUserInteractedWithTitle] = useState(false)
const [currentLang] = useChangeLanguage() const [currentLang] = useChangeLanguage()
const [selectedFile, setSelectedFile] = useState() const [selectedFile, setSelectedFile] = useState()
const [posterSearchLanguage, setPosterSearchLanguage] = useState(currentLang === 'ru' ? 'ru' : 'en') const [posterSearchLanguage, setPosterSearchLanguage] = useState(currentLang === 'ru' ? 'ru' : 'en')
@@ -52,11 +53,13 @@ export default function AddDialog({ handleClose }) {
const fullScreen = useMediaQuery('@media (max-width:930px)') const fullScreen = useMediaQuery('@media (max-width:930px)')
const posterSearch = useMemo( const posterSearch = useMemo(
() => (movieName, language) => { () =>
(movieName, language, settings = {}) => {
const { shouldRefreshMainPoster = false } = settings
getMoviePosters(movieName, language).then(urlList => { getMoviePosters(movieName, language).then(urlList => {
if (urlList) { if (urlList) {
setPosterList(urlList) setPosterList(urlList)
if (isUserInteractedWithPoster) return if (!shouldRefreshMainPoster && isUserInteractedWithPoster) return
const [firstPoster] = urlList const [firstPoster] = urlList
checkImageURL(firstPoster).then(correctImage => { checkImageURL(firstPoster).then(correctImage => {
@@ -79,6 +82,8 @@ export default function AddDialog({ handleClose }) {
const delayedPosterSearch = useMemo(() => debounce(posterSearch, 700), [posterSearch]) const delayedPosterSearch = useMemo(() => debounce(posterSearch, 700), [posterSearch])
useEffect(() => { useEffect(() => {
if (isUserInteractedWithTitle) return
parseTorrent.remote(selectedFile || torrentSource, (err, parsedTorrent) => { parseTorrent.remote(selectedFile || torrentSource, (err, parsedTorrent) => {
if (err) throw err if (err) throw err
if (!parsedTorrent.name) return if (!parsedTorrent.name) return
@@ -94,7 +99,7 @@ export default function AddDialog({ handleClose }) {
setTitle(value) setTitle(value)
delayedPosterSearch(value, posterSearchLanguage) delayedPosterSearch(value, posterSearchLanguage)
}) })
}, [selectedFile, delayedPosterSearch, torrentSource, posterSearchLanguage]) }, [selectedFile, delayedPosterSearch, torrentSource, posterSearchLanguage, isUserInteractedWithTitle])
const handleCapture = files => { const handleCapture = files => {
const [file] = files const [file] = files
@@ -116,6 +121,8 @@ export default function AddDialog({ handleClose }) {
const handleTitleChange = ({ target: { value } }) => { const handleTitleChange = ({ target: { value } }) => {
setTitle(value) setTitle(value)
delayedPosterSearch(value, posterSearchLanguage) delayedPosterSearch(value, posterSearchLanguage)
torrentSource && setIsUserInteractedWithTitle(true)
} }
const handlePosterUrlChange = ({ target: { value } }) => { const handlePosterUrlChange = ({ target: { value } }) => {
setPosterUrl(value) setPosterUrl(value)
@@ -144,6 +151,7 @@ export default function AddDialog({ handleClose }) {
const clearSelectedFile = () => { const clearSelectedFile = () => {
setSelectedFile() setSelectedFile()
setTorrentSource('') setTorrentSource('')
setIsUserInteractedWithTitle(false)
} }
const userChangesPosterUrl = url => { const userChangesPosterUrl = url => {
@@ -201,9 +209,9 @@ export default function AddDialog({ handleClose }) {
{currentLang !== 'en' && ( {currentLang !== 'en' && (
<PosterLanguageSwitch <PosterLanguageSwitch
onClick={() => { onClick={() => {
setPosterSearchLanguage(posterSearchLanguage === 'en' ? 'ru' : 'en') const newLanguage = posterSearchLanguage === 'en' ? 'ru' : 'en'
posterSearch(title, posterSearchLanguage === 'en' ? 'ru' : 'en') setPosterSearchLanguage(newLanguage)
setIsUserInteractedWithPoster(false) posterSearch(title, newLanguage, { shouldRefreshMainPoster: true })
}} }}
showbutton={+isPosterUrlCorrect} showbutton={+isPosterUrlCorrect}
color='primary' color='primary'