Skip to content

Commit 54eb768

Browse files
authored
Replace reading order indices with HREFs in the EPUB viewport (#624)
1 parent 1c89282 commit 54eb768

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

Sources/Navigator/EPUB/EPUBNavigatorViewController.swift

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -133,12 +133,12 @@ open class EPUBNavigatorViewController: InputObservableViewController,
133133

134134
/// Information about the visible portion of the publication.
135135
public struct Viewport: Equatable {
136-
/// Indices of the visible reading order resources.
137-
public var readingOrderIndices: ClosedRange<[Link].Index>
136+
/// Visible reading order resources.
137+
public var readingOrder: [AnyURL]
138138

139139
/// Range of visible scroll progressions for each visible reading order
140140
/// resource.
141-
public var progressions: [[Link].Index: ClosedRange<Double>]
141+
public var progressions: [AnyURL: ClosedRange<Double>]
142142

143143
/// Range of visible positions.
144144
public var positions: ClosedRange<Int>?
@@ -627,11 +627,14 @@ open class EPUBNavigatorViewController: InputObservableViewController,
627627
return (nil, nil)
628628
}
629629

630+
let visibleReadingOrder: [(index: Int, href: AnyURL)] = spreadView.spread.readingOrderIndices
631+
.map { ($0, readingOrder[$0].url()) }
632+
630633
var viewport = Viewport(
631-
readingOrderIndices: spreadView.spread.readingOrderIndices,
632-
progressions: spreadView.spread.readingOrderIndices.reduce([:]) { progressions, index in
634+
readingOrder: visibleReadingOrder.map(\.href),
635+
progressions: visibleReadingOrder.reduce([:]) { progressions, i in
633636
var progressions = progressions
634-
progressions[index] = spreadView.progression(in: index)
637+
progressions[i.href] = spreadView.progression(in: i.index)
635638
return progressions
636639
},
637640
positions: nil

0 commit comments

Comments
 (0)