@@ -3,6 +3,7 @@ import { Container, Row, Col, Tabs, Tab, Spinner } from "react-bootstrap";
33import { CodeEditor } from "@/components/CodeEditor" ;
44import { RuleConfig } from "@/components/RuleConfig" ;
55import { LintMessages } from "@/components/LintMessages" ;
6+ import { ErrorMessage } from "@/components/ErrorMessage" ;
67import { Header } from "@/components/Header" ;
78import { Fixed } from "@/components/Fixed" ;
89import { 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 } />
0 commit comments