File tree Expand file tree Collapse file tree 1 file changed +51
-0
lines changed
packages/test-case-component/src/components Expand file tree Collapse file tree 1 file changed +51
-0
lines changed Original file line number Diff line number Diff line change 1+ import * as React from "react" ;
2+ import { ShikiComponent } from "./shikiComponent" ;
3+ import "../shiki.css" ;
4+ import "../styles.css" ;
5+ import type { TestCaseFixture } from "@cursorless/common" ;
6+ import { testCasesByLanguage } from "../data" ;
7+
8+ export type ShikiComponentComponentProps = TestCaseFixture & {
9+ filename : string ;
10+ raw : TestCaseFixture ;
11+ before : { html : string ; data : string [ ] } ;
12+ during : { html : string ; data : string [ ] } ;
13+ after : { html : string ; data : string [ ] } ;
14+ } ;
15+
16+ export function ShikiComponentList ( {
17+ language,
18+ debug,
19+ } : {
20+ language : string ;
21+ debug ?: boolean ;
22+ } ) {
23+ if ( ! ( language in testCasesByLanguage ) ) {
24+ console . warn (
25+ `Valid languages: ${ Object . keys ( testCasesByLanguage ) . join ( ", " ) } ` ,
26+ ) ;
27+ return < > </ > ;
28+ }
29+ const rawData =
30+ ( testCasesByLanguage as { [ key : string ] : unknown [ ] } ) [ language ] ?? [ ] ;
31+ const data : ShikiComponentComponentProps [ ] =
32+ rawData as ShikiComponentComponentProps [ ] ;
33+
34+ return (
35+ < section className = "dark:text-stone-100" >
36+ { data . map ( ( item ) => {
37+ if ( ! item ) {
38+ return < p > Error: item is null</ p > ;
39+ }
40+ const { filename } = item ;
41+ if ( filename ) {
42+ return (
43+ < ShikiComponent data = { item } debug = { debug } key = { item . filename } />
44+ ) ;
45+ } else {
46+ return < > </ > ;
47+ }
48+ } ) }
49+ </ section >
50+ ) ;
51+ }
You can’t perform that action at this time.
0 commit comments