Modal
import React, { useState,useEffect } from "react";
import {
Modal,
ModalOverlay,
ModalContent,
ModalHeader,
ModalFooter,
ModalBody,
ModalCloseButton,
useDisclosure,
Button,
Box
} from "@chakra-ui/react";
const App = () =>{
const [modalTitle,setModalTitle]=useState()
const [modalBody,setModalBody]=useState()
const [list,setList]=useState();
const { isOpen, onOpen, onClose } = useDisclosure()
const handleCardData = (key,value)=>{
console.log(card,key,value,'this is key and value')
let newCard=card;
newCard[key]=value;
console.log(newCard)
setCard(newCard)
}
const handleList = async () =>{
console.log('in handle list')
onClose();
console.log(list)
}
const handleModal=(type)=>{
const data =()=>{ switch(type) {
case "List": return (
<Input type='text' onChange={(e)=>setList(e.target.value)} />
);
case "Card": return (
<>
<Input m='2' type='text' placeholder="Title" id='title' onChange={(e)=>handleCardData(e.target.id,e.target.value)} />
<Input m='2' type='text' placeholder="Description" id='description' onChange={(e)=>handleCardData(e.target.id,e.target.value)} />
<Input m='2' type='date' placeholder="Due on" id='due-on' onChange={(e)=>handleCardData(e.target.id,e.target.value)} />
</>)
default: return <h1>No project match</h1>
}
}
setModalTitle(type)
setModalBody(data)
onOpen();
}
return (
<Box>
<Button onClick={()=> handleModal('List')}> List </Button>
<Button onClick={()=> handleModal('Card')}> Card </Button>
<Modal isOpen={isOpen} onClose={onClose}>
<ModalOverlay />
<ModalContent>
<ModalHeader>{modalTitle}</ModalHeader>
<ModalCloseButton />
<ModalBody>
{modalBody}
</ModalBody>
<ModalFooter>
{modalTitle==='List'?
<Button colorScheme='blue' mr={3} onClick={()=>handleList()}>
Save
</Button>
:
<Button colorScheme='blue' mr={3} onClick={()=>handleCard()}>
Save
</Button>
}
</ModalFooter>
</ModalContent>
</Modal>
</Box>
)
}
Last updated
Was this helpful?