@wener/console
Version:
Base console UI toolkit
55 lines (54 loc) • 2.61 kB
JavaScript
import React from "react";
import { HiArrowLeft, HiArrowPath, HiHome, HiOutlineExclamationCircle } from "react-icons/hi2";
import { useInRouterContext, useNavigate, useRouteError } from "react-router-dom";
import { Button, NonIdealState } from "../../../daisy/index.js";
export const PageErrorState = ({ error, onReset, title = "\u9875\u9762\u51FA\u9519\u5566!" }) => {
const inRouterContext = useInRouterContext();
let navigate = (v) => {
typeof v === "string" ? window.location.href = v : window.history.back();
};
if (inRouterContext) {
navigate = useNavigate();
const routerError = useRouteError();
error ||= routerError;
}
return /*#__PURE__*/ React.createElement(NonIdealState, {
icon: /*#__PURE__*/ React.createElement(HiOutlineExclamationCircle, {
className: "h-12 w-12"
}),
title: title,
description: /*#__PURE__*/ React.createElement("div", null, /*#__PURE__*/ React.createElement("div", null, "\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u6216\u5237\u65B0\u9875\u9762"), /*#__PURE__*/ React.createElement("details", null, /*#__PURE__*/ React.createElement("summary", null, "\u67E5\u770B\u8BE6\u7EC6\u9519\u8BEF"), /*#__PURE__*/ React.createElement("pre", null, String(error)))),
action: /*#__PURE__*/ React.createElement("div", {
className: "flex gap-2 opacity-95"
}, onReset && /*#__PURE__*/ React.createElement(Button, {
className: "btn-outline btn-sm",
onClick: () => {
onReset();
}
}, /*#__PURE__*/ React.createElement(HiArrowPath, {
className: "h-4 w-4"
}), "\u91CD\u7F6E"), /*#__PURE__*/ React.createElement(Button, {
className: "btn-outline btn-sm",
onClick: () => {
navigate("/");
}
}, /*#__PURE__*/ React.createElement(HiHome, {
className: "h-4 w-4"
}), "\u9996\u9875"), /*#__PURE__*/ React.createElement(Button, {
className: "btn-outline btn-sm",
onClick: () => {
navigate(-1);
}
}, /*#__PURE__*/ React.createElement(HiArrowLeft, {
className: "h-4 w-4"
}), "\u8FD4\u56DE"), /*#__PURE__*/ React.createElement(Button, {
className: "btn-outline btn-sm",
onClick: () => {
window.location.reload();
}
}, /*#__PURE__*/ React.createElement(HiArrowPath, {
className: "h-4 w-4"
}), "\u5237\u65B0"))
});
};
//# sourceMappingURL=PageErrorState.js.map