Skip to content

Commit 21614f6

Browse files
committed
Fix diff line range normalization
1 parent 9fb1247 commit 21614f6

2 files changed

Lines changed: 14 additions & 3 deletions

File tree

apps/web/src/components/DiffPanel.logic.test.ts

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { describe, expect, it } from "vitest";
22
import type { FileDiffMetadata } from "@pierre/diffs/react";
3-
import { buildFileKeyByPathIndex } from "./DiffPanel.logic";
3+
import { areSelectedLineRangesEqual, buildFileKeyByPathIndex } from "./DiffPanel.logic";
44

55
function makeFileDiff(
66
input: Partial<Pick<FileDiffMetadata, "name" | "prevName" | "cacheKey">>,
@@ -38,3 +38,14 @@ describe("buildFileKeyByPathIndex", () => {
3838
expect([...fileKeyByPath.entries()]).toEqual([["src/example.ts", "same-cache-key"]]);
3939
});
4040
});
41+
42+
describe("areSelectedLineRangesEqual", () => {
43+
it("treats forward and backward single-side selections as equal", () => {
44+
expect(
45+
areSelectedLineRangesEqual(
46+
{ start: 5, end: 10, side: "additions" },
47+
{ start: 10, end: 5, side: "additions" },
48+
),
49+
).toBe(true);
50+
});
51+
});

apps/web/src/components/DiffPanel.logic.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ function toNormalizedLineRange(range: SelectedLineRange): SelectedLineRange {
8080
start: range.end,
8181
end: range.start,
8282
...((range.endSide ?? range.side) ? { side: range.endSide ?? range.side } : {}),
83-
...(range.side ? { endSide: range.side } : {}),
83+
...(range.endSide ? { endSide: range.side } : {}),
8484
};
8585
}
8686

@@ -92,7 +92,7 @@ function toLineRange(range: SelectedLineRange): { start: number; end: number } {
9292
};
9393
}
9494

95-
function areSelectedLineRangesEqual(
95+
export function areSelectedLineRangesEqual(
9696
left: SelectedLineRange | null,
9797
right: SelectedLineRange | null,
9898
): boolean {

0 commit comments

Comments
 (0)