mirror of
https://github.com/vercel/commerce.git
synced 2025-07-22 20:26:49 +00:00
.vscode
assets
components
config
framework
bigcommerce
commerce
commercejs
api
auth
cart
checkout
index.ts
use-checkout.tsx
use-submit-checkout.tsx
customer
lib
product
types
utils
wishlist
.env.template
README.md
commerce.config.json
constants.ts
fetcher.ts
index.tsx
next.config.js
provider.ts
kibocommerce
local
ordercloud
saleor
shopify
spree
swell
vendure
lib
pages
public
.editorconfig
.env.template
.eslintrc
.gitignore
.prettierignore
.prettierrc
README.md
codegen.bigcommerce.json
codegen.json
commerce.config.json
global.d.ts
license.md
next-env.d.ts
next.config.js
package-lock.json
package.json
postcss.config.js
swell-js.d.ts
tailwind.config.js
tsconfig.json
* commercejs: Initial commit with basic product list * ui: Handle no variants on product * commercejs: Support individual product pages * commercejs: Use separate sdkFetch function * commercejs: Show option hex colors based on option name * commercejs: Support product search and filter * commercejs: Enable carts feature * commercejs: Remove unused API endpoints * commercejs: Fix adding variants to cart * commercejs: Fix types for update cart hook * commercejs: Update README * commercejs: Add sorting to product search * commercejs: Add generic types to cart actions * commercejs: Better cart normalization * commercejs: Provide typing for sdkFetch function * commercejs: Refactor product search logic * commercejs: Update commercejs types package and export types from local directory * commercejs: Remove unused checkout hooks * commercejs: Enhance fetcher to allow custom API routes * commercejs: Fix product types * commercejs: Add checkout functionality * commercejs: Add commercejs to README list of providers * commercejs: Add login/logout auth hooks * commercejs: Adds comment to sdkFetch function * commercejs: Bring back empty useSignup hook to fix build * commercejs: Refactor useCheckout hook logic * commercejs: Add errors to fetcher function if using invalid resource/method * commercejs: Remove use of hex colors for color variants * ui: Fix undefined error when no variants * commercejs: Handle add to cart when no variants * commercejs: Enable customer auth feature * commercejs: Rename public key env variable as commercejs * commercejs: Remove duplicate customer fields * commercejs: Use variants API to generate product variants * commercejs: Fetch all products using sort order * commercejs: Fix use of normalizeProduct function * commercejs: Disable customer auth * commercejs: Show selected variant details in cart view * commercejs: Update to latest commercejs types * commercejs: Fix login email * commercejs: Remove unnecessary ts-ignore * api: Allow parameter to be passed to login API * api: Allow login handler to accept GET requests * commercejs: Add login API for login callback email link * commercejs: Remove unused argument to API * commercejs: Add hook to fetch logged in customer * commercejs: Rename token to match SDK name * commercejs: Enable logout * commercejs: Fix VERCEL_URL env variable * commercejs: Fix using vercel deployment url * commercejs: Add deployment url env vars to templates * Replace yarn with npm * commercejs: Allow checkout submit even without card/address details * ui: Add loading and cart refresh to checkout * commercejs: Leave link to issue on TODO comment * Update docs/README/env.template for commercejs provider * ui: Prevent toggle loading after component unmount * commercejs: Handle product without images * ui: Explicity set loading to false after checkout * Revert "api: Allow parameter to be passed to login API" This reverts commit c3713ec6e23f1b423a071a31221069995d419486. * commercejs: Handle login using API redirect * commercejs: Adds shipping and billing details to checkout data * commercejs: Fix types for fetcher and submit checkout * commercejs: Update README with demo url * commercejs: Update checkout hooks to use checkout context * commercejs: Update checkout logic to use customer fields * ui: Clear checkout fields context after checkout * commercejs: Remove unused clear checkout function * commercejs: Import constants directly
39 lines
1.0 KiB
TypeScript
39 lines
1.0 KiB
TypeScript
import type { SubmitCheckoutHook } from '@commerce/types/checkout'
|
|
import type { MutationHook } from '@commerce/utils/types'
|
|
|
|
import { useCallback } from 'react'
|
|
import useSubmitCheckout, {
|
|
UseSubmitCheckout,
|
|
} from '@commerce/checkout/use-submit-checkout'
|
|
import { useCheckoutContext } from '@components/checkout/context'
|
|
|
|
export default useSubmitCheckout as UseSubmitCheckout<typeof handler>
|
|
|
|
export const handler: MutationHook<SubmitCheckoutHook> = {
|
|
fetchOptions: {
|
|
url: '/api/checkout',
|
|
method: 'POST',
|
|
},
|
|
async fetcher({ input: item, options, fetch }) {
|
|
const data = await fetch({
|
|
...options,
|
|
body: { item },
|
|
})
|
|
return data
|
|
},
|
|
useHook: ({ fetch }) =>
|
|
function useHook() {
|
|
const { cardFields, addressFields } = useCheckoutContext()
|
|
|
|
return useCallback(
|
|
async function onSubmitCheckout(input) {
|
|
const data = await fetch({
|
|
input: { card: cardFields, address: addressFields },
|
|
})
|
|
return data
|
|
},
|
|
[cardFields, addressFields]
|
|
)
|
|
},
|
|
}
|