import React, { useMemo, useCallback, ReactElement } from "react"; import { removeLeadingPeriod, escapePoundSymbol, } from "../shared/utils/formatting.utils"; import { useTable } from "react-table"; import prettyBytes from "pretty-bytes"; import ellipsize from "ellipsize"; import { isNil, isUndefined, map, isEmpty } from "lodash"; import { IExtractedComicBookCoverFile, RootState } from "threetwo-ui-typings"; import { useSelector, useDispatch } from "react-redux"; import { comicinfoAPICall } from "../actions/comicinfo.actions"; import { Form, Field } from "react-final-form"; interface ISearchProps {} export const Search = ({}: ISearchProps): ReactElement => { const formData = { search: "", }; const dispatch = useDispatch(); const getCVSearchResults = useCallback( (searchQuery) => { dispatch( comicinfoAPICall({ callURIAction: "search", callMethod: "GET", callParams: { api_key: "a5fa0663683df8145a85d694b5da4b87e1c92c69", query: searchQuery.search, format: "json", limit: "10", offset: "0", field_list: "id,name,deck,api_detail_url", resources: "volume", }, }), ); }, [dispatch], ); const comicVineSearchResults = useSelector( (state: RootState) => state.comicInfo.searchResults, ); return ( <>

Search

(
{({ input, meta }) => { return ( ); }}
)} /> {!isNil(comicVineSearchResults) && !isEmpty(comicVineSearchResults) ? ( <> {comicVineSearchResults.results.map( ({ id, name, deck, api_detail_url }) => { return (
{id} {name}

{api_detail_url}

{deck}

); }, )} ) : (

Search the ComicVine database Search and add issues, series and trade paperbacks to your library. Then, download them using the configured AirDC++ or torrent clients.

)}
); }; export default Search;