mirror of
https://github.com/grafana/grafana.git
synced 2025-02-15 10:03:33 -06:00
* PageNotFound: G10 Redesign * Make into a reusable component so we can have a more specific version for dashboards * Make graphic abit smaller
61 lines
1.5 KiB
TypeScript
61 lines
1.5 KiB
TypeScript
import { css } from '@emotion/css';
|
|
import React from 'react';
|
|
|
|
import { GrafanaTheme2 } from '@grafana/data';
|
|
import { useStyles2, useTheme2 } from '@grafana/ui';
|
|
|
|
export interface Props {
|
|
/**
|
|
* Defaults to Page
|
|
*/
|
|
entity?: string;
|
|
}
|
|
|
|
export function EntityNotFound({ entity = 'Page' }: Props) {
|
|
const styles = useStyles2(getStyles);
|
|
const theme = useTheme2();
|
|
|
|
return (
|
|
<div className={styles.container}>
|
|
<h1>{entity} not found</h1>
|
|
<div className={styles.subtitle}>
|
|
We're looking but can't seem to find this {entity.toLowerCase()}. Try returning{' '}
|
|
<a href="/" className="external-link">
|
|
home
|
|
</a>{' '}
|
|
or seeking help on the{' '}
|
|
<a href="https://community.grafana.com" target="_blank" rel="noreferrer" className="external-link">
|
|
community site.
|
|
</a>
|
|
</div>
|
|
<div className={styles.grot}>
|
|
<img src={`public/img/grot-404-${theme.isDark ? 'dark' : 'light'}.svg`} width="100%" alt="grot" />
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|
|
|
|
export function getStyles(theme: GrafanaTheme2) {
|
|
return {
|
|
container: css({
|
|
display: 'flex',
|
|
flexDirection: 'column',
|
|
padding: theme.spacing(8, 2, 2, 2),
|
|
h1: {
|
|
textAlign: 'center',
|
|
},
|
|
}),
|
|
subtitle: css({
|
|
color: theme.colors.text.secondary,
|
|
fontSize: theme.typography.h5.fontSize,
|
|
padding: theme.spacing(2, 0),
|
|
textAlign: 'center',
|
|
}),
|
|
grot: css({
|
|
maxWidth: '450px',
|
|
paddingTop: theme.spacing(8),
|
|
margin: '0 auto',
|
|
}),
|
|
};
|
|
}
|