Advertisement
xcage88

Card

May 21st, 2023
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import {React, useEffect} from 'react'
  2. import man from './assets/man.png'
  3. import style from './style.module.css'
  4. import { useNavigate } from 'react-router-dom'
  5. import { useDispatch, useSelector } from 'react-redux'
  6. import { fetchAll } from '../../manage/action'
  7.  
  8. export default function Card() {
  9.  
  10.     const dispatch = useDispatch()
  11.     const { data } = useSelector((state) => state.bootcamp)
  12.  
  13.     const fetchingData = async () => {
  14.         dispatch(fetchAll())
  15.     }
  16.  
  17.     useEffect(() => {
  18.         fetchingData()
  19.     },[])
  20.  
  21.     const navigate = useNavigate()
  22.  
  23.     const goToDetail = (id) => {
  24.         navigate(`/detail/${id}`)
  25.     }
  26.  
  27.     return (
  28.         <>
  29.             {data.map((item, id) => {
  30.                 return (
  31.                     <div className={style['main-card']} key={id} onClick={() => goToDetail(id)}>
  32.                         <div className={style['card-header']}>
  33.                             <div className={style['header-image']}>
  34.                                 <img src={man} alt="man" />
  35.                             </div>
  36.                             <div className={style['header-text']}>
  37.                                 <h5 className={style['card-topic']}>Intensive Bootcamp</h5>
  38.                                 <h3 className="card-title">{item.mainTitle}</h3>
  39.                                 <h6 className="card-subtitle fw-normal">({item.subTitle})</h6>
  40.                             </div>
  41.                         </div>
  42.                         <div className={style['card-body']}>
  43.                             <div>
  44.                                 <h5 className='fw-bold'>{item.mainTitle}</h5>
  45.                                 <h5 className='fw-bold'>{item.subTitle}</h5>
  46.                             </div>
  47.                             <div>
  48.                                 <div>
  49.                                     <table className={style['table-content']}>
  50.                                         <tbody>
  51.                                             <tr>
  52.                                                 <th className={style['table-head']}>Batch</th>
  53.                                                 <td className='table-text'>{item.batch}</td>
  54.                                             </tr>
  55.                                             <tr>
  56.                                                 <th className={style['table-head']}>Mentor</th>
  57.                                                 <td className='table-text'>
  58.                                                     {item.mentor.mentor1}, {item.mentor.mentor2}
  59.                                                 </td>
  60.                                             </tr>
  61.                                         </tbody>
  62.                                     </table>
  63.                                 </div>
  64.                                 <div className='d-flex justify-content-end gap-2'>
  65.                                     <p className={style['before-diskon']}>Rp. 4.000.000</p>
  66.                                     <p className={style['after-diskon']}>Rp. {item.price}</p>
  67.                                 </div>
  68.                             </div>
  69.                         </div>
  70.                     </div>
  71.                 )
  72.             })}
  73.         </>
  74.     )
  75. }
  76.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement