multiple changes to fix the wishlist

This commit is contained in:
Luis Alvarez
2021-02-26 21:35:09 -05:00
parent 3acca7cc17
commit 751011767a
8 changed files with 19 additions and 17 deletions

View File

@@ -1,6 +1,11 @@
import type { ItemBody as WishlistItemBody } from '../wishlist'
import type { CartItemBody, OptionSelections } from '../../types'
type BCWishlistItemBody = {
product_id: number
variant_id: number
}
type BCCartItemBody = {
product_id: number
variant_id: number
@@ -8,9 +13,11 @@ type BCCartItemBody = {
option_selections?: OptionSelections
}
export const parseWishlistItem = (item: WishlistItemBody) => ({
product_id: item.productId,
variant_id: item.variantId,
export const parseWishlistItem = (
item: WishlistItemBody
): BCWishlistItemBody => ({
product_id: Number(item.productId),
variant_id: Number(item.variantId),
})
export const parseCartItem = (item: CartItemBody): BCCartItemBody => ({

View File

@@ -68,14 +68,15 @@ async function getCustomerWishlist({
const productsById = graphqlData.products.reduce<{
[k: number]: ProductEdge
}>((prods, p) => {
prods[Number(p.node.entityId)] = p as any
prods[Number(p.id)] = p as any
return prods
}, {})
// Populate the wishlist items with the graphql products
wishlist.items.forEach((item) => {
const product = item && productsById[item.product_id!]
if (item && product) {
item.product = product.node
// @ts-ignore Fix this type when the wishlist type is properly defined
item.product = product
}
})
}

View File

@@ -18,7 +18,7 @@ export const handler: SWRHook<
url: '/api/bigcommerce/wishlist',
method: 'GET',
},
fetcher({ input: { customerId, includeProducts }, options, fetch }) {
async fetcher({ input: { customerId, includeProducts }, options, fetch }) {
if (!customerId) return null
// Use a dummy base as we only care about the relative path
@@ -35,7 +35,7 @@ export const handler: SWRHook<
const { data: customer } = useCustomer()
const response = useData({
input: [
['customerId', (customer as any)?.id],
['customerId', customer?.entityId],
['includeProducts', input?.includeProducts],
],
swrOptions: {

View File

@@ -8,7 +8,6 @@ import {
} from '../const'
if (!API_URL) {
console.log(process.env)
throw new Error(
`The environment variable NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN is missing and it's required to access your store`
)