From 060a9143e84bf96219f22815d68830e2f94709da Mon Sep 17 00:00:00 2001 From: Rishi Ghan Date: Mon, 6 Sep 2021 15:01:21 -0700 Subject: [PATCH] =?UTF-8?q?=E2=9C=85=20Proptypes=20validation=20for=20comp?= =?UTF-8?q?onents=20in=20ComicDetail?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/client/actions/airdcpp.actions.tsx | 2 +- src/client/components/ComicDetail.tsx | 40 +++++++++++++++++--------- 2 files changed, 27 insertions(+), 15 deletions(-) diff --git a/src/client/actions/airdcpp.actions.tsx b/src/client/actions/airdcpp.actions.tsx index 0cbe54a..db4021d 100644 --- a/src/client/actions/airdcpp.actions.tsx +++ b/src/client/actions/airdcpp.actions.tsx @@ -14,7 +14,7 @@ import { AIRDCPP_SEARCH_IN_PROGRESS, IMS_COMIC_BOOK_DB_OBJECT_FETCHED, } from "../constants/action-types"; -import { each, isNil, isUndefined, result } from "lodash"; +import { isNil } from "lodash"; import axios from "axios"; interface SearchData { diff --git a/src/client/components/ComicDetail.tsx b/src/client/components/ComicDetail.tsx index 410d21b..b0cdd6f 100644 --- a/src/client/components/ComicDetail.tsx +++ b/src/client/components/ComicDetail.tsx @@ -1,10 +1,5 @@ -import React, { - useState, - useEffect, - useLayoutEffect, - useCallback, - ReactElement, -} from "react"; +import React, { useState, useEffect, useCallback, ReactElement } from "react"; +import PropTypes from "prop-types"; import { useParams } from "react-router-dom"; import Card from "./Carda"; import MatchResult from "./MatchResult"; @@ -21,7 +16,6 @@ import { isEmpty, isUndefined, isNil } from "lodash"; import { RootState } from "threetwo-ui-typings"; import { fetchComicVineMatches } from "../actions/fileops.actions"; import { getComicBookDetailById } from "../actions/comicinfo.actions"; -import { getBundlesForComic } from "../actions/airdcpp.actions"; import dayjs from "dayjs"; const prettyBytes = require("pretty-bytes"); @@ -71,10 +65,6 @@ export const ComicDetail = ({}: ComicDetailProps): ReactElement => { dispatch(fetchComicVineMatches(comicBookDetailData)); }, [dispatch, comicBookDetailData]); - const onClose = () => { - setVisible(false); - }; - const [active, setActive] = useState(1); const createDescriptionMarkup = (html) => { return { __html: html }; @@ -83,7 +73,8 @@ export const ComicDetail = ({}: ComicDetailProps): ReactElement => { comicBookDetailData.sourcedMetadata && !isUndefined(comicBookDetailData.sourcedMetadata.comicvine) && !isEmpty(comicBookDetailData.sourcedMetadata); - // Tab groups for ComicVine metadata + + // Tab content and header details const tabGroup = [ { id: 1, @@ -177,6 +168,7 @@ export const ComicDetail = ({}: ComicDetailProps): ReactElement => { ), }, ]; + // Tabs const MetadataTabGroup = () => { return ( <> @@ -188,6 +180,7 @@ export const ComicDetail = ({}: ComicDetailProps): ReactElement => { className={id === active ? "is-active" : ""} onClick={() => setActive(id)} > + {/* Downloads tab and count badge */} {id === 4 && !isNil(comicBookDetailData) && @@ -262,6 +255,25 @@ export const ComicDetail = ({}: ComicDetailProps): ReactElement => { ); + ComicVineDetails.propTypes = { + updatedAt: PropTypes.string, + data: PropTypes.shape({ + name: PropTypes.string, + number: PropTypes.string, + resource_type: PropTypes.string, + id: PropTypes.string, + }), + }; + + RawFileDetails.propTypes = { + data: PropTypes.shape({ + containedIn: PropTypes.string, + fileSize: PropTypes.string, + path: PropTypes.string, + extension: PropTypes.string, + }), + }; + let imagePath = ""; let comicBookTitle = ""; if (!isNil(comicBookDetailData.rawFileDetails)) { @@ -279,7 +291,7 @@ export const ComicDetail = ({}: ComicDetailProps): ReactElement => { comicBookTitle = comicBookDetailData.sourcedMetadata.comicvine.name; } - // actions menu options and handler + // Actions menu options and handler const CVMatchLabel = ( Match on ComicVine