-
Notifications
You must be signed in to change notification settings - Fork 7.6k
/
Copy patherror-decoder.html.js
124 lines (117 loc) · 3.37 KB
/
error-decoder.html.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* @emails react-core
* @flow
*/
import Container from 'components/Container';
import ErrorDecoder from 'components/ErrorDecoder';
import Flex from 'components/Flex';
import hex2rgba from 'hex2rgba';
import MarkdownHeader from 'components/MarkdownHeader';
import React from 'react';
import {graphql} from 'gatsby';
import Layout from 'components/Layout';
import StickyResponsiveSidebar from 'components/StickyResponsiveSidebar';
import TitleAndMetaTags from 'components/TitleAndMetaTags';
import {colors, sharedStyles} from 'theme';
import {createLinkDocs} from 'utils/createLink';
import findSectionForPath from 'utils/findSectionForPath';
import {sectionListDocs} from 'utils/sectionList';
type Props = {
data: Object,
location: Location,
};
const ErrorPage = ({data, location}: Props) => (
<Layout location={location}>
<Flex
direction="column"
grow="1"
shrink="0"
halign="stretch"
css={{
width: '100%',
flex: '1 0 auto',
position: 'relative',
zIndex: 0,
}}>
<Container>
<div css={sharedStyles.articleLayout.container}>
<Flex
type="article"
direction="column"
grow="1"
halign="stretch"
css={{
minHeight: 'calc(100vh - 40px)',
}}>
<MarkdownHeader
path={data.markdownRemark.fields.path}
title={data.markdownRemark.frontmatter.title}
/>
<TitleAndMetaTags
title={`React - ${data.markdownRemark.frontmatter.title}`}
/>
<div css={sharedStyles.articleLayout.content}>
<div
css={sharedStyles.markdown}
dangerouslySetInnerHTML={{__html: data.markdownRemark.html}}
/>
<div
css={[
sharedStyles.markdown,
{
marginTop: 30,
'& code': {
display: 'block',
marginTop: 30,
padding: '1rem',
borderRadius: '0.5rem',
backgroundColor: hex2rgba(colors.error, 0.1),
color: colors.error,
},
},
]}>
<ErrorDecoder
errorCodesString={data.errorCodesJson.internal.contentDigest}
location={location}
/>
</div>
</div>
</Flex>
<div css={sharedStyles.articleLayout.sidebar}>
<StickyResponsiveSidebar
createLink={createLinkDocs}
defaultActiveSection={findSectionForPath(
location.pathname,
sectionListDocs,
)}
location={location}
sectionList={sectionListDocs}
title={data.markdownRemark.frontmatter.title}
/>
</div>
</div>
</Container>
</Flex>
</Layout>
);
export const pageQuery = graphql`
query ErrorPageMarkdown($slug: String!) {
markdownRemark(fields: {slug: {eq: $slug}}) {
html
fields {
path
}
frontmatter {
title
}
}
errorCodesJson {
internal {
contentDigest
}
}
}
`;
export default ErrorPage;