Skip to content

Commit

Permalink
refactor: changed inter-item list spacing to use index for last-item …
Browse files Browse the repository at this point in the history
…exclusion
  • Loading branch information
philprime committed Apr 25, 2024
1 parent e549123 commit 730bcf3
Showing 1 changed file with 6 additions and 12 deletions.
18 changes: 6 additions & 12 deletions Source/Internal/List/PDFListObject.swift
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ class PDFListObject: PDFRenderObject {

let originalLeftIndent = generator.layout.indentation.leftIn(container: container)

for item in list.flatted() {
let flattedList = list.flatted()
for (idx, item) in flattedList.enumerated() {
let indent = item.level < list.levelIndentations.count ?
list.levelIndentations[item.level] :
list.levelIndentations.last ?? (pre: 0, past: 0)
Expand All @@ -30,22 +31,15 @@ class PDFListObject: PDFRenderObject {
result += try createTextItem(generator: generator, container: container, text: item.text)

generator.layout.indentation.setLeft(indentation: originalLeftIndent, in: container)
handleCustomInterItemSpacing(item: item, generator: generator, container: container)
if let interItemSpacing = list.spacing, idx < flattedList.count - 1 {
// No need to add a space if it's the last item or no spacing has been defined
generator.layout.heights.add(interItemSpacing, to: container)
}
}

return result
}

private func handleCustomInterItemSpacing(item: (level: Int, text: String, symbol: PDFListItemSymbol), generator: PDFGenerator, container: PDFContainer) {
guard let interItemSpacing = list.spacing,
let lastItem = list.flatted().last,
item != lastItem else {
//No need to add a space if it's the last item or no spacing has been defined
return
}
generator.layout.heights.add(interItemSpacing, to: container)
}

private func createSymbolItem(
generator: PDFGenerator,
container: PDFContainer,
Expand Down

0 comments on commit 730bcf3

Please sign in to comment.