🔧 Fixed a bad state and got metadata tab groups working

This commit is contained in:
2021-08-09 16:02:34 -07:00
parent 2a2d996d54
commit 3c8a330336
3 changed files with 69 additions and 53 deletions

View File

@@ -163,7 +163,7 @@ export const fetchComicVineMatches = (searchPayload) => (dispatch) => {
console.log(error); console.log(error);
} }
// dispatch({ dispatch({
// type: CV_CLEANUP, type: CV_CLEANUP,
// }); });
}; };

View File

@@ -60,66 +60,82 @@ export const ComicDetail = ({}: ComicDetailProps): ReactElement => {
setVisible(false); setVisible(false);
}; };
const tabs = ["Volume Information", "Other Metadata", "Acquistion Details"]; const [active, setActive] = useState(0);
const [active, setActive] = useState({ currentTab: tabs[0], markup: <></> }); const tabGroup = [
const renderTabContent = (tab, data) => { {
switch (tab) { id: 0,
case "Volume Information": name: "Volume Information",
setActive({ content: !isNil(comicBookDetailData.sourcedMetadata) && (
currentTab: tab, <div className="columns">
markup: ( <div className="column is-narrow">
<div className="columns"> <figure className="card-image">
<div className="column is-narrow"> <img
<figure className="card-image"> src={
<img comicBookDetailData.sourcedMetadata.comicvine
src={ .volumeInformation.image.thumb_url
data.data.sourcedMetadata.comicvine.volumeInformation }
.image.thumb_url />
} </figure>
/> </div>
</figure> <div className="column is-4">
</div> <dl>
<div className="column is-2"> <dt>
<dl> Is a part of{" "}
<dt> <span className="has-text-info">
{data.data.sourcedMetadata.comicvine.volumeInformation.name} {
</dt> comicBookDetailData.sourcedMetadata.comicvine
<dd> .volumeInformation.name
Published by }
<span className="has-text-weight-semibold"> </span>
{" "} </dt>
{ <dd>
data.data.sourcedMetadata.comicvine.volumeInformation Published by
.publisher.name <span className="has-text-weight-semibold">
} {" "}
</span> {
</dd> comicBookDetailData.sourcedMetadata.comicvine
</dl> .volumeInformation.publisher.name
</div> }
</div> </span>
), </dd>
}); <dd>
break; Total issues in this volume:{" "}
} {
}; comicBookDetailData.sourcedMetadata.comicvine
const MetadataTabGroup = (data) => { .volumeInformation.count_of_issues
}
</dd>
</dl>
</div>
</div>
),
},
{
id: 1,
name: "Other Metadata",
content: <>bastard</>,
},
];
const MetadataTabGroup = () => {
return ( return (
<> <>
<div className="tabs"> <div className="tabs">
<ul> <ul>
{tabs.map((tab, idx) => ( {tabGroup.map((tab, idx) => (
<li <li
key={idx} key={idx}
className={tab === active.currentTab ? "is-active" : ""} className={tab.id === active ? "is-active" : ""}
onClick={() => renderTabContent(tab, data)} onClick={() => setActive(idx)}
> >
<a>{tab}</a> <a>{tab.name}</a>
</li> </li>
))} ))}
</ul> </ul>
</div> </div>
{active.markup} {tabGroup.map(({ id, content }) => {
return active === id ? content : null;
})}
</> </>
); );
}; };
@@ -216,7 +232,7 @@ export const ComicDetail = ({}: ComicDetailProps): ReactElement => {
</div> </div>
</div> </div>
<MetadataTabGroup data={comicBookDetailData} /> <MetadataTabGroup />
<Drawer <Drawer
title="ComicVine Search Results" title="ComicVine Search Results"

View File

@@ -42,9 +42,9 @@ function comicinfoReducer(state = initialState, action) {
}; };
case CV_CLEANUP: case CV_CLEANUP:
return { return {
...state,
searchResults: [], searchResults: [],
searchQuery: {}, searchQuery: {},
comicBookDetail: {},
}; };
default: default:
return state; return state;