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