@@ -12,17 +12,21 @@ import { Preview } from "./preview";
12
12
13
13
type PreviewsKeys = keyof typeof previews ;
14
14
15
+ export interface ComponentPreviewProps {
16
+ name : PreviewsKeys ;
17
+ centered ?: boolean ;
18
+ className ?: string ;
19
+ containerClassName ?: string ;
20
+ aspect ?: "default" | "page" ;
21
+ }
22
+
15
23
export const ComponentPreview = ( {
16
24
name,
17
25
centered = true ,
18
26
className,
27
+ containerClassName,
19
28
aspect = "default" ,
20
- } : {
21
- name : PreviewsKeys ;
22
- centered ?: boolean ;
23
- className ?: string ;
24
- aspect ?: "default" | "page" ;
25
- } ) => {
29
+ } : ComponentPreviewProps ) => {
26
30
const component = React . useMemo ( ( ) => {
27
31
const Component = previews [ name ] ?. component ;
28
32
@@ -47,31 +51,29 @@ export const ComponentPreview = ({
47
51
} , [ name ] ) ;
48
52
49
53
return (
50
- < div >
51
- < Tabs defaultValue = "preview" >
52
- < TabsList className = "grid w-[200px] grid-cols-2 lg:w-[400px]" >
53
- < TabsTrigger value = "preview" > Preview</ TabsTrigger >
54
- < TabsTrigger value = "code" > Code</ TabsTrigger >
55
- </ TabsList >
56
- < TabsContent value = "preview" className = "rounded-md border" >
57
- < Preview aspect = { aspect } centered = { centered } className = { className } >
58
- { component }
59
- </ Preview >
60
- </ TabsContent >
61
- < TabsContent value = "code" className = "rounded border" >
62
- < Code
63
- subProps = { code . map ( ( file ) => ( {
64
- title : code . length > 1 ? file . title : undefined ,
65
- code : file . code ,
66
- lang : "tsx" ,
67
- } ) ) }
68
- style = { { marginTop : 0 , marginBottom : 0 } }
69
- theme = "github-dark-dimmed"
70
- codeClassName = "text-xs min-h-[318px]"
71
- extensions = { [ tabs ] }
72
- />
73
- </ TabsContent >
74
- </ Tabs >
75
- </ div >
54
+ < Tabs defaultValue = "preview" className = { containerClassName } >
55
+ < TabsList className = "grid w-[200px] grid-cols-2 lg:w-[400px]" >
56
+ < TabsTrigger value = "preview" > Preview</ TabsTrigger >
57
+ < TabsTrigger value = "code" > Code</ TabsTrigger >
58
+ </ TabsList >
59
+ < TabsContent value = "preview" className = "rounded-md border" >
60
+ < Preview aspect = { aspect } centered = { centered } className = { className } >
61
+ { component }
62
+ </ Preview >
63
+ </ TabsContent >
64
+ < TabsContent value = "code" className = "rounded border" >
65
+ < Code
66
+ subProps = { code . map ( ( file ) => ( {
67
+ title : code . length > 1 ? file . title : undefined ,
68
+ code : file . code ,
69
+ lang : "tsx" ,
70
+ } ) ) }
71
+ style = { { marginTop : 0 , marginBottom : 0 } }
72
+ theme = "github-dark-dimmed"
73
+ codeClassName = "text-xs min-h-[318px]"
74
+ extensions = { [ tabs ] }
75
+ />
76
+ </ TabsContent >
77
+ </ Tabs >
76
78
) ;
77
79
} ;
0 commit comments