Update tag pages

Improve speed, move all of the querying to node
This commit is contained in:
Angelos Chalaris
2019-09-16 23:38:26 +03:00
parent f39cba0ce0
commit 75c4b3321b
3 changed files with 22 additions and 39 deletions

View File

@ -115,13 +115,12 @@ const ShortCard = ({
<div className='card short'>
<CardCorner difficulty={difficulty} />
<h4 className='card-title'>
{snippetData.title}
</h4>
<div
className='card-description'
dangerouslySetInnerHTML={{
__html: `${getTextualContent(snippetData.html, true)}`,
__html: snippetData.html,
}}
/>
</div>

View File

@ -13,8 +13,8 @@ import { capitalize, getRawCodeBlocks as getCodeBlocks } from '../util';
// Individual snippet category/tag page
// ===================================================
const TagRoute = props => {
const posts = props.data.allMarkdownRemark.edges;
const tag = props.pageContext.tag;
const snippets = props.pageContext.snippets;
React.useEffect(() => {
props.dispatch(pushNewPage(capitalize(tag), props.path));
@ -26,16 +26,16 @@ const TagRoute = props => {
<Shell>
<h2 className='page-title'>{capitalize(tag)}</h2>
<p className='light-sub'>Click on a snippet card to view the snippet.</p>
{posts &&
posts.map(({ node }) => (
{snippets &&
snippets.map(snippet => (
<SnippetCard
key={`snippet_${node.id}`}
key={`snippet_${snippet.id}`}
short
snippetData={{
title: node.frontmatter.title,
html: node.html,
tags: node.frontmatter.tags.split(',').map(v => v.trim()),
id: node.fields.slug.slice(1),
title: snippet.title,
html: snippet.html,
tags: snippet.tags,
id: snippet.id,
}}
isDarkMode={props.isDarkMode}
/>
@ -54,28 +54,3 @@ export default connect(
}),
null,
)(TagRoute);
export const tagPageQuery = graphql`
query TagPage($tagRegex: String) {
allMarkdownRemark(
limit: 1000
sort: { fields: [frontmatter___title], order: ASC }
filter: { fileAbsolutePath: { regex: "/snippets(?!_archive)/" }, frontmatter: { tags: { regex: $tagRegex } } }
) {
totalCount
edges {
node {
id
html
fields {
slug
}
frontmatter {
title
tags
}
}
}
}
}
`;