@@ -42,8 +42,11 @@ export function PortableText<B extends TypedObject = PortableTextBlock>({
4242 onMissingComponent : missingComponentHandler = printWarning ,
4343} : PortableTextProps < B > ) : ReactNode {
4444 const handleMissingComponent = missingComponentHandler || noop
45- const blocks = useMemo ( ( ) => Array . isArray ( input ) ? input : [ input ] , [ input ] )
46- const nested = useMemo ( ( ) => nestLists ( blocks , listNestingMode || LIST_NEST_MODE_HTML ) , [ blocks , listNestingMode ] )
45+ const blocks = useMemo ( ( ) => ( Array . isArray ( input ) ? input : [ input ] ) , [ input ] )
46+ const nested = useMemo (
47+ ( ) => nestLists ( blocks , listNestingMode || LIST_NEST_MODE_HTML ) ,
48+ [ blocks , listNestingMode ] ,
49+ )
4750
4851 const components = useMemo ( ( ) => {
4952 return componentOverrides
@@ -300,15 +303,10 @@ function RenderCustomBlock({
300303 index : number
301304 isInline : boolean
302305} ) {
303- const nodeOptions = {
304- value : node ,
305- isInline,
306- index,
307- renderNode,
308- }
309-
310306 const Node = components . types [ node . _type ]
311- return Node ? < Node { ...nodeOptions } /> : null
307+ return Node ? (
308+ < Node value = { node } isInline = { isInline } index = { index } renderNode = { renderNode } />
309+ ) : null
312310}
313311
314312function RenderBlock ( {
@@ -326,13 +324,13 @@ function RenderBlock({
326324 index : number
327325 isInline : boolean
328326} ) {
329- const { _key , ... props } = serializeBlock ( {
327+ const block = serializeBlock ( {
330328 node,
331329 index,
332330 isInline,
333331 renderNode,
334332 } )
335- const style = props . node . style || 'normal'
333+ const style = block . node . style || 'normal'
336334 const handler =
337335 typeof components . block === 'function' ? components . block : components . block [ style ]
338336 const Block = handler || components . unknownBlockStyle
@@ -344,7 +342,11 @@ function RenderBlock({
344342 } )
345343 }
346344
347- return < Block { ...props } value = { props . node } renderNode = { renderNode } />
345+ return (
346+ < Block index = { block . index } isInline = { block . isInline } value = { block . node } renderNode = { renderNode } >
347+ { block . children }
348+ </ Block >
349+ )
348350}
349351
350352function RenderText ( {
@@ -377,20 +379,13 @@ function RenderUnknownType({
377379 index : number
378380 isInline : boolean
379381} ) {
380- const nodeOptions = {
381- value : node ,
382- isInline,
383- index,
384- renderNode,
385- }
386-
387382 handleMissingComponent ( unknownTypeWarning ( node . _type ) , {
388383 nodeType : 'block' ,
389384 type : node . _type ,
390385 } )
391386
392387 const UnknownType = components . unknownType
393- return < UnknownType { ... nodeOptions } />
388+ return < UnknownType value = { node } isInline = { isInline } index = { index } renderNode = { renderNode } />
394389}
395390
396391function serializeBlock ( options : Serializable < PortableTextBlock > ) : SerializedBlock {
0 commit comments