🔧 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,
markup: (
<div className="columns"> <div className="columns">
<div className="column is-narrow"> <div className="column is-narrow">
<figure className="card-image"> <figure className="card-image">
<img <img
src={ src={
data.data.sourcedMetadata.comicvine.volumeInformation comicBookDetailData.sourcedMetadata.comicvine
.image.thumb_url .volumeInformation.image.thumb_url
} }
/> />
</figure> </figure>
</div> </div>
<div className="column is-2"> <div className="column is-4">
<dl> <dl>
<dt> <dt>
{data.data.sourcedMetadata.comicvine.volumeInformation.name} Is a part of{" "}
<span className="has-text-info">
{
comicBookDetailData.sourcedMetadata.comicvine
.volumeInformation.name
}
</span>
</dt> </dt>
<dd> <dd>
Published by Published by
<span className="has-text-weight-semibold"> <span className="has-text-weight-semibold">
{" "} {" "}
{ {
data.data.sourcedMetadata.comicvine.volumeInformation comicBookDetailData.sourcedMetadata.comicvine
.publisher.name .volumeInformation.publisher.name
} }
</span> </span>
</dd> </dd>
<dd>
Total issues in this volume:{" "}
{
comicBookDetailData.sourcedMetadata.comicvine
.volumeInformation.count_of_issues
}
</dd>
</dl> </dl>
</div> </div>
</div> </div>
), ),
}); },
break; {
} id: 1,
}; name: "Other Metadata",
const MetadataTabGroup = (data) => { 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;