/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @flow
*/
import * as React from 'react';
import {findGitHubIssue} from './cache';
import UpdateExistingIssue from './UpdateExistingIssue';
import ReportNewIssue from './ReportNewIssue';
import WorkplaceGroup from './WorkplaceGroup';
type Props = {
callStack: string | null,
componentStack: string | null,
errorMessage: string | null,
};
export default function SuspendingErrorView({
callStack,
componentStack,
errorMessage,
}: Props): React.Node {
const maybeItem =
errorMessage !== null ? findGitHubIssue(errorMessage) : null;
let GitHubUI;
if (maybeItem != null) {
GitHubUI = <UpdateExistingIssue gitHubIssue={maybeItem} />;
} else {
GitHubUI = (
<ReportNewIssue
callStack={callStack}
componentStack={componentStack}
errorMessage={errorMessage}
/>
);
}
return (
<>
{GitHubUI}
<WorkplaceGroup />
</>
);
}