Skip to content
This repository was archived by the owner on Sep 14, 2022. It is now read-only.

Commit 8c9e691

Browse files
committed
feat: support better error message
1 parent d0f8f66 commit 8c9e691

File tree

3 files changed

+30
-30
lines changed

3 files changed

+30
-30
lines changed

src/App.tsx

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { Container, Row, Col, Tabs, Tab, Spinner } from "react-bootstrap";
33
import { CodeEditor } from "@/components/CodeEditor";
44
import { RuleConfig } from "@/components/RuleConfig";
55
import { LintMessages } from "@/components/LintMessages";
6+
import { ErrorMessage } from "@/components/ErrorMessage";
67
import { Header } from "@/components/Header";
78
import { Fixed } from "@/components/Fixed";
89
import { loadDemoLinter, DemoLinter } from "@/lib/linter";
@@ -26,6 +27,7 @@ export const App: FC = () => {
2627
const [rules, setRules] = useState(paramsState?.rules || DEFAULT_RULE_CONFIG);
2728
const [fixed, setFixed] = useState<string>("");
2829
const [linter, setLinter] = useState<DemoLinter | null>(null);
30+
const [ruleConfigError, setRuleConfigError] = useState<Error | null>(null);
2931

3032
useEffect(() => {
3133
if (linter) {
@@ -38,7 +40,7 @@ export const App: FC = () => {
3840
useEffect(() => {
3941
(async () => setLinter(await loadDemoLinter()))();
4042
}, []);
41-
console.log(queryParamsState.get().code || DEFAULT_CODE);
43+
4244
return (
4345
<>
4446
<Header />
@@ -71,7 +73,10 @@ export const App: FC = () => {
7173
const rules = JSON.parse(rulesString);
7274
setRules(rules);
7375
queryParamsState.set({ code, rules });
74-
} catch {}
76+
setRuleConfigError(null);
77+
} catch (error) {
78+
setRuleConfigError(error);
79+
}
7580
}}
7681
/>
7782
</Tab>
@@ -88,7 +93,14 @@ export const App: FC = () => {
8893
) : (
8994
<Tabs>
9095
<Tab eventKey="messages" title="Messages">
91-
<LintMessages messages={messages} />
96+
{ruleConfigError ? (
97+
<ErrorMessage
98+
origin="ruleconfig.json"
99+
error={ruleConfigError}
100+
/>
101+
) : (
102+
<LintMessages messages={messages} />
103+
)}
92104
</Tab>
93105
<Tab eventKey="fixed" title="Fixed">
94106
<Fixed code={fixed} />

src/components/ErrorMessage.tsx

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import React from "react";
2+
import { Alert } from "react-bootstrap";
3+
import type { FC } from "react";
4+
5+
interface Props {
6+
origin: string;
7+
error: Error;
8+
}
9+
10+
export const ErrorMessage: FC<Props> = (props) => (
11+
<Alert variant="danger">
12+
<Alert.Heading>{props.origin}</Alert.Heading>
13+
{`${props.error}`}
14+
</Alert>
15+
);

src/components/ErrorMessages.tsx

Lines changed: 0 additions & 27 deletions
This file was deleted.

0 commit comments

Comments
 (0)