🎨 UX improvements

This commit is contained in:
2022-02-08 20:50:45 -08:00
parent 9ff048d541
commit 1bbf5db6a8
6 changed files with 91 additions and 32 deletions

View File

@@ -14,8 +14,7 @@ $size-8: 0.9rem;
font-size: $size-8; font-size: $size-8;
} }
// global style overrides
// global style overrides
pre { pre {
border-radius: 0.5rem; border-radius: 0.5rem;
@@ -245,7 +244,19 @@ pre {
} }
} }
// Import // raw file details
.raw-file-details {
padding: 1rem;
background-color: beige;
border-radius: 0.5rem;
}
// comicvine metadata
.comicvine-metadata {
background-color: #f2f1f9;
padding: 0.8rem;
border-radius: 0.5rem;
}
// Comic Detail // Comic Detail
.comic-detail { .comic-detail {
@@ -315,12 +326,13 @@ pre {
// Comic Detail // Comic Detail
.control-palette { .control-palette {
background-color: #fff6de;
display: inline-block; display: inline-block;
i { i {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
// padding: 1.5rem 2rem; // padding: 1.5rem 2rem;
} }
} }
@@ -389,7 +401,7 @@ pre {
.potential-matches-container { .potential-matches-container {
.potential-issue-match { .potential-issue-match {
border-radius: 0.3rem; border-radius: 0.3rem;
background-color: $issue-color; background-color: beige;
padding: 10px; padding: 10px;
pre { pre {
padding: 5px; padding: 5px;

View File

@@ -235,12 +235,24 @@ export const ComicDetail = ({}: ComicDetailProps): ReactElement => {
orientation={"vertical"} orientation={"vertical"}
hasDetails={false} hasDetails={false}
/> />
{/* action dropdown */}
<div className="mt-4 is-size-7">
<Menu
data={comicBookDetailData}
handlers={{ setSlidingPanelContentId, setVisible }}
/>
</div>
</div> </div>
{/* raw file details */} {/* raw file details */}
<div className="column is-three-fifths"> <div className="column is-three-fifths">
{!isNil(comicBookDetailData.rawFileDetails) && ( {!isNil(comicBookDetailData.rawFileDetails) && (
<> <>
<RawFileDetails data={comicBookDetailData.rawFileDetails} /> <RawFileDetails
data={{
rawFileDetails: comicBookDetailData.rawFileDetails,
inferredMetadata: comicBookDetailData.inferredMetadata,
}}
/>
</> </>
)} )}
{/* comic vine scraped metadata */} {/* comic vine scraped metadata */}
@@ -251,13 +263,6 @@ export const ComicDetail = ({}: ComicDetailProps): ReactElement => {
/> />
)} )}
</div> </div>
{/* action dropdown */}
<div className="column is-one-fifth is-narrow is-size-7">
<Menu
data={comicBookDetailData}
handlers={{ setSlidingPanelContentId, setVisible }}
/>
</div>
</div> </div>
{isComicBookMetadataAvailable ? <MetadataTabGroup /> : null} {isComicBookMetadataAvailable ? <MetadataTabGroup /> : null}

View File

@@ -7,7 +7,7 @@ import { isUndefined } from "lodash";
export const ComicVineDetails = (props): ReactElement => { export const ComicVineDetails = (props): ReactElement => {
const { data, updatedAt } = props; const { data, updatedAt } = props;
return ( return (
<div className="content comic-detail"> <div className="content comic-detail comicvine-metadata">
<dl> <dl>
<dt>ComicVine Metadata</dt> <dt>ComicVine Metadata</dt>
<dd className="is-size-7"> <dd className="is-size-7">
@@ -40,14 +40,14 @@ export const ComicVineDetails = (props): ReactElement => {
</span> </span>
</div> </div>
</div> </div>
) : ( ) : data.resource_type ? (
<div className="control"> <div className="control">
<div className="tags has-addons"> <div className="tags has-addons">
<span className="tag is-light">Type</span> <span className="tag is-light">Type</span>
<span className="tag is-warning">{data.resource_type}</span> <span className="tag is-warning">{data.resource_type}</span>
</div> </div>
</div> </div>
)} ) : null}
<div className="control"> <div className="control">
<div className="tags has-addons"> <div className="tags has-addons">
<span className="tag is-light">ComicVine Issue ID</span> <span className="tag is-light">ComicVine Issue ID</span>

View File

@@ -1,15 +1,20 @@
import React, { ReactElement } from "react"; import React, { ReactElement } from "react";
import PropTypes from "prop-types"; import PropTypes from "prop-types";
import prettyBytes from "pretty-bytes"; import prettyBytes from "pretty-bytes";
import { isUndefined } from "lodash";
export const RawFileDetails = (props): ReactElement => { export const RawFileDetails = (props): ReactElement => {
const { data } = props; const { rawFileDetails, inferredMetadata } = props.data;
console.log(props);
return ( return (
<div className="content comic-detail"> <div className="content comic-detail raw-file-details">
<dl> <dl>
<dt>Raw File Details</dt> <dt>Raw File Details</dt>
<dd className="is-size-7"> <dd className="is-size-7">
{data.containedIn + "/" + data.name + data.extension} {rawFileDetails.containedIn +
"/" +
rawFileDetails.name +
rawFileDetails.extension}
</dd> </dd>
<dd> <dd>
<div className="field is-grouped mt-2"> <div className="field is-grouped mt-2">
@@ -17,7 +22,7 @@ export const RawFileDetails = (props): ReactElement => {
<div className="tags has-addons"> <div className="tags has-addons">
<span className="tag">Size</span> <span className="tag">Size</span>
<span className="tag is-info is-light"> <span className="tag is-info is-light">
{prettyBytes(data.fileSize)} {prettyBytes(rawFileDetails.fileSize)}
</span> </span>
</div> </div>
</div> </div>
@@ -25,12 +30,36 @@ export const RawFileDetails = (props): ReactElement => {
<div className="tags has-addons"> <div className="tags has-addons">
<span className="tag">Extension</span> <span className="tag">Extension</span>
<span className="tag is-primary is-light"> <span className="tag is-primary is-light">
{data.extension} {rawFileDetails.extension}
</span> </span>
</div> </div>
</div> </div>
</div> </div>
</dd> </dd>
{/* inferred metadata */}
<dd className="mt-3">
<dt>Inferred Issue Metadata</dt>
<div className="field is-grouped mt-2">
<div className="control">
<div className="tags has-addons">
<span className="tag">Name</span>
<span className="tag is-info is-light">
{inferredMetadata.issue.name}
</span>
</div>
</div>
{!isUndefined(inferredMetadata.issue.number) ? (
<div className="control">
<div className="tags has-addons">
<span className="tag">Number</span>
<span className="tag is-primary is-light">
{inferredMetadata.issue.number}
</span>
</div>
</div>
) : null}
</div>
</dd>
</dl> </dl>
</div> </div>
); );
@@ -40,13 +69,23 @@ export default RawFileDetails;
RawFileDetails.propTypes = { RawFileDetails.propTypes = {
data: PropTypes.shape({ data: PropTypes.shape({
containedIn: PropTypes.string, rawFileDetails: PropTypes.shape({
name: PropTypes.string, containedIn: PropTypes.string,
fileSize: PropTypes.number, name: PropTypes.string,
path: PropTypes.string, fileSize: PropTypes.number,
extension: PropTypes.string, path: PropTypes.string,
cover: PropTypes.shape({ extension: PropTypes.string,
filePath: PropTypes.string, cover: PropTypes.shape({
filePath: PropTypes.string,
}),
}),
inferredMetadata: PropTypes.shape({
issue: PropTypes.shape({
year: PropTypes.string,
name: PropTypes.string,
number: PropTypes.number,
subtitle: PropTypes.string,
}),
}), }),
}), }),
}; };

View File

@@ -69,6 +69,9 @@ export const DnD = (data) => {
<span className="icon is-small mr-2"> <span className="icon is-small mr-2">
<i className="fa-solid fa-vial"></i> <i className="fa-solid fa-vial"></i>
</span> </span>
<span className="icon is-small mr-2">
<i className="fa-solid fa-bullseye"></i>
</span>
<span className="icon is-small mr-2"> <span className="icon is-small mr-2">
<i className="fa-regular fa-trash-can"></i> <i className="fa-regular fa-trash-can"></i>
</span> </span>

View File

@@ -87,7 +87,7 @@ const VolumeDetails = (props): ReactElement => {
borderColorClass={ borderColorClass={
!isEmpty(issue.matches) ? "green-border" : "" !isEmpty(issue.matches) ? "green-border" : ""
} }
backgroundColor={!isEmpty(issue.matches) ? "#e0f5d0" : ""} backgroundColor={!isEmpty(issue.matches) ? "beige" : ""}
onClick={() => onClick={() =>
openPotentialLibraryMatchesPanel(issue.matches) openPotentialLibraryMatchesPanel(issue.matches)
} }
@@ -97,7 +97,7 @@ const VolumeDetails = (props): ReactElement => {
<span className="icon has-text-success"> <span className="icon has-text-success">
<i className="fa-regular fa-clone"></i> <i className="fa-regular fa-clone"></i>
</span> </span>
<span className="tag is-light is-warning is-size-7"> <span className="tag is-success is-size-7">
{"#" + issue.issue_number} {"#" + issue.issue_number}
</span> </span>
</> </>