import React, { useEffect, useRef, useState } from "react";
import ContentWrapper from "../utils/ContentWrapper";
import ToastUtil from "@common-utils/ToastUtil";
import DataService from "@common-services/DataService";
import { connect } from "react-redux";
import { FormField } from "@amxchange/grid-view-web-client";
import { APPLICATIONS_API_BASE_ROUTE, fetchApplications } from "./constants";
import {
Button,
Card,
CardBody,
CardHeader,
CardText,
CardTitle,
Col,
ListGroup,
ListGroupItem,
Row
} from "reactstrap";
import ModalAlt from "../utils/ModalAlt";
const Applications = ({ userDetails }) => {
//on creation everything of the app is to be set to zero?
const [applications, setApplications] = useState([]);
const createAppModalRef = useRef(null);
const [isLoading, setIsLoading] = useState(false);
const createApplication = async application => {
try {
setIsLoading(true);
const reqBody = getReqBody(application);
if (!reqBody) return ToastUtil.error("Please enter all the required Fields!!");
const res = await DataService.post(APPLICATIONS_API_BASE_ROUTE, {...reqBody});
// console.log({ "Res from creating Applications": res });
if (res.status?.code === 200) {
ToastUtil.success(`Successfully Created the app ${application.name}`);
createAppModalRef.current.hide();
init();
}
} catch (error) {
console.error(`Error while Creating an Application with name ${application.name} `, error);
} finally {
setIsLoading(false);
}
};
const getReqBody = application => {
if (!application.name || !application.description) return null;
return {
createdBy: userDetails.email || userDetails.employeeName,
appName: application.name,
appDescription: application.description
};
};
const init = async () => {
const applications = await fetchApplications();
setApplications(applications);
};
const onClickCreateApp = () => {
createAppModalRef.current.setData({
employeeEmail: userDetails.email,
createApplication: createApplication
});
createAppModalRef.current.show();
};
useEffect(() => {
init();
}, []);
return (
No applications available
) : (
applications.map(app => (