Files
2024-02-15 17:01:50 +00:00

59 lines
1.4 KiB
TypeScript

import {Fragment} from 'react';
import {t} from 'sentry/locale';
import DeprecatedAsyncView from 'sentry/views/deprecatedAsyncView';
type Data = {
groups: [groupName: string, grouppedWarnings: string[]][];
warnings: string[];
};
type State = DeprecatedAsyncView['state'] & {data: Data | null};
class AdminWarnings extends DeprecatedAsyncView<{}, State> {
getEndpoints(): ReturnType<DeprecatedAsyncView['getEndpoints']> {
return [['data', '/internal/warnings/']];
}
renderBody() {
const {data} = this.state;
if (data === null) {
return null;
}
const {groups, warnings} = data;
return (
<div>
<h3>{t('System Warnings')}</h3>
{!warnings && !groups && t('There are no warnings at this time')}
{groups.map(([groupName, groupedWarnings]) => (
<Fragment key={groupName}>
<h4>{groupName}</h4>
<ul>
{groupedWarnings.map((warning, i) => (
<li key={i}>{warning}</li>
))}
</ul>
</Fragment>
))}
{warnings.length > 0 && (
<Fragment>
<h4>Miscellaneous</h4>
<ul>
{warnings.map((warning, i) => (
<li key={i}>{warning}</li>
))}
</ul>
</Fragment>
)}
</div>
);
}
}
export default AdminWarnings;