mirror of
https://github.com/gotson/komga.git
synced 2025-12-06 08:32:25 +01:00
Merge 9ea3725c7d into 361d20df2c
This commit is contained in:
commit
778d3e5d40
2 changed files with 14 additions and 21 deletions
|
|
@ -9,20 +9,12 @@ export function buildSpreads(pages: PageDtoWithUrl[], pageLayout: PagedReaderLay
|
|||
if (pageLayout !== PagedReaderLayout.SINGLE_PAGE) {
|
||||
const spreads = [] as PageDtoWithUrl[][]
|
||||
const pagesClone = cloneDeep(pages)
|
||||
let lastPages = undefined
|
||||
if (pageLayout === PagedReaderLayout.DOUBLE_PAGES) {
|
||||
const firstPage = pagesClone.shift() as PageDtoWithUrl
|
||||
if (isPageLandscape(firstPage))
|
||||
spreads.push([firstPage] as PageDtoWithUrl[])
|
||||
else
|
||||
spreads.push([createEmptyPage(firstPage), firstPage] as PageDtoWithUrl[])
|
||||
if (pagesClone.length > 0) {
|
||||
const lastPage = pagesClone.pop() as PageDtoWithUrl
|
||||
if(isPageLandscape(lastPage))
|
||||
lastPages = [lastPage] as PageDtoWithUrl[]
|
||||
else
|
||||
lastPages = [lastPage, createEmptyPage(lastPage)] as PageDtoWithUrl[]
|
||||
}
|
||||
}
|
||||
while (pagesClone.length > 0) {
|
||||
const p = pagesClone.shift() as PageDtoWithUrl
|
||||
|
|
@ -30,19 +22,23 @@ export function buildSpreads(pages: PageDtoWithUrl[], pageLayout: PagedReaderLay
|
|||
spreads.push([p])
|
||||
} else {
|
||||
if (pagesClone.length > 0) {
|
||||
const p2 = pagesClone.shift() as PageDtoWithUrl
|
||||
if (isPageLandscape(p2)) {
|
||||
spreads.push([p, createEmptyPage(p)])
|
||||
spreads.push([p2])
|
||||
const [prevPage] = spreads.length > 0 ? (spreads[spreads.length - 1] as PageDtoWithUrl[]) : []
|
||||
if (pageLayout === PagedReaderLayout.DOUBLE_NO_COVER && isPageLandscape(prevPage)){
|
||||
spreads.push([createEmptyPage(p), p])
|
||||
} else {
|
||||
spreads.push([p, p2])
|
||||
const p2 = pagesClone.shift() as PageDtoWithUrl
|
||||
if (isPageLandscape(p2)) {
|
||||
spreads.push([p, createEmptyPage(p)])
|
||||
spreads.push([p2])
|
||||
} else {
|
||||
spreads.push([p, p2])
|
||||
}
|
||||
}
|
||||
} else {
|
||||
spreads.push([p, createEmptyPage(p)])
|
||||
}
|
||||
}
|
||||
}
|
||||
if (lastPages) spreads.push(lastPages)
|
||||
return spreads
|
||||
} else {
|
||||
return pages.map(p => [p])
|
||||
|
|
|
|||
|
|
@ -95,12 +95,12 @@ describe('Double Pages', () => {
|
|||
] as PageDtoWithUrl[]
|
||||
|
||||
const spreads = buildSpreads(pages, pageLayout)
|
||||
|
||||
expect(spreads.length).toEqual(4)
|
||||
// Expecting [E, 1], [2, 3], [4, 5]
|
||||
expect(spreads.length).toEqual(3)
|
||||
|
||||
expect(spreads[0].length).toEqual(2)
|
||||
expect(spreads[0][1].number).toEqual(1)
|
||||
expect(spreads[0][0].number).toEqual(0) // empty page
|
||||
expect(spreads[0][1].number).toEqual(1)
|
||||
|
||||
expect(spreads[1].length).toEqual(2)
|
||||
expect(spreads[1][0].number).toEqual(2)
|
||||
|
|
@ -108,10 +108,7 @@ describe('Double Pages', () => {
|
|||
|
||||
expect(spreads[2].length).toEqual(2)
|
||||
expect(spreads[2][0].number).toEqual(4)
|
||||
|
||||
expect(spreads[3].length).toEqual(2)
|
||||
expect(spreads[3][0].number).toEqual(5)
|
||||
expect(spreads[3][1].number).toEqual(0) // empty page
|
||||
expect(spreads[2][1].number).toEqual(5)
|
||||
})
|
||||
})
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue