* Facebook -> Meta in copyright rg --files | xargs sed -i 's#Copyright (c) Facebook, Inc. and its affiliates.#Copyright (c) Meta Platforms, Inc. and affiliates.#g' * Manual tweaks
76 lines
2.0 KiB
JavaScript
76 lines
2.0 KiB
JavaScript
/**
|
|
* 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 Icon from '../Icon';
|
|
import {searchGitHubIssuesURL} from './githubAPI';
|
|
import styles from './shared.css';
|
|
|
|
const LABELS = [
|
|
'Component: Developer Tools',
|
|
'Type: Bug',
|
|
'Status: Unconfirmed',
|
|
];
|
|
|
|
// This must match the filename in ".github/ISSUE_TEMPLATE/"
|
|
const TEMPLATE = 'devtools_bug_report.yml';
|
|
|
|
type Props = {
|
|
callStack: string | null,
|
|
componentStack: string | null,
|
|
errorMessage: string | null,
|
|
};
|
|
|
|
export default function ReportNewIssue({
|
|
callStack,
|
|
componentStack,
|
|
errorMessage,
|
|
}: Props): React.Node {
|
|
let bugURL = process.env.GITHUB_URL;
|
|
if (!bugURL) {
|
|
return null;
|
|
}
|
|
|
|
const gitHubAPISearch =
|
|
errorMessage !== null ? searchGitHubIssuesURL(errorMessage) : '(none)';
|
|
|
|
const title = `[DevTools Bug] ${errorMessage || ''}`;
|
|
|
|
const parameters = [
|
|
`template=${TEMPLATE}`,
|
|
`labels=${encodeURIComponent(LABELS.join(','))}`,
|
|
`title=${encodeURIComponent(title)}`,
|
|
`automated_package=${process.env.DEVTOOLS_PACKAGE || ''}`,
|
|
`automated_version=${process.env.DEVTOOLS_VERSION || ''}`,
|
|
`automated_error_message=${encodeURIComponent(errorMessage || '')}`,
|
|
`automated_call_stack=${encodeURIComponent(callStack || '')}`,
|
|
`automated_component_stack=${encodeURIComponent(componentStack || '')}`,
|
|
`automated_github_query_string=${gitHubAPISearch}`,
|
|
];
|
|
|
|
bugURL += `/issues/new?${parameters.join('&')}`;
|
|
|
|
return (
|
|
<div className={styles.GitHubLinkRow}>
|
|
<Icon className={styles.ReportIcon} type="bug" />
|
|
<a
|
|
className={styles.ReportLink}
|
|
href={bugURL}
|
|
rel="noopener noreferrer"
|
|
target="_blank"
|
|
title="Report bug">
|
|
Report this issue
|
|
</a>
|
|
<div className={styles.ReproSteps}>
|
|
(Please include steps on how to reproduce it and the components used.)
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|