From b81e62988cb6c0ecdbdf62efd53a55ca174b40c6 Mon Sep 17 00:00:00 2001 From: victorAnumudu Date: Sat, 15 Jul 2023 09:48:14 +0100 Subject: [PATCH] delete popout added --- src/components/Settings/Tabs/CardList.jsx | 11 +- .../Settings/Tabs/DeleteCardPopout.jsx | 143 ++++++++++++++++++ 2 files changed, 153 insertions(+), 1 deletion(-) create mode 100644 src/components/Settings/Tabs/DeleteCardPopout.jsx diff --git a/src/components/Settings/Tabs/CardList.jsx b/src/components/Settings/Tabs/CardList.jsx index a6139dc..f019018 100644 --- a/src/components/Settings/Tabs/CardList.jsx +++ b/src/components/Settings/Tabs/CardList.jsx @@ -7,10 +7,17 @@ import usersService from "../../../services/UsersService"; import { handlePagingFunc } from '../../Pagination'; import PaginatedList from '../../Pagination/PaginatedList'; +import DeleteCardPopout from './DeleteCardPopout'; + function CardList() { const api = new usersService(); const [cardList, setCardList] = useState({loading: true, data: []}) + const [deleteCardModal, setDeleteCardModal] = useState({show: false, data: {}}) // STATE TO HOLD WHEN DELETE MODAL POPS UP + const handleDeleteCardModal = () => { + setDeleteCardModal(prev => ({...prev, show:!prev.show})) + } + const [currentPage, setCurrentPage] = useState(0); const indexOfFirstItem = Number(currentPage); const indexOfLastItem = @@ -23,7 +30,6 @@ function CardList() { useEffect(()=>{ api.payListCard().then(res=>{ - console.log('TESTING', res.data?.result_list) setCardList({loading: false, data:res.data?.result_list}) }).catch(err => { setCardList({loading: false, data:[]}) @@ -62,6 +68,7 @@ function CardList() {
) } diff --git a/src/components/Settings/Tabs/DeleteCardPopout.jsx b/src/components/Settings/Tabs/DeleteCardPopout.jsx new file mode 100644 index 0000000..709381d --- /dev/null +++ b/src/components/Settings/Tabs/DeleteCardPopout.jsx @@ -0,0 +1,143 @@ +import React, { useState } from 'react' +import ModalCom from '../../Helpers/ModalCom' +import LoadingSpinner from '../../Spinners/LoadingSpinner' +import usersService from '../../../services/UsersService' + +function DeleteCardPopout({action, situation, data}) { + const api = new usersService() + + const [requestStatus, setRequestStatus] = useState({loading: false, status:false, message: ''}) + + let handleDeleteCard = () => { // FUNCTION TO DELETE A CARD + setRequestStatus(prev => ({...prev, loading: true})) + api.payRemCard({card_uid:data.card_uid}).then(res=>{ + if(res.status != 200 || res.data.internal_return < 0){ + setRequestStatus({loading: false, status:false, message: 'unable to delete card. Try Again'}) + } + setRequestStatus({loading: false, status:true, message: 'Card deleted'}) + // setTimeout(()=>{action()},3000) // CLOSES MODAL AFTER SOME SECONDS + }).catch(err => { + setRequestStatus({loading: false, status:false, message: 'network error. Try Again'}) + }).finally(()=>{ + setTimeout(()=>{ + setRequestStatus(prev => ({...prev, message: ''})) + if(requestStatus.status){ + action() // CLOSES MODAL AFTER SOME SECONDS + } + },4000) + }) + } + return ( + +
+
+

+ Confirm Card Delete +

+ +
+
+
+ + + + + +
+
+

+ Are you sure you want to delete? +

+
+

+ Added: {data.added} +

+

+ {data.description} **********{data.digits} +

+
+
+ {/* error or success display */} + {requestStatus.message != "" && + (!requestStatus.status ? ( +
+ {requestStatus.message} +
+ ) : ( + requestStatus.status && ( +
+ {requestStatus.message} +
+ ) + ))} + {/* End of error or success display */} +
+ + {requestStatus.loading ? + + : + + } +
+
+
+
+ ) +} + +export default DeleteCardPopout \ No newline at end of file