import { faCloudUploadAlt, faHistory, faSearch, faSync, faToolbox, faUser, faWrench, } from "@fortawesome/free-solid-svg-icons"; import { dispatchTask } from "@modules/task"; import { createTask } from "@modules/task/utilities"; import { useDownloadMovieSubtitles, useIsMovieActionRunning } from "apis/hooks"; import { useMovieAction, useMovieById, useMovieModification, } from "apis/hooks/movies"; import { ContentHeader, ItemEditorModal, LoadingIndicator, MovieHistoryModal, MovieUploadModal, SubtitleToolModal, useShowModal, } from "components"; import ItemOverview from "components/ItemOverview"; import { ManualSearchModal } from "components/modals/ManualSearchModal"; import { RouterEmptyPath } from "pages/404"; import React, { FunctionComponent, useCallback } from "react"; import { Alert, Container, Row } from "react-bootstrap"; import { Helmet } from "react-helmet"; import { Redirect, RouteComponentProps, withRouter } from "react-router-dom"; import { useLanguageProfileBy } from "utilities/languages"; import Table from "./table"; interface Params { id: string; } interface Props extends RouteComponentProps {} const MovieDetailView: FunctionComponent = ({ match }) => { const id = Number.parseInt(match.params.id); const { data: movie, isFetched } = useMovieById(id); const profile = useLanguageProfileBy(movie?.profileId); const showModal = useShowModal(); const mutation = useMovieModification(); const { mutateAsync: action } = useMovieAction(); const { mutateAsync: downloadAsync } = useDownloadMovieSubtitles(); const download = useCallback( (item: Item.Movie, result: SearchResultType) => { const { language, hearing_impaired: hi, forced, provider, subtitle, original_format, } = result; const { radarrId } = item; return downloadAsync({ radarrId, form: { language, hi, forced, provider, subtitle, original_format, }, }); }, [downloadAsync] ); const hasTask = useIsMovieActionRunning(); if (isNaN(id) || (isFetched && !movie)) { return ; } if (!movie) { return ; } const allowEdit = movie.profileId !== undefined; return ( {movie.title} - Bazarr (Movies) { const task = createTask(movie.title, id, action, { action: "scan-disk", radarrid: id, }); dispatchTask("Scanning Disk...", [task], "Scanning..."); }} > Scan Disk { const task = createTask(movie.title, id, action, { action: "search-missing", radarrid: id, }); dispatchTask("Searching subtitles...", [task], "Searching..."); }} > Search showModal("manual-search", movie)} > Manual showModal("history", movie)} > History showModal("tools", [movie])} > Tools showModal("upload", movie)} > Upload showModal("edit", movie)} > Edit Movie A background task is running for this movie, actions are unavailable
); }; export default withRouter(MovieDetailView);