1
1
import { Actions } from './Actions'
2
2
import { Container } from './Container'
3
- import SyntaxHighlighter from 'react-syntax-highlighter '
3
+ import { Prism } from '../styles/Prism '
4
4
import { tinaField } from 'tinacms/dist/react'
5
+ import DocsRichText from '../styles/DocsRichText'
6
+ import styled from 'styled-components'
5
7
6
8
export function FeatureBlock ( { data, index } ) {
7
9
const isReversed = index % 2 === 1
@@ -10,19 +12,22 @@ export function FeatureBlock({ data, index }) {
10
12
< >
11
13
< div
12
14
key = { 'feature-' + index }
13
- className = { `relative w-full flex flex-col-reverse items-center lg:justify-center lg:min-h-[70vh] gap-12 perspective ${ isReversed ? 'lg:flex-row-reverse' : 'lg:flex-row'
14
- } `}
15
+ className = { `relative w-full flex flex-col-reverse items-center lg:justify-center lg:min-h-[70vh] gap-12 perspective ${
16
+ isReversed ? 'lg:flex-row-reverse' : 'lg:flex-row'
17
+ } `}
15
18
>
16
19
< div className = "w-full lg:w-2/5 max-w-prose flex flex-col gap-6 lg:gap-8" >
17
20
{ data . headline && (
18
- < h3 className = "font-tuner inline-block text-3xl lg:text-5xl lg:leading-tight bg-gradient-to-br from-orange-400 via-orange-500 to-orange-600 bg-clip-text text-transparent text-balance"
21
+ < h3
22
+ className = "font-tuner inline-block text-3xl lg:text-5xl lg:leading-tight bg-gradient-to-br from-orange-400 via-orange-500 to-orange-600 bg-clip-text text-transparent text-balance"
19
23
data-tina-field = { tinaField ( data , 'headline' ) }
20
24
>
21
25
{ data . headline }
22
26
</ h3 >
23
27
) }
24
28
< hr className = "!my-0" />
25
- < p className = "text-lg lg:text-xl lg:leading-normal block bg-gradient-to-br from-blue-700 via-blue-900 to-blue-1000 bg-clip-text text-transparent -mb-2 max-w-prose text-balance"
29
+ < p
30
+ className = "text-lg lg:text-xl lg:leading-normal block bg-gradient-to-br from-blue-700 via-blue-900 to-blue-1000 bg-clip-text text-transparent -mb-2 max-w-prose text-balance"
26
31
data-tina-field = { tinaField ( data , 'text' ) }
27
32
>
28
33
{ data . text }
@@ -31,18 +36,20 @@ export function FeatureBlock({ data, index }) {
31
36
</ div >
32
37
{ data . media && data . media [ 0 ] && (
33
38
< div
34
- className = { `w-full min-w-0 lg:w-1/2 ${ isReversed ? 'pivot-reverse' : 'pivot'
35
- } ${ ( data . media [ 0 ] . image || data . media [ 0 ] . src ) &&
39
+ className = { `w-full min-w-0 lg:w-1/2 ${
40
+ isReversed ? 'pivot-reverse' : 'pivot'
41
+ } ${
42
+ ( data . media [ 0 ] . image || data . media [ 0 ] . src ) &&
36
43
'rounded-lg shadow-panel overflow-hidden bg-gradient-to-br from-blue-800 via-blue-900 to-slate-900'
37
- } `}
44
+ } `}
38
45
>
39
46
{ data . media && data . media [ 0 ] . image && (
40
47
< img
41
48
src = { data . media [ 0 ] . image }
42
49
alt = { data . headline }
43
50
className = "w-full h-auto"
44
- // width="1120px"
45
- // height="800px"
51
+ // width="1120px"
52
+ // height="800px"
46
53
/>
47
54
) }
48
55
{ data . media && data . media [ 0 ] . src && (
@@ -56,28 +63,30 @@ export function FeatureBlock({ data, index }) {
56
63
</ div >
57
64
) }
58
65
< div
59
- className = { `file relative ${ data . media [ 0 ] . file
60
- ? 'rounded-lg rounded-tl-none'
61
- : 'rounded-lg'
62
- } overflow-hidden w-full text-blue-50 border-2 border-blue-800 bg-gradient-to-br from-blue-800 via-blue-900 to-blue-1000 shadow-panel`}
66
+ className = { `file relative ${
67
+ data . media [ 0 ] . file
68
+ ? 'rounded-lg rounded-tl-none'
69
+ : 'rounded-lg'
70
+ } overflow-hidden w-full text-blue-50 border-2 border-blue-800 bg-gradient-to-br from-blue-800 via-blue-900 to-blue-1000 shadow-panel`}
63
71
style = { {
64
72
fontSize :
65
73
1.25 * ( data . media [ 0 ] . scale ? data . media [ 0 ] . scale : 1 ) +
66
74
'em' ,
67
75
} }
68
76
>
69
- < SyntaxHighlighter
70
- language = {
71
- data . media [ 0 ] . language
72
- ? data . media [ 0 ] . language
73
- : 'javascript'
74
- }
75
- useInlineStyles = { false }
76
- // wrapLines={true}
77
- // wrapLongLines={true}
78
- >
79
- { data . media [ 0 ] . code }
80
- </ SyntaxHighlighter >
77
+ < CodeWrapper >
78
+ < div className = "[&>pre]:!bg-transparent [&>pre]:!border-none" >
79
+ < Prism
80
+ lang = {
81
+ data . media [ 0 ] . language
82
+ ? data . media [ 0 ] . language
83
+ : 'javascript'
84
+ }
85
+ theme = "nightOwl"
86
+ value = { data . media [ 0 ] . code }
87
+ />
88
+ </ div >
89
+ </ CodeWrapper >
81
90
</ div >
82
91
</ div >
83
92
) }
@@ -193,3 +202,7 @@ export const FeatureVideo = ({ src, className = '' }) => {
193
202
</ video >
194
203
)
195
204
}
205
+
206
+ const CodeWrapper = styled . div `
207
+ ${ DocsRichText }
208
+ `
0 commit comments