返回 oh-my-ppt
pageUtils.ts
1 import type { GeneratedPage } from '@renderer/store'
2 import type { SessionPreviewPage } from './types'
3
4 export function isPageGenerationLocked(
5 pageId: string | null | undefined,
6 options: {
7 isAddingPage: boolean
8 addingPageId: string | null
9 isRetryingSinglePage: boolean
10 retryingSinglePageId: string | null
11 }
12 ): boolean {
13 if (!pageId) return false
14 return (
15 (options.isAddingPage && (!options.addingPageId || options.addingPageId === pageId)) ||
16 (options.isRetryingSinglePage &&
17 (!options.retryingSinglePageId || options.retryingSinglePageId === pageId))
18 )
19 }
20
21 export function normalizePagesForSelection(pages: GeneratedPage[]): SessionPreviewPage[] {
22 return [...pages]
23 .sort((a, b) => a.pageNumber - b.pageNumber)
24 .map((page) => {
25 const pageId = page.pageId || `page-${page.pageNumber}`
26 return {
27 ...page,
28 id: page.id || pageId,
29 pageId
30 }
31 })
32 }
33
33 lines TYPESCRIPT