import { GithubRepoRoot } from "@/constants"; import { Reload } from "@/utilities"; import { faDizzy } from "@fortawesome/free-regular-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { Anchor, Box, Button, Center, Code, Container, Group, Text, Title, } from "@mantine/core"; import { FunctionComponent, useMemo } from "react"; const Placeholder = "********"; interface Props { error: Error; } const UIError: FunctionComponent = ({ error }) => { const stack = useMemo(() => { let callStack = error.stack ?? ""; // Remove sensitive information from the stack callStack = callStack.replaceAll(window.location.hostname, Placeholder); return callStack; }, [error.stack]); return (
<Box component="span" mr="md"> <FontAwesomeIcon icon={faDizzy}></FontAwesomeIcon> </Box> <Text component="span" inherit> Oops! UI is crashed! </Text>
{stack}
); }; export default UIError;