Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -56,52 +56,19 @@ describe("offsetToViewTimelineRange", () => {
})
})

it("returns Enter preset for string offsets", () => {
it("returns undefined for string offsets (not accelerated)", () => {
expect(
offsetToViewTimelineRange(["start end", "end end"])
).toEqual({
rangeStart: "entry 0%",
rangeEnd: "entry 100%",
})
})

it("returns Exit preset for string offsets", () => {
).toBeUndefined()
expect(
offsetToViewTimelineRange(["start start", "end start"])
).toEqual({
rangeStart: "exit 0%",
rangeEnd: "exit 100%",
})
})

it("returns Any preset for string offsets", () => {
).toBeUndefined()
expect(
offsetToViewTimelineRange(["end start", "start end"])
).toEqual({
rangeStart: "cover 0%",
rangeEnd: "cover 100%",
})
})

it("returns All preset for string offsets", () => {
expect(
offsetToViewTimelineRange(["start start", "end end"])
).toEqual({
rangeStart: "contain 0%",
rangeEnd: "contain 100%",
})
})

it("returns All preset for string offsets", () => {
).toBeUndefined()
expect(
offsetToViewTimelineRange(["start start", "end end"])
).toEqual({
rangeStart: "contain 0%",
rangeEnd: "contain 100%",
})
})

it("returns undefined for other string offsets", () => {
).toBeUndefined()
Comment on lines 69 to +71
expect(
offsetToViewTimelineRange(["start center", "end start"])
).toBeUndefined()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,32 +18,12 @@ const presets: [ProgressIntersection[], string][] = [
[ScrollOffsetPresets.All, "contain"],
]

const stringToProgress: Record<string, number> = {
start: 0,
end: 1,
}

function parseStringOffset(
s: string
): ProgressIntersection | undefined {
const parts = s.trim().split(/\s+/)
if (parts.length !== 2) return undefined
const a = stringToProgress[parts[0]]
const b = stringToProgress[parts[1]]
if (a === undefined || b === undefined) return undefined
return [a, b]
}

function normaliseOffset(offset: ScrollOffset): ProgressIntersection[] | undefined {
if (offset.length !== 2) return undefined
const result: ProgressIntersection[] = []
for (const item of offset) {
if (Array.isArray(item)) {
result.push(item as ProgressIntersection)
} else if (typeof item === "string") {
const parsed = parseStringOffset(item)
if (!parsed) return undefined
result.push(parsed)
} else {
return undefined
}
Expand Down
Loading