mirror of
https://github.com/vercel/commerce.git
synced 2025-07-26 03:31:23 +00:00
✨ feat: collapse checkout custom form shipping form
:%s
This commit is contained in:
@@ -20,4 +20,17 @@ export interface RecipeProps {
|
||||
imageSrc: string
|
||||
}
|
||||
|
||||
export interface CheckOutForm {
|
||||
name: string
|
||||
email:string
|
||||
address: string
|
||||
city:string
|
||||
state:string
|
||||
code:number
|
||||
phone:number
|
||||
method:string
|
||||
shipping_fee:number
|
||||
}
|
||||
|
||||
|
||||
export type MouseAndTouchEvent = MouseEvent | TouchEvent
|
@@ -1,30 +0,0 @@
|
||||
import { RefObject, useEffect } from 'react'
|
||||
import { MouseAndTouchEvent } from './types.utils'
|
||||
|
||||
export function useOnClickOutside<T extends HTMLElement = HTMLElement>(
|
||||
ref: RefObject<T>,
|
||||
callback: (event: MouseAndTouchEvent) => void
|
||||
) {
|
||||
useEffect(() => {
|
||||
const listener = (event: MouseAndTouchEvent) => {
|
||||
const el = ref?.current
|
||||
|
||||
// Do nothing if clicking ref's element or descendent elements
|
||||
if (!el || el.contains(event.target as Node)) {
|
||||
return
|
||||
}
|
||||
|
||||
callback(event)
|
||||
}
|
||||
|
||||
document.addEventListener(`mousedown`, listener)
|
||||
document.addEventListener(`touchstart`, listener)
|
||||
|
||||
return () => {
|
||||
document.removeEventListener(`mousedown`, listener)
|
||||
document.removeEventListener(`touchstart`, listener)
|
||||
}
|
||||
|
||||
// Reload only if ref or handler changes
|
||||
}, [ref, callback])
|
||||
}
|
Reference in New Issue
Block a user