@@ -2,57 +2,64 @@ import * as Blocks from '@/components/blocks'
2
2
import PropTypes from 'prop-types'
3
3
4
4
/**
5
- * Decide which block to display.
5
+ * Decide which block component to display.
6
6
*
7
- * @author WebDevStudios
8
- * @param {object } block The block data.
7
+ * @param {object } block The block data.
8
+ * @param {number } index A unique key required by React.
9
+ * @param {object } siteSettings Global settings.
10
+ * @return {node } A block-based component
9
11
*/
10
12
export default function displayBlock ( block , index , siteSettings ) {
13
+ const { attributes, name} = block
14
+ const { algolia} = siteSettings
15
+
11
16
// prettier-ignore
12
- switch ( block . name ) {
17
+ switch ( name ) {
13
18
case 'acf/accordions' :
14
- return < Blocks . BlockAccordions props = { block . attributes } key = { index } />
19
+ return < Blocks . BlockAccordions props = { attributes } key = { index } />
15
20
case 'acf/algolia' :
16
21
return (
17
22
< Blocks . BlockAlgolia
18
- props = { block . attributes }
23
+ props = { attributes }
19
24
key = { index }
20
25
indexName = {
21
- siteSettings ?. algolia ?. indexName
22
- ? siteSettings . algolia . indexName
26
+ algolia ?. indexName
27
+ ? algolia . indexName
23
28
: ''
24
29
}
25
30
/>
26
31
)
27
32
case 'acf/netflix' :
28
33
return (
29
- < Blocks . BlockNetflixCarousel props = { block . attributes } key = { index } />
34
+ < Blocks . BlockNetflixCarousel props = { attributes } key = { index } />
30
35
)
31
36
case 'core/block-quote' :
32
- return < Blocks . BlockBlockquote props = { block . attributes } key = { index } />
37
+ return < Blocks . BlockBlockquote props = { attributes } key = { index } />
33
38
case 'core/embed' :
34
- return < Blocks . BlockVideoEmbed props = { block . attributes } key = { index } />
39
+ return < Blocks . BlockVideoEmbed props = { attributes } key = { index } />
35
40
case 'core/heading' :
36
- return < Blocks . BlockHeadings props = { block . attributes } key = { index } />
41
+ return < Blocks . BlockHeadings props = { attributes } key = { index } />
37
42
case 'core/image' :
38
- return < Blocks . BlockImage props = { block . attributes } key = { index } />
43
+ return < Blocks . BlockImage props = { attributes } key = { index } />
39
44
case 'core/image-gallery' :
40
- return < Blocks . BlockImageGallery props = { block . attributes } key = { index } />
45
+ return < Blocks . BlockImageGallery props = { attributes } key = { index } />
41
46
case 'core/list' :
42
- return < Blocks . BlockList props = { block . attributes } key = { index } />
47
+ return < Blocks . BlockList props = { attributes } key = { index } />
43
48
case 'core/paragraph' :
44
- return < Blocks . BlockParagraph props = { block . attributes } key = { index } />
49
+ return < Blocks . BlockParagraph props = { attributes } key = { index } />
45
50
case 'core/separator' :
46
- return < Blocks . BlockSeparator props = { block . attributes } key = { index } />
51
+ return < Blocks . BlockSeparator props = { attributes } key = { index } />
47
52
case 'core/shortcode' :
48
- return < Blocks . BlockShortcode props = { block . attributes } key = { index } />
53
+ return < Blocks . BlockShortcode props = { attributes } key = { index } />
49
54
case 'core/spacer' :
50
- return < Blocks . BlockSpacer props = { block . attributes } key = { index } />
55
+ return < Blocks . BlockSpacer props = { attributes } key = { index } />
51
56
default :
52
- return < pre key = { index } > { JSON . stringify ( block . attributes , null , 2 ) } </ pre >
57
+ return < pre key = { index } > { JSON . stringify ( attributes , null , 2 ) } </ pre >
53
58
}
54
59
}
55
60
56
61
displayBlock . propTypes = {
57
- block : PropTypes . object . isRequired
62
+ block : PropTypes . object . isRequired ,
63
+ index : PropTypes . number . isRequired ,
64
+ siteSettings : PropTypes . object . isRequired
58
65
}
0 commit comments