import { motion } from 'framer-motion' import { BiArrowBack } from 'react-icons/bi' import { BsJoystick } from 'react-icons/bs' import { MdLocalFireDepartment } from 'react-icons/md'; import { ModalCard, modalCardVariants } from '../Shared/ModalsContainer/ModalsContainer'; import { useQuery } from 'react-query'; import { getProjectById } from '../../api'; import { useAppDispatch, useAppSelector } from '../../utils/hooks'; import { ModalId, openModal, scheduleModal } from '../../redux/features/modals.slice'; import { setProject } from '../../redux/features/project.slice'; export default function ProjectCard({ onClose, direction, ...props }: ModalCard) { const { data: project, isLoading } = useQuery( ['get-project', props.projectId], () => getProjectById(props.projectId), { onSuccess: project => dispatch(setProject(project)) } ) const { isWalletConnected } = useAppSelector(state => ({ isWalletConnected: state.wallet.isConnected })) const dispatch = useAppDispatch(); if (isLoading || !project) return <>; const onVote = () => { if (!isWalletConnected) { dispatch(scheduleModal({ modalId: ModalId.Vote, propsToPass: { projectId: props.projectId } })) dispatch(openModal({ modalId: ModalId.Login_ScanWallet })) } else dispatch(openModal({ modalId: ModalId.Vote, propsToPass: { projectId: props.projectId } })) } const onClaim = () => { if (!isWalletConnected) { dispatch(scheduleModal({ modalId: ModalId.Claim_GenerateSignature, propsToPass: { projectId: props.projectId }, })) dispatch(openModal({ modalId: ModalId.Login_ScanWallet })) } else dispatch(openModal({ modalId: ModalId.Claim_GenerateSignature, propsToPass: { projectId: props.projectId }, })) } return (

{project.title}

{project.website}

{project.description}

payments lightining

Screenshots


Are you the creator of this project?

) }