Applying tag filters to URL.

This commit is contained in:
2020-05-27 01:40:10 +02:00
parent 86377fec5f
commit 88a88227c4
16 changed files with 210 additions and 96 deletions

View File

@@ -1,6 +1,6 @@
import { graphql } from '../api';
import { releaseFields } from '../fragments';
import { curateSite } from '../curate';
import { curateSite, curateRelease } from '../curate';
import getDateRange from '../get-date-range';
function initSitesActions(store, _router) {
@@ -12,7 +12,7 @@ function initSitesActions(store, _router) {
}) {
const { before, after, orderBy } = getDateRange(range);
const { site } = await graphql(`
const { site, connection: { releases, totalCount } } = await graphql(`
query Site(
$siteSlug: String!,
$limit:Int = 100,
@@ -39,7 +39,7 @@ function initSitesActions(store, _router) {
slug
url
}
releases(
releasesConnection(
filter: {
date: {
lessThan: $before,
@@ -59,9 +59,42 @@ function initSitesActions(store, _router) {
offset: $offset
orderBy: $orderBy
) {
${releaseFields}
releases: nodes {
${releaseFields}
}
totalCount
}
}
connection: releasesConnection(
first: $limit
offset: $offset
orderBy: $orderBy
filter: {
site: {
slug: {
equalTo: $siteSlug
}
}
date: {
lessThan: $before,
greaterThan: $after
}
releasesTagsConnection: {
none: {
tag: {
slug: {
in: $exclude
}
}
}
}
}
) {
releases: nodes {
${releaseFields}
}
totalCount
}
}
`, {
siteSlug,
@@ -74,7 +107,11 @@ function initSitesActions(store, _router) {
exclude: store.state.ui.filter,
});
return curateSite(site);
return {
site: curateSite(site),
releases: releases.map(release => curateRelease(release)),
totalCount,
};
}
async function fetchSites({ _commit }, { limit = 100 }) {