import React, { ReactNode, useCallback, useEffect } from "react"; import { useLocation } from "react-router-dom"; import classNames from "classnames"; import { Header, HeaderLogo, LeftNav, RightNav } from "./Header"; import { LinkButton, Button } from "./button"; import { useSubmitRageshake } from "./settings/submit-rageshake"; import { ErrorMessage } from "./input/Input"; import styles from "./FullScreenView.module.css"; interface FullScreenViewProps { className?: string; children: ReactNode; } export function FullScreenView({ className, children }: FullScreenViewProps) { return (
{children}
); } interface ErrorViewProps { error: Error; } export function ErrorView({ error }: ErrorViewProps) { const location = useLocation(); useEffect(() => { console.error(error); }, [error]); const onReload = useCallback(() => { window.location.href = "/"; }, []); return (

Error

{error.message}

{location.pathname === "/" ? ( ) : ( Return to home screen )}
); } export function CrashView() { const { submitRageshake, sending, sent, error } = useSubmitRageshake(); const sendDebugLogs = useCallback(() => { submitRageshake({ description: "**Soft Crash**", sendLogs: true, }); }, [submitRageshake]); const onReload = useCallback(() => { window.location.href = "/"; }, []); let logsComponent; if (sent) { logsComponent =
Thanks! We'll get right on it.
; } else if (sending) { logsComponent =
Sending...
; } else { logsComponent = ( ); } return (

Oops, something's gone wrong.

Submitting debug logs will help us track down the problem.

{logsComponent}
{error && Couldn't send debug logs!}
); } export function LoadingView() { return (

Loading...

); }