subscribe api added

This commit is contained in:
victorAnumudu
2024-12-31 10:25:51 +01:00
parent 46621f60c0
commit 1bcd26e602
2 changed files with 53 additions and 2 deletions
+44 -2
View File
@@ -1,8 +1,13 @@
import React, { useRef } from "react"; import React, { useRef, useState } from "react";
import getImage from "../../utils/getImage"; import getImage from "../../utils/getImage";
import { Modal } from "bootstrap"; import { Modal } from "bootstrap";
import { useMutation } from "@tanstack/react-query";
import { subscribe } from '../../services/services'
export default function ProductStart(props){ export default function ProductStart(props){
const [requestStatus, setRequestStatus] = useState({status:false, message: ''})
console.log(props) console.log(props)
const productBanner = "product/"+props.productData.banner; const productBanner = "product/"+props.productData.banner;
const productTitle = props.productData.title; const productTitle = props.productData.title;
@@ -20,6 +25,29 @@ export default function ProductStart(props){
// modal.hide() // modal.hide()
} }
const mutation = useMutation({
mutationFn: (fields) => {
return subscribe(fields)
},
onError: (error) => {
setRequestStatus({status:false, message:'failed, try again'})
console.log(error)
},
onSuccess: (res) => {
setRequestStatus({status:true, message:'successful'})
console.log(res)
},
// onSettled: () => {
// setTimeout(()=>{
// setRequestStatus({status:false, message:''})
// },4000)
// }
})
const handleSubscribe = () => {
mutation.mutate({})
}
return ( return (
<> <>
<div className="row"> <div className="row">
@@ -95,10 +123,24 @@ export default function ProductStart(props){
nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor
fringilla. Cras mattis consectetur purus sit amet fermentum. Cras justo odio, fringilla. Cras mattis consectetur purus sit amet fermentum. Cras justo odio,
</p> </p>
{mutation.error &&
<>
<div className="col-12">
<p className='text-danger'>{mutation.error.message}</p>
</div>
</>
}
{mutation.isSuccess &&
<>
<div className="col-12">
<p className='text-success'>{'subscription is successful'}</p>
</div>
</>
}
</div> </div>
<div className="modal-footer"> <div className="modal-footer">
<button type="button" className="btn btn-danger" data-bs-dismiss="modal">Close</button> <button type="button" className="btn btn-danger" data-bs-dismiss="modal">Close</button>
<button type="button" className="btn btn-success" onClick={hideModal}>Start</button> <button type="button" className="btn btn-success" disabled={mutation.isSuccess} onClick={handleSubscribe}>{mutation.isPending ? 'loading...' : 'Start'}</button>
</div> </div>
</div> </div>
</div> </div>
+9
View File
@@ -66,6 +66,15 @@ export const verifyEmail = (reqData) => {
return postAuxEnd('/panel/auth/register/verify', postData, false) return postAuxEnd('/panel/auth/register/verify', postData, false)
} }
// FUNCTION TO SUBSCRIBE
export const subscribe = (reqData) => {
let postData = {
...reqData
}
return postAuxEnd('/panel/myproduct/subscription', postData, false)
// return getAuxEnd('/panel/myproduct/subscription')
}
// FUNCTION TO RESET USER PASSWORD // FUNCTION TO RESET USER PASSWORD
export const recoverPWD = (reqData) => { export const recoverPWD = (reqData) => {