mirror of
https://github.com/vercel/commerce.git
synced 2025-07-22 20:26:49 +00:00
Vendure provider (#223)
* Minimal list/detail views working with Vendure * Implement useCart/useAddItem * Implement useUpdateItem & useRemoveItem * Implement useSearch * Add operations codegen, tidy up * Dummy checkout page * Implement auth/customer hooks * Use env var for Shop API url * Add some documentation * Improve error handling * Optimize preview image size * Fix accidental change * Update Vendure provider to latest changes * Vendure provider: split out gql operations, remove unused files * Update Vendure provider readme * Add local next.config to Vendure provider, update docs * Update to use demo server * Fix build errors * Use proxy for vendure api * Simplify instructions in Vendure readme * Refactor Vendure checkout api handler * Improve image quality
This commit is contained in:
18
framework/vendure/customer/get-customer-wishlist.ts
Normal file
18
framework/vendure/customer/get-customer-wishlist.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
import { getConfig, VendureConfig } from '../api'
|
||||
|
||||
async function getCustomerWishlist({
|
||||
config,
|
||||
variables,
|
||||
includeProducts,
|
||||
}: {
|
||||
url?: string
|
||||
variables: any
|
||||
config?: VendureConfig
|
||||
includeProducts?: boolean
|
||||
}): Promise<any> {
|
||||
// Not implemented as Vendure does not ship with wishlist functionality at present
|
||||
config = getConfig(config)
|
||||
return { wishlist: {} }
|
||||
}
|
||||
|
||||
export default getCustomerWishlist
|
1
framework/vendure/customer/index.ts
Normal file
1
framework/vendure/customer/index.ts
Normal file
@@ -0,0 +1 @@
|
||||
export { default as useCustomer } from './use-customer'
|
33
framework/vendure/customer/use-customer.tsx
Normal file
33
framework/vendure/customer/use-customer.tsx
Normal file
@@ -0,0 +1,33 @@
|
||||
import { SWRHook } from '@commerce/utils/types'
|
||||
import useCustomer, { UseCustomer } from '@commerce/customer/use-customer'
|
||||
import { Customer } from '@commerce/types'
|
||||
import { ActiveCustomerQuery } from '../schema'
|
||||
import { activeCustomerQuery } from '../lib/queries/active-customer-query'
|
||||
|
||||
export default useCustomer as UseCustomer<typeof handler>
|
||||
|
||||
export const handler: SWRHook<Customer | null> = {
|
||||
fetchOptions: {
|
||||
query: activeCustomerQuery,
|
||||
},
|
||||
async fetcher({ options, fetch }) {
|
||||
const { activeCustomer } = await fetch<ActiveCustomerQuery>({
|
||||
...options,
|
||||
})
|
||||
return activeCustomer
|
||||
? ({
|
||||
firstName: activeCustomer.firstName ?? '',
|
||||
lastName: activeCustomer.lastName ?? '',
|
||||
email: activeCustomer.emailAddress ?? '',
|
||||
} as any)
|
||||
: null
|
||||
},
|
||||
useHook: ({ useData }) => (input) => {
|
||||
return useData({
|
||||
swrOptions: {
|
||||
revalidateOnFocus: false,
|
||||
...input?.swrOptions,
|
||||
},
|
||||
})
|
||||
},
|
||||
}
|
Reference in New Issue
Block a user