File tree 4 files changed +45
-39
lines changed
src/shared/paragraphConstructor/ui
4 files changed +45
-39
lines changed Original file line number Diff line number Diff line change 1
1
import styles from "./styles.module.css" ;
2
2
import type { ParagraphConstructorRow } from "../api/types" ;
3
+ import { Row } from "./row" ;
3
4
4
5
interface ParagraphConstructorProps {
5
6
rows : ParagraphConstructorRow [ ] ;
6
7
}
7
8
8
- const createRow = ( row : ParagraphConstructorRow ) => {
9
- const rowClassName = row . accentColor ? styles [ row . accentColor ] : "" ;
10
-
11
- if ( row . isTag ) {
12
- return < span className = { rowClassName } > <{ row . text } ></ span > ;
13
- }
14
-
15
- if ( row . accentSubstring ) {
16
- const [ firstChunk , lastChunk ] = row . text . split ( row . accentSubstring ) ;
17
-
18
- return (
19
- < span >
20
- { firstChunk }
21
- < span className = { rowClassName } > { row . accentSubstring } </ span >
22
- { lastChunk }
23
- </ span >
24
- ) ;
25
- }
26
-
27
- return < span > { row . text } </ span > ;
28
- } ;
29
-
30
9
export const ParagraphConstructor = ( { rows } : ParagraphConstructorProps ) => {
31
10
return (
32
11
< p className = { styles . paragraph } >
33
12
{ rows . map ( ( row , rowIndex ) => {
34
- return < span key = { rowIndex } > { createRow ( row ) } </ span > ;
13
+ return < Row key = { rowIndex } data = { row } / >;
35
14
} ) }
36
15
</ p >
37
16
) ;
Original file line number Diff line number Diff line change
1
+ import styles from "./styles.module.css" ;
2
+ import type { ParagraphConstructorRow } from "../../api/types" ;
3
+
4
+ interface RowProps {
5
+ data : ParagraphConstructorRow ;
6
+ }
7
+
8
+ export const Row = ( { data } : RowProps ) => {
9
+ const rowClassName = data . accentColor ? styles [ data . accentColor ] : "" ;
10
+
11
+ if ( data . isTag ) {
12
+ return < span className = { rowClassName } > <{ data . text } ></ span > ;
13
+ }
14
+
15
+ if ( data . accentSubstring ) {
16
+ const [ firstChunk , lastChunk ] = data . text . split ( data . accentSubstring ) ;
17
+
18
+ return (
19
+ < span >
20
+ { firstChunk }
21
+ < span className = { rowClassName } > { data . accentSubstring } </ span >
22
+ { lastChunk }
23
+ </ span >
24
+ ) ;
25
+ }
26
+
27
+ return < span > { data . text } </ span > ;
28
+ } ;
Original file line number Diff line number Diff line change
1
+ .yellow {
2
+ color : var (--color-yellow );
3
+ }
4
+ .red {
5
+ color : var (--color-red );
6
+ }
7
+ .purple {
8
+ color : var (--color-purple );
9
+ }
10
+ .blue {
11
+ color : var (--color-blue );
12
+ }
13
+ .green {
14
+ color : var (--color-green );
15
+ }
Original file line number Diff line number Diff line change 7
7
font-size : 16px ;
8
8
}
9
9
}
10
-
11
- .yellow {
12
- color : var (--color-yellow );
13
- }
14
- .red {
15
- color : var (--color-red );
16
- }
17
- .purple {
18
- color : var (--color-purple );
19
- }
20
- .blue {
21
- color : var (--color-blue );
22
- }
23
- .green {
24
- color : var (--color-green );
25
- }
You can’t perform that action at this time.
0 commit comments