From 2804627aefdd752923ca721d31717627a277f5b6 Mon Sep 17 00:00:00 2001 From: Luis Alvarez Date: Wed, 21 Oct 2020 10:35:49 -0500 Subject: [PATCH] Updated defaults in all hooks --- lib/bigcommerce/cart/use-add-item.tsx | 4 ++-- lib/bigcommerce/cart/use-cart.tsx | 3 ++- lib/bigcommerce/cart/use-remove-item.tsx | 4 ++-- lib/bigcommerce/cart/use-update-item.tsx | 4 ++-- lib/bigcommerce/use-customer.tsx | 3 ++- lib/bigcommerce/use-login.tsx | 4 ++-- lib/bigcommerce/use-signup.tsx | 4 ++-- lib/bigcommerce/wishlist/use-add-item.tsx | 4 ++-- lib/bigcommerce/wishlist/use-remove-item.tsx | 4 ++-- lib/bigcommerce/wishlist/use-wishlist.tsx | 4 +++- lib/commerce/utils/use-data.tsx | 13 ++++++++++--- 11 files changed, 31 insertions(+), 20 deletions(-) diff --git a/lib/bigcommerce/cart/use-add-item.tsx b/lib/bigcommerce/cart/use-add-item.tsx index a18a7b651..fa8bb8b46 100644 --- a/lib/bigcommerce/cart/use-add-item.tsx +++ b/lib/bigcommerce/cart/use-add-item.tsx @@ -26,8 +26,8 @@ export const fetcher: HookFetcher = ( } return fetch({ - url: options?.url ?? defaultOpts.url, - method: options?.method ?? defaultOpts.method, + ...defaultOpts, + ...options, body: { item }, }) } diff --git a/lib/bigcommerce/cart/use-cart.tsx b/lib/bigcommerce/cart/use-cart.tsx index 38d1d8bac..7ed6ba7d8 100644 --- a/lib/bigcommerce/cart/use-cart.tsx +++ b/lib/bigcommerce/cart/use-cart.tsx @@ -5,6 +5,7 @@ import type { Cart } from '../api/cart' const defaultOpts = { url: '/api/bigcommerce/cart', + method: 'GET', } export type { Cart } @@ -14,7 +15,7 @@ export const fetcher: HookFetcher = ( { cartId }, fetch ) => { - return cartId ? fetch({ ...options }) : null + return cartId ? fetch({ ...defaultOpts, ...options }) : null } export function extendHook( diff --git a/lib/bigcommerce/cart/use-remove-item.tsx b/lib/bigcommerce/cart/use-remove-item.tsx index 386462c7f..c07aa718e 100644 --- a/lib/bigcommerce/cart/use-remove-item.tsx +++ b/lib/bigcommerce/cart/use-remove-item.tsx @@ -19,8 +19,8 @@ export const fetcher: HookFetcher = ( fetch ) => { return fetch({ - url: options?.url ?? defaultOpts.url, - method: options?.method ?? defaultOpts.method, + ...defaultOpts, + ...options, body: { itemId }, }) } diff --git a/lib/bigcommerce/cart/use-update-item.tsx b/lib/bigcommerce/cart/use-update-item.tsx index 78dd1bb84..bcad7ab3a 100644 --- a/lib/bigcommerce/cart/use-update-item.tsx +++ b/lib/bigcommerce/cart/use-update-item.tsx @@ -28,8 +28,8 @@ export const fetcher: HookFetcher = ( } return fetch({ - url: options?.url ?? defaultOpts.url, - method: options?.method ?? defaultOpts.method, + ...defaultOpts, + ...options, body: { itemId, item }, }) } diff --git a/lib/bigcommerce/use-customer.tsx b/lib/bigcommerce/use-customer.tsx index 273e4c871..549fd3fa1 100644 --- a/lib/bigcommerce/use-customer.tsx +++ b/lib/bigcommerce/use-customer.tsx @@ -5,6 +5,7 @@ import type { Customer, CustomerData } from './api/customers' const defaultOpts = { url: '/api/bigcommerce/customer', + method: 'GET', } export type { Customer } @@ -14,7 +15,7 @@ export const fetcher: HookFetcher = ( { cartId }, fetch ) => { - return cartId ? fetch({ ...options }) : null + return cartId ? fetch({ ...defaultOpts, ...options }) : null } export function extendHook( diff --git a/lib/bigcommerce/use-login.tsx b/lib/bigcommerce/use-login.tsx index 37d59a79c..d2b86a827 100644 --- a/lib/bigcommerce/use-login.tsx +++ b/lib/bigcommerce/use-login.tsx @@ -22,8 +22,8 @@ export const fetcher: HookFetcher = ( } return fetch({ - url: options?.url ?? defaultOpts.url, - method: options?.method ?? defaultOpts.method, + ...defaultOpts, + ...options, body: { email, password }, }) } diff --git a/lib/bigcommerce/use-signup.tsx b/lib/bigcommerce/use-signup.tsx index e97594864..68183aa6c 100644 --- a/lib/bigcommerce/use-signup.tsx +++ b/lib/bigcommerce/use-signup.tsx @@ -22,8 +22,8 @@ export const fetcher: HookFetcher = ( } return fetch({ - url: options?.url ?? defaultOpts.url, - method: options?.method ?? defaultOpts.method, + ...defaultOpts, + ...options, body: { firstName, lastName, email, password }, }) } diff --git a/lib/bigcommerce/wishlist/use-add-item.tsx b/lib/bigcommerce/wishlist/use-add-item.tsx index 862041bbd..9bbbe009e 100644 --- a/lib/bigcommerce/wishlist/use-add-item.tsx +++ b/lib/bigcommerce/wishlist/use-add-item.tsx @@ -17,8 +17,8 @@ export const fetcher: HookFetcher = ( fetch ) => { return fetch({ - url: options?.url ?? defaultOpts.url, - method: options?.method ?? defaultOpts.method, + ...defaultOpts, + ...options, body: { wishlistId, item }, }) } diff --git a/lib/bigcommerce/wishlist/use-remove-item.tsx b/lib/bigcommerce/wishlist/use-remove-item.tsx index ca9648d35..05f9744cb 100644 --- a/lib/bigcommerce/wishlist/use-remove-item.tsx +++ b/lib/bigcommerce/wishlist/use-remove-item.tsx @@ -19,8 +19,8 @@ export const fetcher: HookFetcher = ( fetch ) => { return fetch({ - url: options?.url ?? defaultOpts.url, - method: options?.method ?? defaultOpts.method, + ...defaultOpts, + ...options, body: { wishlistId, itemId }, }) } diff --git a/lib/bigcommerce/wishlist/use-wishlist.tsx b/lib/bigcommerce/wishlist/use-wishlist.tsx index 1d93609f0..d60660c05 100644 --- a/lib/bigcommerce/wishlist/use-wishlist.tsx +++ b/lib/bigcommerce/wishlist/use-wishlist.tsx @@ -4,6 +4,7 @@ import type { Wishlist } from '../api/wishlist' const defaultOpts = { url: '/api/bigcommerce/wishlists', + method: 'GET', } export type { Wishlist } @@ -18,7 +19,8 @@ export const fetcher: HookFetcher = ( fetch ) => { return fetch({ - url: options?.url, + ...defaultOpts, + ...options, body: { wishlistId }, }) } diff --git a/lib/commerce/utils/use-data.tsx b/lib/commerce/utils/use-data.tsx index 513bec7bc..c8e31657f 100644 --- a/lib/commerce/utils/use-data.tsx +++ b/lib/commerce/utils/use-data.tsx @@ -9,9 +9,14 @@ export default function useData( swrOptions?: ConfigInterface ) { const { fetcherRef } = useCommerce() - const fetcher = (url?: string, query?: string, ...args: any[]) => { + const fetcher = ( + url?: string, + query?: string, + method?: string, + ...args: any[] + ) => { return fetcherFn( - { url, query }, + { url, query, method }, // Transform the input array into an object args.reduce((obj, val, i) => { obj[input[i][0]!] = val @@ -24,7 +29,9 @@ export default function useData( const response = useSWR( () => { const opts = typeof options === 'function' ? options() : options - return opts ? [opts.url, opts.query, ...input.map((e) => e[1])] : null + return opts + ? [opts.url, opts.query, opts.method, ...input.map((e) => e[1])] + : null }, fetcher, swrOptions