saleor-dashboard/src/customers/queries.ts
Dawid Tarasiuk 0e054cc1e4
Saleor 2798 user addresses selection for draft order (#1082)
* Create user addresses select modal

* Prepare user addresses select modal form

* Add user addresses select modal to order draft details page

* Update draft order validation of adresses in edit modal

* Add Customer Change modal

* Update snapshots and messages

* Indication of address form errors by address type

* Refactor addresses submiting

* Refactor address transform functions

* Add data-testids to addresses change dialog

* Update customer address choice style

* Trigger CI

* Update customer addresses edit flow

* Move styles outside of component files

* Refactor after review

* Refactor after review

* Do not update customer if the same selected

* Handle setting adress after edit customer with no addresses

* Trigger CI
2021-05-06 13:38:15 +02:00

127 lines
2.6 KiB
TypeScript

import {
customerAddressesFragment,
customerDetailsFragment,
customerFragment
} from "@saleor/fragments/customers";
import makeQuery from "@saleor/hooks/makeQuery";
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
$filter: CustomerFilterInput
$sort: UserSortingInput
) {
customers(
after: $after
before: $before
first: $first
last: $last
filter: $filter
sortBy: $sort
) {
edges {
node {
...CustomerFragment
orders {
totalCount
}
}
}
pageInfo {
endCursor
hasNextPage
hasPreviousPage
startCursor
}
}
}
`;
export const useCustomerListQuery = makeQuery<
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);
const customerCreateData = gql`
query CustomerCreateData {
shop {
countries {
code
country
}
}
}
`;
export const TypedCustomerCreateDataQuery = TypedQuery<CustomerCreateData, {}>(
customerCreateData
);