forked from mattermost/mattermost-webapp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
error_message.tsx
217 lines (209 loc) · 8.67 KB
/
error_message.tsx
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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import React from 'react';
import {FormattedMessage} from 'react-intl';
import {ErrorPageTypes} from 'utils/constants';
import {t} from 'utils/i18n';
import ErrorLink from './error_link';
type Props = {
type?: string | null;
message?: string;
service?: string;
isGuest?: boolean;
}
const ErrorMessage: React.FC<Props> = ({type, message, service, isGuest}: Props) => {
let errorMessage = null;
if (type) {
switch (type) {
case ErrorPageTypes.LOCAL_STORAGE:
errorMessage = (
<div>
<FormattedMessage
id='error.local_storage.message'
defaultMessage='Mattermost was unable to load because a setting in your browser prevents the use of its local storage features. To allow Mattermost to load, try the following actions:'
/>
<ul>
<li>
<FormattedMessage
id='error.local_storage.help1'
defaultMessage='Enable cookies'
/>
</li>
<li>
<FormattedMessage
id='error.local_storage.help2'
defaultMessage='Turn off private browsing'
/>
</li>
<li>
<FormattedMessage
id='error.local_storage.help3'
defaultMessage='Use a supported browser (IE 11, Chrome 61+, Firefox 60+, Safari 12+, Edge 42+)'
/>
</li>
</ul>
</div>
);
break;
case ErrorPageTypes.PERMALINK_NOT_FOUND:
errorMessage = (
<p>
<FormattedMessage
id='permalink.error.access'
defaultMessage='Permalink belongs to a deleted message or to a channel to which you do not have access.'
/>
</p>
);
break;
case ErrorPageTypes.TEAM_NOT_FOUND:
errorMessage = (
<p>
<FormattedMessage
id='error.team_not_found.message'
defaultMessage="The team you're requesting is private or does not exist. Please contact your Administrator for an invitation."
/>
</p>
);
break;
case ErrorPageTypes.CHANNEL_NOT_FOUND:
errorMessage = (
<p>
{isGuest ? (
<FormattedMessage
id='error.channel_not_found.message_guest'
defaultMessage='Your guest account has no channels assigned. Please contact an administrator.'
/>
) : (
<FormattedMessage
id='error.channel_not_found.message'
defaultMessage="The channel you're requesting is private or does not exist. Please contact an Administrator to be added to the channel."
/>
)}
</p>
);
break;
case ErrorPageTypes.OAUTH_MISSING_CODE:
errorMessage = (
<div>
<p>
<FormattedMessage
id='error.oauth_missing_code'
defaultMessage='The service provider {service} did not provide an authorization code in the redirect URL.'
values={{
service,
}}
/>
</p>
<p>
<FormattedMessage
id='error.oauth_missing_code.google'
defaultMessage='For {link} make sure your administrator enabled the Google+ API.'
values={{
link: (
<ErrorLink
url={'https://docs.mattermost.com/deployment/sso-google.html'}
messageId={t('error.oauth_missing_code.google.link')}
defaultMessage={'Google Apps'}
/>
),
}}
/>
</p>
<p>
<FormattedMessage
id='error.oauth_missing_code.office365'
defaultMessage='For {link} make sure the administrator of your Microsoft organization has enabled the Mattermost app.'
values={{
link: (
<ErrorLink
url={'https://docs.mattermost.com/deployment/sso-office.html'}
messageId={t('error.oauth_missing_code.office365.link')}
defaultMessage={'Office 365'}
/>
),
}}
/>
</p>
<p>
<FormattedMessage
id='error.oauth_missing_code.gitlab'
defaultMessage='For {link} please make sure you followed the setup instructions.'
values={{
link: (
<ErrorLink
url={'https://docs.mattermost.com/deployment/sso-gitlab.html'}
messageId={t('error.oauth_missing_code.gitlab.link')}
defaultMessage={'GitLab'}
/>
),
}}
/>
</p>
<p>
<FormattedMessage
id='error.oauth_missing_code.forum'
defaultMessage="If you reviewed the above and are still having trouble with configuration, you may post in our {link} where we'll be happy to help with issues during setup."
values={{
link: (
<ErrorLink
url={'https://forum.mattermost.org/c/trouble-shoot'}
messageId={t('error.oauth_missing_code.forum.link')}
defaultMessage={'Troubleshooting forum'}
/>
),
}}
/>
</p>
</div>
);
break;
case ErrorPageTypes.OAUTH_ACCESS_DENIED:
errorMessage = (
<p>
<FormattedMessage
id='error.oauth_access_denied'
defaultMessage='You must authorize Mattermost to log in with {service}.'
values={{
service,
}}
/>
</p>
);
break;
case ErrorPageTypes.OAUTH_INVALID_PARAM:
errorMessage = (
<p>
{message}
</p>
);
break;
case ErrorPageTypes.PAGE_NOT_FOUND:
default:
errorMessage = (
<p>
<FormattedMessage
id='error.not_found.message'
defaultMessage='The page you were trying to reach does not exist'
/>
</p>
);
}
} else if (message) {
errorMessage = (
<p>
{message}
</p>
);
} else {
errorMessage = (
<p>
<FormattedMessage
id='error.generic.message'
defaultMessage='An error has occurred.'
/>
</p>
);
}
return errorMessage;
};
export default ErrorMessage;