@airplane/views
Version:
A React library for building Airplane views. Views components are optimized in style and functionality to produce internal apps that are easy to build and maintain.
63 lines (62 loc) • 1.75 kB
JavaScript
import { jsx, jsxs } from "react/jsx-runtime";
import { createStyles } from "@mantine/core";
import { Button } from "../button/Button.js";
import { showNotification } from "./showNotification.js";
import { sendViewMessage } from "../../message/sendViewMessage.js";
const useStyles = createStyles((theme) => ({
messageRoot: {
display: "flex",
justifyContent: "space-between",
alignItems: "center"
},
errorMessage: {
paddingRight: theme.spacing.xs,
wordBreak: "break-word"
}
}));
const ErrorNotificationMessage = ({
error,
runID,
sessionID,
slug
}) => {
const {
classes
} = useStyles();
if (runID && sessionID) {
throw Error("Cannot set both runID and sessionID");
}
let message;
if (error.type === "FAILED") {
message = `${runID ? "Run" : "Session"} failed ${slug ? `for ${slug}` : ""}`;
} else {
message = error.message;
}
return /* @__PURE__ */ jsxs("div", { className: classes.messageRoot, children: [
/* @__PURE__ */ jsx("span", { className: classes.errorMessage, children: message }),
(runID || sessionID) && /* @__PURE__ */ jsx(Button, { size: "xs", variant: "subtle", disableFocusRing: true, onClick: () => sendViewMessage({
type: "debug_panel",
open: true,
activeTab: "activity",
runID,
sessionID
}), children: `Open ${runID ? "run" : "session"}` })
] });
};
const showRunnableErrorNotification = ({
error,
runID,
sessionID,
slug
}) => {
return showNotification({
title: "Error",
message: /* @__PURE__ */ jsx(ErrorNotificationMessage, { error, runID, sessionID, slug }),
type: "error"
});
};
export {
showRunnableErrorNotification,
useStyles
};
//# sourceMappingURL=showRunnableErrorNotification.js.map