🔎 CV search results prettification

This commit is contained in:
2022-06-01 23:17:53 -07:00
parent f6d86199dd
commit aeb6e5225d
4 changed files with 78 additions and 29 deletions

View File

@@ -20,7 +20,7 @@ export const PullList = ({ issues }: PullListProps): ReactElement => {
useEffect(() => { useEffect(() => {
dispatch( dispatch(
getWeeklyPullList({ getWeeklyPullList({
startDate: "2022-2-11", startDate: "2022-6-1",
pageSize: "15", pageSize: "15",
currentPage: "1", currentPage: "1",
}), }),

View File

@@ -95,6 +95,15 @@ export const RecentlyImported = ({
/> />
</span> </span>
)} )}
{/* ComicVine metadata presence */}
{isComicBookMetadataAvailable && (
<span className="icon custom-icon">
<img
src="/img/cvlogo.svg"
alt={"ComicInfo.xml file detected."}
/>
</span>
)}
{/* Issue type */} {/* Issue type */}
{isComicBookMetadataAvailable && {isComicBookMetadataAvailable &&
!isNil( !isNil(

View File

@@ -34,7 +34,7 @@ export const MatchResult = (props: MatchResultProps) => {
}); });
} }
return ( return (
<div className="search-result mb-4"> <div className="search-result mb-4" key={idx}>
<div className="columns"> <div className="columns">
<div className="column is-one-fifth"> <div className="column is-one-fifth">
<img <img

View File

@@ -7,6 +7,9 @@ import { comicinfoAPICall } from "../actions/comicinfo.actions";
import { search } from "../services/api/SearchApi"; import { search } from "../services/api/SearchApi";
import { Form, Field } from "react-final-form"; import { Form, Field } from "react-final-form";
import Card from "./Carda"; import Card from "./Carda";
import ellipsize from "ellipsize";
import { convert } from "html-to-text";
import dayjs from "dayjs";
interface ISearchProps {} interface ISearchProps {}
@@ -27,7 +30,8 @@ export const Search = ({}: ISearchProps): ReactElement => {
format: "json", format: "json",
limit: "10", limit: "10",
offset: "0", offset: "0",
field_list: "id,name,deck,api_detail_url,image,description,volume", field_list:
"id,name,deck,api_detail_url,image,description,volume,cover_date",
resources: "issue", resources: "issue",
}, },
}), }),
@@ -85,10 +89,14 @@ export const Search = ({}: ISearchProps): ReactElement => {
/> />
{!isNil(comicVineSearchResults.results) && {!isNil(comicVineSearchResults.results) &&
!isEmpty(comicVineSearchResults.results) ? ( !isEmpty(comicVineSearchResults.results) ? (
<div> <div className="columns is-multiline">
{comicVineSearchResults.results.map((result) => { {comicVineSearchResults.results.map((result) => {
return ( return (
<div key={result.id} className="columns is-full"> <div
key={result.id}
className="comicvine-metadata column is-10 mb-3"
>
<div className="columns">
<div className="column is-one-quarter"> <div className="column is-one-quarter">
<Card <Card
key={result.id} key={result.id}
@@ -98,23 +106,55 @@ export const Search = ({}: ISearchProps): ReactElement => {
hasDetails={false} hasDetails={false}
></Card> ></Card>
</div> </div>
<div className="column is-half"> <div className="column">
<div className="is-size-4">{result.name}</div> <div className="is-size-3">
<span className="tag is-warning">{result.id}</span> {!isEmpty(result.name) ? (
<p>{result.api_detail_url}</p> result.name
<p ) : (
dangerouslySetInnerHTML={createDescriptionMarkup( <span className="is-size-3">No Name</span>
result.description,
)} )}
></p> </div>
<div className="field is-grouped mt-1">
<div className="control">
<div className="tags has-addons">
<span className="tag is-light">Cover date</span>
<span className="tag is-info is-light">
{dayjs(result.cover_date).format("MMM D, YYYY")}
</span>
</div>
</div>
<div className="control">
<div className="tags has-addons">
<span className="tag is-warning">
{result.id}
</span>
</div>
</div>
</div>
<a href={result.api_detail_url}>
{result.api_detail_url}
</a>
<p>
{ellipsize(
convert(result.description, {
baseElements: {
selectors: ["p"],
},
}),
320,
)}
</p>
<button <button
className="button is-success is-light is-outlined" className="button is-success is-light is-outlined mt-2"
onClick={() => addToLibrary("comicvine", result)} onClick={() => addToLibrary("comicvine", result)}
> >
Add to Library <i className="fa-solid fa-plus mr-2"></i> Add to Library
</button> </button>
</div> </div>
</div> </div>
</div>
); );
})} })}
</div> </div>