Skip to content

Commit 229203b

Browse files
fix: collection block ids
1 parent f4fd22c commit 229203b

File tree

5 files changed

+22
-13
lines changed

5 files changed

+22
-13
lines changed

packages/notion-client/src/notion-api.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ export class NotionAPI {
121121
getBlockCollectionId(block)
122122

123123
if (collectionId) {
124-
return block.view_ids.map((collectionViewId) => ({
124+
return block.view_ids?.map((collectionViewId) => ({
125125
collectionId,
126126
collectionViewId
127127
}))

packages/react-notion-x/src/third-party/collection-view-board.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ function Board({ collectionView, collectionData, collection, padding }) {
140140

141141
return (
142142
<div className='notion-board-group' key={index}>
143-
{group.blockIds.map((blockId: string) => {
143+
{group.blockIds?.map((blockId: string) => {
144144
const block = recordMap.block[blockId]?.value as PageBlock
145145
if (!block) return null
146146

packages/react-notion-x/src/third-party/collection-view-gallery.tsx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import { useNotionContext } from '../context'
88
import { CollectionCard } from './collection-card'
99
import { CollectionGroup } from './collection-group'
1010

11+
const defaultBlockIds = []
12+
1113
export const CollectionViewGallery: React.FC<CollectionViewProps> = ({
1214
collection,
1315
collectionView,
@@ -32,8 +34,9 @@ export const CollectionViewGallery: React.FC<CollectionViewProps> = ({
3234
}
3335

3436
const blockIds =
35-
collectionData['collection_group_results']?.blockIds ??
36-
collectionData.blockIds
37+
(collectionData['collection_group_results']?.blockIds ??
38+
collectionData.blockIds) ||
39+
defaultBlockIds
3740

3841
return (
3942
<Gallery
@@ -61,7 +64,7 @@ function Gallery({ blockIds, collectionView, collection }) {
6164
`notion-gallery-grid-size-${gallery_cover_size}`
6265
)}
6366
>
64-
{blockIds.map((blockId) => {
67+
{blockIds?.map((blockId) => {
6568
const block = recordMap.block[blockId]?.value as PageBlock
6669
if (!block) return null
6770

packages/react-notion-x/src/third-party/collection-view-list.tsx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import { useNotionContext } from '../context'
77
import { CollectionGroup } from './collection-group'
88
import { getCollectionGroups } from './collection-utils'
99

10+
const defaultBlockIds = []
11+
1012
export const CollectionViewList: React.FC<CollectionViewProps> = ({
1113
collection,
1214
collectionView,
@@ -27,8 +29,9 @@ export const CollectionViewList: React.FC<CollectionViewProps> = ({
2729
}
2830

2931
const blockIds =
30-
collectionData['collection_group_results']?.blockIds ??
31-
collectionData.blockIds
32+
(collectionData['collection_group_results']?.blockIds ??
33+
collectionData.blockIds) ||
34+
defaultBlockIds
3235

3336
return (
3437
<List
@@ -46,7 +49,7 @@ function List({ blockIds, collection, collectionView }) {
4649
<div className='notion-list-collection'>
4750
<div className='notion-list-view'>
4851
<div className='notion-list-body'>
49-
{blockIds.map((blockId) => {
52+
{blockIds?.map((blockId) => {
5053
const block = recordMap.block[blockId]?.value as PageBlock
5154
if (!block) return null
5255

packages/react-notion-x/src/third-party/collection-view-table.tsx

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import { getCollectionGroups } from './collection-utils'
88
import { Property } from './property'
99
import { useNotionContext } from '../context'
1010

11+
const defaultBlockIds = []
12+
1113
export const CollectionViewTable: React.FC<CollectionViewProps> = ({
1214
collection,
1315
collectionView,
@@ -44,8 +46,9 @@ export const CollectionViewTable: React.FC<CollectionViewProps> = ({
4446
}
4547

4648
const blockIds =
47-
collectionData['collection_group_results']?.blockIds ??
48-
collectionData.blockIds
49+
(collectionData['collection_group_results']?.blockIds ??
50+
collectionData.blockIds) ||
51+
defaultBlockIds
4952

5053
return (
5154
<Table
@@ -58,7 +61,7 @@ export const CollectionViewTable: React.FC<CollectionViewProps> = ({
5861
)
5962
}
6063

61-
function Table({ blockIds, collection, collectionView, width, padding }) {
64+
function Table({ blockIds = [], collection, collectionView, width, padding }) {
6265
const { recordMap, linkTableTitleProperties } = useNotionContext()
6366

6467
const tableStyle = React.useMemo(
@@ -80,7 +83,7 @@ function Table({ blockIds, collection, collectionView, width, padding }) {
8083
let properties = []
8184

8285
if (collectionView.format?.table_properties) {
83-
properties = collectionView.format?.table_properties.filter(
86+
properties = collectionView.format.table_properties.filter(
8487
(p) => p.visible && collection.schema[p.property]
8588
)
8689
} else {
@@ -131,7 +134,7 @@ function Table({ blockIds, collection, collectionView, width, padding }) {
131134
<div className='notion-table-header-placeholder'></div>
132135

133136
<div className='notion-table-body'>
134-
{blockIds.map((blockId) => (
137+
{blockIds?.map((blockId) => (
135138
<div className='notion-table-row' key={blockId}>
136139
{properties.map((p) => {
137140
const schema = collection.schema?.[p.property]

0 commit comments

Comments
 (0)