File tree Expand file tree Collapse file tree 1 file changed +15
-3
lines changed
packages/roosterjs-content-model-dom/lib/modelToDom/handlers Expand file tree Collapse file tree 1 file changed +15
-3
lines changed Original file line number Diff line number Diff line change @@ -56,7 +56,7 @@ export const handleParagraph: ContentModelBlockHandler<ContentModelParagraph> =
5656 if ( parent ) {
5757 const firstSegment = paragraph . segments [ 0 ] ;
5858
59- const segmentContext = context as ModelToDomSegmentContext ;
59+ const segmentContext : ModelToDomSegmentContext = context ;
6060
6161 if ( firstSegment ?. segmentType == 'SelectionMarker' ) {
6262 // Make sure there is a segment created before selection marker.
@@ -75,9 +75,21 @@ export const handleParagraph: ContentModelBlockHandler<ContentModelParagraph> =
7575 ) ;
7676 }
7777
78+ // Find the last logical inline segment to be treated as the "last" one.
79+ // Skip SelectionMarker since it is not rendered as visible content.
80+ let lastSegmentIndex = - 1 ;
81+
82+ for ( let i = paragraph . segments . length - 1 ; i >= 0 ; i -- ) {
83+ const seg = paragraph . segments [ i ] ;
84+
85+ if ( seg . segmentType != 'SelectionMarker' ) {
86+ lastSegmentIndex = i ;
87+ break ;
88+ }
89+ }
90+
7891 paragraph . segments . forEach ( ( segment , index ) => {
79- segmentContext . isLastSegment =
80- index === paragraph . segments . length - 1 ;
92+ segmentContext . isLastSegment = index === lastSegmentIndex ;
8193
8294 const newSegments : Node [ ] = [ ] ;
8395 context . modelHandlers . segment (
You can’t perform that action at this time.
0 commit comments