Skip to content

Commit df86cc7

Browse files
Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent 43218ea commit df86cc7

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

packages/roosterjs-content-model-dom/lib/modelToDom/handlers/handleParagraph.ts

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff 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(

0 commit comments

Comments
 (0)