mirror of
https://github.com/d0zingcat/nextjs-notion-starter-kit.git
synced 2026-06-01 23:16:47 +00:00
feat: improve styling, update deps, fixes
This commit is contained in:
@@ -1,3 +1,12 @@
|
||||
import { Block } from 'notion-types'
|
||||
import { defaultMapImageUrl } from 'react-notion-x'
|
||||
|
||||
export const mapImageUrl = defaultMapImageUrl
|
||||
import { defaultPageIcon, defaultPageCover } from './config'
|
||||
|
||||
export const mapImageUrl = (url: string, block: Block) => {
|
||||
if (url === defaultPageCover || url === defaultPageIcon) {
|
||||
return url
|
||||
}
|
||||
|
||||
return defaultMapImageUrl(url, block)
|
||||
}
|
||||
|
||||
@@ -3,7 +3,9 @@ import lqip from 'lqip-modern'
|
||||
import pMap from 'p-map'
|
||||
import pMemoize from 'p-memoize'
|
||||
import { ExtendedRecordMap, PreviewImage, PreviewImageMap } from 'notion-types'
|
||||
import { getPageImageUrls } from 'notion-utils'
|
||||
|
||||
import { defaultPageIcon, defaultPageCover } from './config'
|
||||
import { db } from './db'
|
||||
import { mapImageUrl } from './map-image-url'
|
||||
|
||||
@@ -16,41 +18,10 @@ import { mapImageUrl } from './map-image-url'
|
||||
export async function getPreviewImageMap(
|
||||
recordMap: ExtendedRecordMap
|
||||
): Promise<PreviewImageMap> {
|
||||
const blockIds = Object.keys(recordMap.block)
|
||||
const imageUrls: string[] = blockIds
|
||||
.map((blockId) => {
|
||||
const block = recordMap.block[blockId]?.value
|
||||
|
||||
if (block) {
|
||||
if (block.type === 'image') {
|
||||
const signedUrl = recordMap.signed_urls?.[block.id]
|
||||
const source = signedUrl || block.properties?.source?.[0]?.[0]
|
||||
|
||||
if (source) {
|
||||
return {
|
||||
block,
|
||||
url: source
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ((block.format as any)?.page_cover) {
|
||||
const source = (block.format as any).page_cover
|
||||
|
||||
return {
|
||||
block,
|
||||
url: source
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return null
|
||||
})
|
||||
.filter(Boolean)
|
||||
.map(({ block, url }) => mapImageUrl(url, block))
|
||||
const urls: string[] = getPageImageUrls(recordMap, { mapImageUrl })
|
||||
.concat([defaultPageIcon, defaultPageCover])
|
||||
.filter(Boolean)
|
||||
|
||||
const urls = Array.from(new Set(imageUrls))
|
||||
const previewImagesMap = Object.fromEntries(
|
||||
await pMap(urls, async (url) => [url, await getPreviewImage(url)], {
|
||||
concurrency: 8
|
||||
|
||||
Reference in New Issue
Block a user