60 lines
1.2 KiB
TypeScript
60 lines
1.2 KiB
TypeScript
import gql from "graphql-tag";
|
|
|
|
import { TypedQuery } from "../queries";
|
|
import { PageDetails, PageDetailsVariables } from "./types/PageDetails";
|
|
import { PageList, PageListVariables } from "./types/PageList";
|
|
|
|
export const pageFragment = gql`
|
|
fragment PageFragment on Page {
|
|
id
|
|
title
|
|
slug
|
|
isPublished
|
|
}
|
|
`;
|
|
|
|
export const pageDetailsFragment = gql`
|
|
${pageFragment}
|
|
fragment PageDetailsFragment on Page {
|
|
...PageFragment
|
|
contentJson
|
|
seoTitle
|
|
seoDescription
|
|
publicationDate
|
|
}
|
|
`;
|
|
|
|
const pageList = gql`
|
|
${pageFragment}
|
|
query PageList($first: Int, $after: String, $last: Int, $before: String) {
|
|
pages(before: $before, after: $after, first: $first, last: $last) {
|
|
edges {
|
|
node {
|
|
...PageFragment
|
|
}
|
|
}
|
|
pageInfo {
|
|
hasPreviousPage
|
|
hasNextPage
|
|
startCursor
|
|
endCursor
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
export const TypedPageListQuery = TypedQuery<PageList, PageListVariables>(
|
|
pageList
|
|
);
|
|
|
|
const pageDetails = gql`
|
|
${pageDetailsFragment}
|
|
query PageDetails($id: ID!) {
|
|
page(id: $id) {
|
|
...PageDetailsFragment
|
|
}
|
|
}
|
|
`;
|
|
export const TypedPageDetailsQuery = TypedQuery<
|
|
PageDetails,
|
|
PageDetailsVariables
|
|
>(pageDetails);
|