UNPKG

bananas-commerce-admin

Version:

What's this, an admin for apes?

30 lines 1.22 kB
import React from "react"; import Button from "@mui/material/Button"; import { useSnackbar } from "notistack"; import { useApi } from "../contexts/ApiContext"; export const ActionButton = ({ operation, successMessage, errorMessage, children, variant = "outlined", refresh, onClick, request, init, ...props }) => { const api = useApi(); const { enqueueSnackbar } = useSnackbar(); const handleClick = async () => { const action = api.operations[operation]; if (!action) { throw new Error(`Invalid action "${operation}".`); } const response = await action.call(request, init); if (response.ok) { enqueueSnackbar(successMessage, { variant: "success" }); refresh(); return successMessage; } else { console.error("[ACTION_BUTTON]", response); enqueueSnackbar(errorMessage, { variant: "error", }); throw new Error(errorMessage); } }; return (React.createElement(Button, { size: "medium", variant: variant, onClick: onClick ?? handleClick, ...props }, children)); }; export default ActionButton; //# sourceMappingURL=ActionButton.js.map