saleor-dashboard/src/categories/queries.ts

129 lines
2.4 KiB
TypeScript
Raw Normal View History

2019-06-19 14:40:52 +00:00
import gql from "graphql-tag";
2019-11-14 14:37:32 +00:00
import makeQuery from "@saleor/hooks/makeQuery";
import { pageInfoFragment } from "../queries";
2019-06-19 14:40:52 +00:00
import {
CategoryDetails,
CategoryDetailsVariables
} from "./types/CategoryDetails";
import { RootCategories } from "./types/RootCategories";
2019-09-11 12:59:41 +00:00
export const categoryFragment = gql`
fragment CategoryFragment on Category {
id
name
children {
totalCount
}
products {
totalCount
}
}
`;
2019-06-19 14:40:52 +00:00
export const categoryDetailsFragment = gql`
fragment CategoryDetailsFragment on Category {
id
backgroundImage {
alt
url
}
name
descriptionJson
seoDescription
seoTitle
parent {
id
}
}
`;
export const rootCategories = gql`
2019-09-11 12:59:41 +00:00
${categoryFragment}
${pageInfoFragment}
2019-06-19 14:40:52 +00:00
query RootCategories(
$first: Int
$after: String
$last: Int
$before: String
2019-09-11 12:59:41 +00:00
$filter: CategoryFilterInput
2019-12-17 17:13:56 +00:00
$sort: CategorySortingInput
2019-06-19 14:40:52 +00:00
) {
categories(
level: 0
first: $first
after: $after
last: $last
before: $before
2019-09-11 12:59:41 +00:00
filter: $filter
2019-12-17 17:13:56 +00:00
sortBy: $sort
2019-06-19 14:40:52 +00:00
) {
edges {
node {
2019-09-11 12:59:41 +00:00
...CategoryFragment
2019-06-19 14:40:52 +00:00
}
}
pageInfo {
...PageInfoFragment
2019-06-19 14:40:52 +00:00
}
}
}
`;
2019-11-14 14:37:32 +00:00
export const useRootCategoriesQuery = makeQuery<RootCategories, {}>(
2019-06-19 14:40:52 +00:00
rootCategories
);
export const categoryDetails = gql`
2019-09-11 12:59:41 +00:00
${categoryFragment}
2019-06-19 14:40:52 +00:00
${categoryDetailsFragment}
${pageInfoFragment}
2019-06-19 14:40:52 +00:00
query CategoryDetails(
$id: ID!
$first: Int
$after: String
$last: Int
$before: String
) {
category(id: $id) {
...CategoryDetailsFragment
children(first: $first, after: $after, last: $last, before: $before) {
2019-06-19 14:40:52 +00:00
edges {
node {
2019-09-11 12:59:41 +00:00
...CategoryFragment
2019-06-19 14:40:52 +00:00
}
}
pageInfo {
...PageInfoFragment
}
2019-06-19 14:40:52 +00:00
}
products(first: $first, after: $after, last: $last, before: $before) {
pageInfo {
...PageInfoFragment
2019-06-19 14:40:52 +00:00
}
edges {
cursor
node {
id
name
basePrice {
amount
currency
}
isAvailable
thumbnail {
url
}
productType {
id
name
}
}
}
}
}
}
`;
2019-11-14 14:37:32 +00:00
export const useCategoryDetailsQuery = makeQuery<
2019-06-19 14:40:52 +00:00
CategoryDetails,
CategoryDetailsVariables
>(categoryDetails);