index.tsx 972 B

1234567891011121314151617181920212223242526272829303132333435
  1. import { Warning } from "@phosphor-icons/react/dist/ssr/Warning";
  2. import { Button } from "@pythnetwork/component-library/Button";
  3. import { useLogger } from "@pythnetwork/component-library/useLogger";
  4. import { useEffect } from "react";
  5. import styles from "./index.module.scss";
  6. type Props = {
  7. error: Error & { digest?: string };
  8. reset?: () => void;
  9. };
  10. export const Error = ({ error, reset }: Props) => {
  11. const logger = useLogger();
  12. useEffect(() => {
  13. logger.error(error);
  14. }, [error, logger]);
  15. return (
  16. <div className={styles.error}>
  17. <Warning className={styles.errorIcon} />
  18. <div className={styles.text}>
  19. <h1 className={styles.header}>Uh oh!</h1>
  20. <h2 className={styles.subheader}>Something went wrong</h2>
  21. <code className={styles.details}>{error.digest ?? error.message}</code>
  22. </div>
  23. {reset && (
  24. <Button onPress={reset} size="lg">
  25. Reset
  26. </Button>
  27. )}
  28. </div>
  29. );
  30. };