saleor-dashboard/src/customers/queries.ts

128 lines
2.6 KiB
TypeScript
Raw Normal View History

import {
customerAddressesFragment,
customerDetailsFragment,
customerFragment
} from "@saleor/fragments/customers";
import makeQuery from "@saleor/hooks/makeQuery";
2019-06-19 14:40:52 +00:00
import gql from "graphql-tag";
import { TypedQuery } from "../queries";
import {
CustomerAddresses,
CustomerAddressesVariables
} from "./types/CustomerAddresses";
import { CustomerCreateData } from "./types/CustomerCreateData";
import {
CustomerDetails,
CustomerDetailsVariables
} from "./types/CustomerDetails";
import { ListCustomers, ListCustomersVariables } from "./types/ListCustomers";
const customerList = gql`
${customerFragment}
query ListCustomers(
$after: String
$before: String
$first: Int
$last: Int
2019-09-11 14:39:52 +00:00
$filter: CustomerFilterInput
2019-12-17 17:13:56 +00:00
$sort: UserSortingInput
2019-06-19 14:40:52 +00:00
) {
2019-09-11 14:39:52 +00:00
customers(
after: $after
before: $before
first: $first
last: $last
filter: $filter
2019-12-17 17:13:56 +00:00
sortBy: $sort
2019-09-11 14:39:52 +00:00
) {
2019-06-19 14:40:52 +00:00
edges {
node {
...CustomerFragment
orders {
totalCount
}
}
}
pageInfo {
endCursor
hasNextPage
hasPreviousPage
startCursor
}
}
}
`;
2019-12-17 17:13:56 +00:00
export const useCustomerListQuery = makeQuery<
2019-06-19 14:40:52 +00:00
ListCustomers,
ListCustomersVariables
>(customerList);
const customerDetails = gql`
${customerDetailsFragment}
query CustomerDetails($id: ID!) {
user(id: $id) {
...CustomerDetailsFragment
orders(last: 5) {
edges {
node {
id
created
number
paymentStatus
total {
gross {
currency
amount
}
}
}
}
}
lastPlacedOrder: orders(last: 1) {
edges {
node {
id
created
}
}
}
}
}
`;
export const TypedCustomerDetailsQuery = TypedQuery<
CustomerDetails,
CustomerDetailsVariables
>(customerDetails);
const customerAddresses = gql`
${customerAddressesFragment}
query CustomerAddresses($id: ID!) {
user(id: $id) {
...CustomerAddressesFragment
}
}
`;
export const TypedCustomerAddressesQuery = TypedQuery<
CustomerAddresses,
CustomerAddressesVariables
>(customerAddresses);
export const useCustomerAddressesQuery = makeQuery<
CustomerAddresses,
CustomerAddressesVariables
>(customerAddresses);
2019-06-19 14:40:52 +00:00
const customerCreateData = gql`
query CustomerCreateData {
shop {
countries {
code
country
}
}
}
`;
export const TypedCustomerCreateDataQuery = TypedQuery<CustomerCreateData, {}>(
customerCreateData
);