import React, { useState, useEffect } from "react";
import { Header, Message, Icon, Button, Table, Label, Segment, Modal, Dropdown } from 'semantic-ui-react'
import BigApiErrorMessage from "./BigApiErrorMessage.jsx";
const ButtonModal = (props) => {
const [showModal, setShowModal] = useState(false);
const [loading, setLoading] = useState(false);
const onShowModal = async () => {
setShowModal(true);
if (props.onShowModal) {
await props.onShowModal();
}
}
const onCloseModal = (i, e) => {
setShowModal(false);
}
const onConfirm = async (e) => {
e.preventDefault();
setLoading(true);
// If closeImmediately is true, close the modal before processing
if (props.closeImmediately) {
setShowModal(false);
}
try {
if (props.onConfirm) {
await props.onConfirm();
}
} catch (e) {
console.log(e.status);
console.log(e.response.body);
//this.setState({ error: e.response.body.message, loading: false });
console.error(e);
}
setLoading(false);
// If closeImmediately is false (default), close the modal after processing
if (!props.closeImmediately) {
setShowModal(false);
}
}
const modal = (
{props.error &&
}
{props.children}
{props.cancel && }
);
if (props.as && props.as === "dropdown") {
return (
<>
{props.icon && }
{props.text}
{modal}
>
);
} else {
return (
<>
{modal}
>
);
}
}
export default ButtonModal;