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 (
);
}
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...
);
}