feat: test checkout

:%s
This commit is contained in:
lytrankieio123
2021-10-19 11:08:25 +07:00
parent ae8bb28402
commit 107585b032

View File

@@ -1,6 +1,7 @@
import React, { useState } from 'react' import React, { useState } from 'react'
import { Logo } from 'src/components/common' import { ButtonCommon, Logo } from 'src/components/common'
import CheckoutCollapse from 'src/components/common/CheckoutCollapse/CheckoutCollapse' import CheckoutCollapse from 'src/components/common/CheckoutCollapse/CheckoutCollapse'
import { useAddProductToCart, useGetActiveOrder } from 'src/components/hooks/cart'
import { removeItem } from 'src/utils/funtion.utils' import { removeItem } from 'src/utils/funtion.utils'
import { CheckOutForm } from 'src/utils/types.utils' import { CheckOutForm } from 'src/utils/types.utils'
import s from './CheckoutInfo.module.scss' import s from './CheckoutInfo.module.scss'
@@ -8,43 +9,43 @@ import CustomerInfoForm from './components/CustomerInfoForm/CustomerInfoForm'
import PaymentInfoForm from './components/PaymentInfoForm/PaymentInfoForm' import PaymentInfoForm from './components/PaymentInfoForm/PaymentInfoForm'
import ShippingInfoForm from './components/ShippingInfoForm/ShippingInfoForm' import ShippingInfoForm from './components/ShippingInfoForm/ShippingInfoForm'
interface CheckoutInfoProps { interface CheckoutInfoProps {
onViewCart:()=>void onViewCart: () => void
} }
const CheckoutInfo = ({onViewCart}: CheckoutInfoProps) => { const CheckoutInfo = ({ onViewCart }: CheckoutInfoProps) => {
const [active, setActive] = useState(1) const [active, setActive] = useState(1)
const [done, setDone] = useState<number[]>([]) const [done, setDone] = useState<number[]>([])
const [info, setInfo] = useState<CheckOutForm>({}) const [info, setInfo] = useState<CheckOutForm>({})
const onEdit = (id:number) => { const onEdit = (id: number) => {
setActive(id) setActive(id)
setDone(removeItem<number>(done,id)) setDone(removeItem<number>(done, id))
} }
const onConfirm = (id:number,formInfo:CheckOutForm) => { const onConfirm = (id: number, formInfo: CheckOutForm) => {
if(id+1>formList.length){ if (id + 1 > formList.length) {
console.log({...info,...formInfo}) console.log({ ...info, ...formInfo })
}else{ } else {
if(done.length>0){ if (done.length > 0) {
for (let i = id+1; i <= formList.length; i++) { for (let i = id + 1; i <= formList.length; i++) {
if(!done.includes(i)){ if (!done.includes(i)) {
setActive(i) setActive(i)
} }
} }
}else{ } else {
setActive(id+1) setActive(id + 1)
} }
setDone([...done,id]) setDone([...done, id])
} }
setInfo({...info,...formInfo}) setInfo({ ...info, ...formInfo })
} }
const getNote = (id:number) => { const getNote = (id: number) => {
switch (id) { switch (id) {
case 1: case 1:
return `${info.name}, ${info.email}` return `${info.name}, ${info.email}`
case 2: case 2:
return `${info.address}, ${info.state}, ${info.city}, ${info.code}, ${info.phone}, ` return `${info.address}, ${info.state}, ${info.city}, ${info.code}, ${info.phone}, `
default: default:
return "" return ""
} }
@@ -54,21 +55,38 @@ const CheckoutInfo = ({onViewCart}: CheckoutInfoProps) => {
{ {
id: 1, id: 1,
title: 'Customer Information', title: 'Customer Information',
form: <CustomerInfoForm onConfirm={onConfirm} id={1}/>, form: <CustomerInfoForm onConfirm={onConfirm} id={1} />,
}, },
{ {
id: 2, id: 2,
title: 'Shipping Information', title: 'Shipping Information',
form: <ShippingInfoForm onConfirm={onConfirm} id={2}/>, form: <ShippingInfoForm onConfirm={onConfirm} id={2} />,
}, },
{ {
id: 3, id: 3,
title: 'Payment Information', title: 'Payment Information',
form: <PaymentInfoForm onConfirm={onConfirm} id={3}/>, form: <PaymentInfoForm onConfirm={onConfirm} id={3} />,
}, },
] ]
// TODO: remove
const { addProduct } = useAddProductToCart()
const createOrder = () => {
addProduct({ variantId: "63", quantity: 1 }, handleAddToCartCallback)
}
const handleAddToCartCallback = (isSuccess: boolean, message?: string) => {
console.log("after create order: ", isSuccess, message)
}
const {order} = useGetActiveOrder()
console.log("active order: ", order)
return ( return (
<div className={s.warpper}> <div className={s.warpper}>
<ButtonCommon onClick={createOrder}>test create order</ButtonCommon>
<ButtonCommon onClick={createOrder}>test get active order</ButtonCommon>
<div className={s.title}> <div className={s.title}>
<Logo /> <Logo />
<div className={s.viewCart} onClick={onViewCart}>View cart</div> <div className={s.viewCart} onClick={onViewCart}>View cart</div>
@@ -76,7 +94,7 @@ const CheckoutInfo = ({onViewCart}: CheckoutInfoProps) => {
{formList.map((item) => { {formList.map((item) => {
let note = getNote(item.id) let note = getNote(item.id)
return <CheckoutCollapse return <CheckoutCollapse
key={item.title} key={item.title}
id={item.id} id={item.id}
visible={item.id === active} visible={item.id === active}
title={item.title} title={item.title}