@@ -3,6 +3,7 @@ import { Container, Row, Col, Tabs, Tab, Spinner } from "react-bootstrap";
3
3
import { CodeEditor } from "@/components/CodeEditor" ;
4
4
import { RuleConfig } from "@/components/RuleConfig" ;
5
5
import { LintMessages } from "@/components/LintMessages" ;
6
+ import { ErrorMessage } from "@/components/ErrorMessage" ;
6
7
import { Header } from "@/components/Header" ;
7
8
import { Fixed } from "@/components/Fixed" ;
8
9
import { loadDemoLinter , DemoLinter } from "@/lib/linter" ;
@@ -26,6 +27,7 @@ export const App: FC = () => {
26
27
const [ rules , setRules ] = useState ( paramsState ?. rules || DEFAULT_RULE_CONFIG ) ;
27
28
const [ fixed , setFixed ] = useState < string > ( "" ) ;
28
29
const [ linter , setLinter ] = useState < DemoLinter | null > ( null ) ;
30
+ const [ ruleConfigError , setRuleConfigError ] = useState < Error | null > ( null ) ;
29
31
30
32
useEffect ( ( ) => {
31
33
if ( linter ) {
@@ -38,7 +40,7 @@ export const App: FC = () => {
38
40
useEffect ( ( ) => {
39
41
( async ( ) => setLinter ( await loadDemoLinter ( ) ) ) ( ) ;
40
42
} , [ ] ) ;
41
- console . log ( queryParamsState . get ( ) . code || DEFAULT_CODE ) ;
43
+
42
44
return (
43
45
< >
44
46
< Header />
@@ -71,7 +73,10 @@ export const App: FC = () => {
71
73
const rules = JSON . parse ( rulesString ) ;
72
74
setRules ( rules ) ;
73
75
queryParamsState . set ( { code, rules } ) ;
74
- } catch { }
76
+ setRuleConfigError ( null ) ;
77
+ } catch ( error ) {
78
+ setRuleConfigError ( error ) ;
79
+ }
75
80
} }
76
81
/>
77
82
</ Tab >
@@ -88,7 +93,14 @@ export const App: FC = () => {
88
93
) : (
89
94
< Tabs >
90
95
< 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
+ ) }
92
104
</ Tab >
93
105
< Tab eventKey = "fixed" title = "Fixed" >
94
106
< Fixed code = { fixed } />
0 commit comments