@@ -94,7 +94,8 @@ - (void)setDefaults {
9494 @([H3Style getStyleType ]): [[H3Style alloc ] initWithInput: self ],
9595 @([UnorderedListStyle getStyleType ]): [[UnorderedListStyle alloc ] initWithInput: self ],
9696 @([OrderedListStyle getStyleType ]): [[OrderedListStyle alloc ] initWithInput: self ],
97- @([BlockQuoteStyle getStyleType ]): [[BlockQuoteStyle alloc ] initWithInput: self ]
97+ @([BlockQuoteStyle getStyleType ]): [[BlockQuoteStyle alloc ] initWithInput: self ],
98+ @([CodeBlockStyle getStyleType ]): [[CodeBlockStyle alloc ] initWithInput: self ]
9899 };
99100
100101 _conflictingStyles = @{
@@ -105,28 +106,31 @@ - (void)setDefaults {
105106 @([InlineCodeStyle getStyleType ]) : @[@([LinkStyle getStyleType ]), @([MentionStyle getStyleType ])],
106107 @([LinkStyle getStyleType ]): @[@([InlineCodeStyle getStyleType ]), @([LinkStyle getStyleType ]), @([MentionStyle getStyleType ])],
107108 @([MentionStyle getStyleType ]): @[@([InlineCodeStyle getStyleType ]), @([LinkStyle getStyleType ])],
108- @([H1Style getStyleType ]): @[@([H2Style getStyleType ]), @([H3Style getStyleType ]), @([UnorderedListStyle getStyleType ]), @([OrderedListStyle getStyleType ]), @([BlockQuoteStyle getStyleType ])],
109- @([H2Style getStyleType ]): @[@([H1Style getStyleType ]), @([H3Style getStyleType ]), @([UnorderedListStyle getStyleType ]), @([OrderedListStyle getStyleType ]), @([BlockQuoteStyle getStyleType ])],
110- @([H3Style getStyleType ]): @[@([H1Style getStyleType ]), @([H2Style getStyleType ]), @([UnorderedListStyle getStyleType ]), @([OrderedListStyle getStyleType ]), @([BlockQuoteStyle getStyleType ])],
111- @([UnorderedListStyle getStyleType ]): @[@([H1Style getStyleType ]), @([H2Style getStyleType ]), @([H3Style getStyleType ]), @([OrderedListStyle getStyleType ]), @([BlockQuoteStyle getStyleType ])],
112- @([OrderedListStyle getStyleType ]): @[@([H1Style getStyleType ]), @([H2Style getStyleType ]), @([H3Style getStyleType ]), @([UnorderedListStyle getStyleType ]), @([BlockQuoteStyle getStyleType ])],
113- @([BlockQuoteStyle getStyleType ]): @[@([H1Style getStyleType ]), @([H2Style getStyleType ]), @([H3Style getStyleType ]), @([UnorderedListStyle getStyleType ]), @([OrderedListStyle getStyleType ])]
109+ @([H1Style getStyleType ]): @[@([H2Style getStyleType ]), @([H3Style getStyleType ]), @([UnorderedListStyle getStyleType ]), @([OrderedListStyle getStyleType ]), @([BlockQuoteStyle getStyleType ]), @([CodeBlockStyle getStyleType ])],
110+ @([H2Style getStyleType ]): @[@([H1Style getStyleType ]), @([H3Style getStyleType ]), @([UnorderedListStyle getStyleType ]), @([OrderedListStyle getStyleType ]), @([BlockQuoteStyle getStyleType ]), @([CodeBlockStyle getStyleType ])],
111+ @([H3Style getStyleType ]): @[@([H1Style getStyleType ]), @([H2Style getStyleType ]), @([UnorderedListStyle getStyleType ]), @([OrderedListStyle getStyleType ]), @([BlockQuoteStyle getStyleType ]), @([CodeBlockStyle getStyleType ])],
112+ @([UnorderedListStyle getStyleType ]): @[@([H1Style getStyleType ]), @([H2Style getStyleType ]), @([H3Style getStyleType ]), @([OrderedListStyle getStyleType ]), @([BlockQuoteStyle getStyleType ]), @([CodeBlockStyle getStyleType ])],
113+ @([OrderedListStyle getStyleType ]): @[@([H1Style getStyleType ]), @([H2Style getStyleType ]), @([H3Style getStyleType ]), @([UnorderedListStyle getStyleType ]), @([BlockQuoteStyle getStyleType ]), @([CodeBlockStyle getStyleType ])],
114+ @([BlockQuoteStyle getStyleType ]): @[@([H1Style getStyleType ]), @([H2Style getStyleType ]), @([H3Style getStyleType ]), @([UnorderedListStyle getStyleType ]), @([OrderedListStyle getStyleType ]), @([CodeBlockStyle getStyleType ])],
115+ @([CodeBlockStyle getStyleType ]): @[@([H1Style getStyleType ]), @([H2Style getStyleType ]), @([H3Style getStyleType ]),
116+ @([BoldStyle getStyleType ]), @([ItalicStyle getStyleType ]), @([UnderlineStyle getStyleType ]), @([StrikethroughStyle getStyleType ]), @([UnorderedListStyle getStyleType ]), @([OrderedListStyle getStyleType ]), @([BlockQuoteStyle getStyleType ]), @([InlineCodeStyle getStyleType ])]
114117 };
115118
116119 _blockingStyles = @{
117- @([BoldStyle getStyleType ]) : @[],
118- @([ItalicStyle getStyleType ]) : @[],
119- @([UnderlineStyle getStyleType ]) : @[],
120- @([StrikethroughStyle getStyleType ]) : @[],
121- @([InlineCodeStyle getStyleType ]) : @[],
122- @([LinkStyle getStyleType ]): @[],
123- @([MentionStyle getStyleType ]): @[],
120+ @([BoldStyle getStyleType ]) : @[@([CodeBlockStyle getStyleType ]) ],
121+ @([ItalicStyle getStyleType ]) : @[@([CodeBlockStyle getStyleType ]) ],
122+ @([UnderlineStyle getStyleType ]) : @[@([CodeBlockStyle getStyleType ]) ],
123+ @([StrikethroughStyle getStyleType ]) : @[@([CodeBlockStyle getStyleType ]) ],
124+ @([InlineCodeStyle getStyleType ]) : @[@([CodeBlockStyle getStyleType ]) ],
125+ @([LinkStyle getStyleType ]): @[@([CodeBlockStyle getStyleType ]) ],
126+ @([MentionStyle getStyleType ]): @[@([CodeBlockStyle getStyleType ]) ],
124127 @([H1Style getStyleType ]): @[],
125128 @([H2Style getStyleType ]): @[],
126129 @([H3Style getStyleType ]): @[],
127130 @([UnorderedListStyle getStyleType ]): @[],
128131 @([OrderedListStyle getStyleType ]): @[],
129132 @([BlockQuoteStyle getStyleType ]): @[],
133+ @([CodeBlockStyle getStyleType ]): @[],
130134 };
131135
132136 parser = [[InputParser alloc ] initWithInput: self ];
@@ -346,6 +350,25 @@ - (void)updateProps:(Props::Shared const &)props oldProps:(Props::Shared const &
346350 }
347351 }
348352
353+ if (newViewProps.htmlStyle .codeblock .color != oldViewProps.htmlStyle .codeblock .color ) {
354+ if (isColorMeaningful (newViewProps.htmlStyle .codeblock .color )) {
355+ [newConfig setCodeBlockFgColor: RCTUIColorFromSharedColor (newViewProps.htmlStyle.codeblock.color)];
356+ stylePropChanged = YES ;
357+ }
358+ }
359+
360+ if (newViewProps.htmlStyle .codeblock .backgroundColor != oldViewProps.htmlStyle .codeblock .backgroundColor ) {
361+ if (isColorMeaningful (newViewProps.htmlStyle .codeblock .backgroundColor )) {
362+ [newConfig setCodeBlockBgColor: RCTUIColorFromSharedColor (newViewProps.htmlStyle.codeblock.backgroundColor)];
363+ stylePropChanged = YES ;
364+ }
365+ }
366+
367+ if (newViewProps.htmlStyle .codeblock .borderRadius != oldViewProps.htmlStyle .codeblock .borderRadius ) {
368+ [newConfig setCodeBlockBorderRadius: newViewProps.htmlStyle.codeblock.borderRadius];
369+ stylePropChanged = YES ;
370+ }
371+
349372 if (newViewProps.htmlStyle .a .textDecorationLine != oldViewProps.htmlStyle .a .textDecorationLine ) {
350373 NSString *objcString = [NSString fromCppString: newViewProps.htmlStyle.a.textDecorationLine];
351374 if ([objcString isEqualToString: DecorationUnderline]) {
@@ -696,7 +719,7 @@ - (void)tryUpdatingActiveStyles {
696719 .isUnorderedList = [_activeStyles containsObject: @([UnorderedListStyle getStyleType ])],
697720 .isOrderedList = [_activeStyles containsObject: @([OrderedListStyle getStyleType ])],
698721 .isBlockQuote = [_activeStyles containsObject: @([BlockQuoteStyle getStyleType ])],
699- .isCodeBlock = NO , // [_activeStyles containsObject: @([CodeBlockStyle getStyleType])],
722+ .isCodeBlock = [_activeStyles containsObject: @([CodeBlockStyle getStyleType ])],
700723 .isImage = NO // [_activeStyles containsObject: @([ImageStyle getStyleType]])],
701724 });
702725 }
@@ -768,6 +791,8 @@ - (void)handleCommand:(const NSString *)commandName args:(const NSArray *)args {
768791 [self toggleParagraphStyle: [OrderedListStyle getStyleType ]];
769792 } else if ([commandName isEqualToString: @" toggleBlockQuote" ]) {
770793 [self toggleParagraphStyle: [BlockQuoteStyle getStyleType ]];
794+ } else if ([commandName isEqualToString: @" toggleCodeBlock" ]) {
795+ [self toggleParagraphStyle: [CodeBlockStyle getStyleType ]];
771796 }
772797}
773798
@@ -1033,6 +1058,12 @@ - (void)anyTextMayHaveBeenModified {
10331058 [bqStyle manageBlockquoteColor ];
10341059 }
10351060
1061+ // codeblock colors management
1062+ CodeBlockStyle *codeBlockStyle = stylesDict[@([CodeBlockStyle getStyleType ])];
1063+ if (codeBlockStyle != nullptr ) {
1064+ [codeBlockStyle manageCodeBlockColor ];
1065+ }
1066+
10361067 // improper headings fix
10371068 H1Style *h1Style = stylesDict[@([H1Style getStyleType ])];
10381069 H2Style *h2Style = stylesDict[@([H2Style getStyleType ])];
0 commit comments