feat: collapse checkout custom form shipping form

:%s
This commit is contained in:
unknown
2021-09-07 09:17:59 +07:00
parent d1f22b1c44
commit 757cb68319
18 changed files with 375 additions and 358 deletions

View File

@@ -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

View File

@@ -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])
}