All files / src/contexts/cartContext types.tsx

0% Statements 0/0
0% Branches 0/0
0% Functions 0/0
0% Lines 0/0

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86                                                                                                                                                                           
export type CartItem = {
  id: number;
  quantity: number;
  product?: any;
}
 
export type CartAddressInput = {
  firstname: string;
  lastname: string;
  company?: string;
  street: string[];
  city: string;
  region?: string;
  region_id?: number;
  postcode?: string;
  country_code: string;
  telephone?: string;
  save_in_address_book?: boolean;
}
 
export type Country = {
  code: string;
  label: string;
}
 
export type Region = {
  code?: string;
  label?: string;
  region_id?: number;
}
 
export type CartAddress = {
  firstname: string;
  lastname: string;
  company?: string;
  street: string[];
  city: string;
  region?: Region;
  postcode?: string;
  country: Country;
  telephone?: string;
}
 
export type PaymentMethod = {
  code: string;
  title?: string;
}
 
export type CartSummary = {
  items: CartItem[];
  prices: {
    grand_total: {
      value: number;
    }
  },
  billing_address: null | CartAddress,
  available_payment_methods: PaymentMethod[],
  selected_payment_method: null | PaymentMethod,
  applied_coupons: { code: string }[]
}
 
export interface Position extends CartItem {
  strapiProduct: any;
}
 
export type CartContextType = {
  cartId: null | string;
  positions: Position[];
  totalPrice: number;
  address: null | CartAddress;
  paymentMethods: PaymentMethod[];
  selectedPaymentMethod: null | PaymentMethod;
  loading: boolean;
  add: (productId: string, quantity: number) => any;
  update: (positionId: number, quantity: number) => any;
  remove: (positionId: number) => any;
  setAddress: (address: CartAddressInput) => void;
  setPayment: (code: string) => void;
  applyCoupon: (code: string) => any;
  removeCoupon: () => any;
  coupons: { code: string }[];
  createOrder: () => any;
  orderId: null | string;
  removeOrderId: () => void;
  placeOrderLoading: boolean;
};