Empty SWRhooks

This commit is contained in:
Bel Curcio 2021-06-10 17:27:50 -03:00
parent dd28712e51
commit 5ce1ee7aba
11 changed files with 172 additions and 131 deletions

View File

@ -165,15 +165,13 @@ export type AddItemHandler<T extends CartTypes = CartTypes> = AddItemHook<T> & {
body: { cartId: string } body: { cartId: string }
} }
export type UpdateItemHandler< export type UpdateItemHandler<T extends CartTypes = CartTypes> =
T extends CartTypes = CartTypes UpdateItemHook<T> & {
> = UpdateItemHook<T> & { data: T['cart']
data: T['cart'] body: { cartId: string }
body: { cartId: string } }
}
export type RemoveItemHandler< export type RemoveItemHandler<T extends CartTypes = CartTypes> =
T extends CartTypes = CartTypes RemoveItemHook<T> & {
> = RemoveItemHook<T> & { body: { cartId: string }
body: { cartId: string } }
}

View File

@ -1,15 +1,16 @@
import { useCallback } from 'react' import { MutationHook } from '@commerce/utils/types'
import useLogin, { UseLogin } from '@commerce/auth/use-login'
export function emptyHook() { export default useLogin as UseLogin<typeof handler>
const useEmptyHook = async (options = {}) => {
return useCallback(async function () {
return Promise.resolve()
}, [])
}
return useEmptyHook export const handler: MutationHook<any> = {
fetchOptions: {
query: '',
},
async fetcher() {
return null
},
useHook: () => () => {
return async function () {}
},
} }
export const handler = {}
export default emptyHook

View File

@ -1,15 +1,17 @@
import { useCallback } from 'react' import { MutationHook } from '@commerce/utils/types'
import useLogout, { UseLogout } from '@commerce/auth/use-logout'
export function emptyHook() { export default useLogout as UseLogout<typeof handler>
const useEmptyHook = async (options = {}) => {
return useCallback(async function () {
return Promise.resolve()
}, [])
}
return useEmptyHook export const handler: MutationHook<any> = {
fetchOptions: {
query: '',
},
async fetcher() {
return null
},
useHook:
({ fetch }) =>
() =>
async () => {},
} }
export const handler = {}
export default emptyHook

View File

@ -1,15 +1,19 @@
import { useCallback } from 'react' import { useCallback } from 'react'
import useCustomer from '../customer/use-customer'
import { MutationHook } from '@commerce/utils/types'
import useSignup, { UseSignup } from '@commerce/auth/use-signup'
export function emptyHook() { export default useSignup as UseSignup<typeof handler>
const useEmptyHook = async (options = {}) => {
return useCallback(async function () {
return Promise.resolve()
}, [])
}
return useEmptyHook export const handler: MutationHook<any> = {
fetchOptions: {
query: '',
},
async fetcher() {
return null
},
useHook:
({ fetch }) =>
() =>
() => {},
} }
export const handler = {}
export default emptyHook

View File

@ -1,15 +1,17 @@
import { useCallback } from 'react' import useAddItem, { UseAddItem } from '@commerce/cart/use-add-item'
import { MutationHook } from '@commerce/utils/types'
export function emptyHook() { export default useAddItem as UseAddItem<typeof handler>
const useEmptyHook = async (options = {}) => { export const handler: MutationHook<any> = {
return useCallback(async function () { fetchOptions: {
return Promise.resolve() query: '',
}, []) },
} async fetcher({ input, options, fetch }) {},
useHook:
return useEmptyHook ({ fetch }) =>
() => {
return async function addItem() {
return {}
}
},
} }
export const handler = {}
export default emptyHook

View File

@ -1,15 +1,42 @@
import { useCallback } from 'react' import { useMemo } from 'react'
import { SWRHook } from '@commerce/utils/types'
import useCart, { UseCart } from '@commerce/cart/use-cart'
export function emptyHook() { export default useCart as UseCart<typeof handler>
const useEmptyHook = async (options = {}) => {
return useCallback(async function () {
return Promise.resolve()
}, [])
}
return useEmptyHook export const handler: SWRHook<any> = {
fetchOptions: {
query: '',
},
async fetcher() {
return {
id: '',
createdAt: '',
currency: { code: '' },
taxesIncluded: '',
lineItems: [],
lineItemsSubtotalPrice: '',
subtotalPrice: 0,
totalPrice: 0,
}
},
useHook:
({ useData }) =>
(input) => {
return useMemo(
() =>
Object.create(
{},
{
isEmpty: {
get() {
return true
},
enumerable: true,
},
}
),
[]
)
},
} }
export const handler = {}
export default emptyHook

View File

@ -1,15 +1,18 @@
import { useCallback } from 'react' import { MutationHook } from '@commerce/utils/types'
import useRemoveItem, { UseRemoveItem } from '@commerce/cart/use-remove-item'
export function emptyHook() { export default useRemoveItem as UseRemoveItem<typeof handler>
const useEmptyHook = async (options = {}) => {
return useCallback(async function () {
return Promise.resolve()
}, [])
}
return useEmptyHook export const handler: MutationHook<any> = {
fetchOptions: {
query: '',
},
async fetcher({ input, options, fetch }) {},
useHook:
({ fetch }) =>
() => {
return async function removeItem(input) {
return {}
}
},
} }
export const handler = {}
export default emptyHook

View File

@ -1,15 +1,18 @@
import { useCallback } from 'react' import { MutationHook } from '@commerce/utils/types'
import useUpdateItem, { UseUpdateItem } from '@commerce/cart/use-update-item'
export function emptyHook() { export default useUpdateItem as UseUpdateItem<any>
const useEmptyHook = async (options = {}) => {
return useCallback(async function () {
return Promise.resolve()
}, [])
}
return useEmptyHook export const handler: MutationHook<any> = {
fetchOptions: {
query: '',
},
async fetcher({ input, options, fetch }) {},
useHook:
({ fetch }) =>
() => {
return async function addItem() {
return {}
}
},
} }
export const handler = {}
export default emptyHook

View File

@ -1,14 +1,15 @@
import { useCallback } from 'react' import { SWRHook } from '@commerce/utils/types'
import useCustomer, { UseCustomer } from '@commerce/customer/use-customer'
export function emptyHook() { export default useCustomer as UseCustomer<typeof handler>
const useEmptyHook = async (options = {}) => { export const handler: SWRHook<any> = {
return useCallback(async function () { fetchOptions: {
return Promise.resolve() query: '',
}, []) },
} async fetcher({ input, options, fetch }) {},
useHook: () => () => {
return useEmptyHook return async function addItem() {
return {}
}
},
} }
export const handler = {}
export default emptyHook

View File

@ -1,15 +1,13 @@
import { useCallback } from 'react' import { SWRHook } from '@commerce/utils/types'
import useSearch, { UseSearch } from '@commerce/product/use-search'
export default useSearch as UseSearch<typeof handler>
export function emptyHook() { export const handler: SWRHook<any> = {
const useEmptyHook = async (options = {}) => { fetchOptions: {
return useCallback(async function () { query: '',
return Promise.resolve() },
}, []) async fetcher({ input, options, fetch }) {},
} useHook: () => () => {
return {}
return useEmptyHook },
} }
export const handler = {}
export default emptyHook

View File

@ -18,16 +18,18 @@ export const handler: MutationHook<LogoutHook> = {
}) })
return null return null
}, },
useHook: ({ fetch }) => () => { useHook:
const { mutate } = useCustomer() ({ fetch }) =>
() => {
const { mutate } = useCustomer()
return useCallback( return useCallback(
async function logout() { async function logout() {
const data = await fetch() const data = await fetch()
await mutate(null, false) await mutate(null, false)
return data return data
}, },
[fetch, mutate] [fetch, mutate]
) )
}, },
} }