Added anchor hash to break blocks
This commit is contained in:
		
							parent
							
								
									14622450cf
								
							
						
					
					
						commit
						8557df4753
					
				| @ -2,7 +2,9 @@ import { | ||||
|   BreakBlockType, | ||||
|   Collections, | ||||
|   PageType, | ||||
|   RichTextBreakBlock, | ||||
|   RichTextContent, | ||||
|   RichTextSectionBlock, | ||||
|   isBlockNodeBreakBlock, | ||||
|   isBlockNodeSectionBlock, | ||||
|   isNodeBlockNode, | ||||
| @ -57,22 +59,33 @@ const handleContent = ( | ||||
|   { root: { children, ...others } }: RichTextContent, | ||||
|   parentPrefix = "" | ||||
| ): RichTextContent => { | ||||
|   let sectionCount = 0; | ||||
|   let index = 0; | ||||
|   return { | ||||
|     root: { | ||||
|       ...others, | ||||
|       children: children.map((node) => { | ||||
|         if (isNodeBlockNode(node) && isBlockNodeSectionBlock(node)) { | ||||
|           sectionCount++; | ||||
|           const anchorHash = `${parentPrefix}${sectionCount}.`; | ||||
|           return { | ||||
|             ...node, | ||||
|             fields: { | ||||
|               ...node.fields, | ||||
|         if (isNodeBlockNode(node)) { | ||||
|           if (isBlockNodeSectionBlock(node)) { | ||||
|             index++; | ||||
|             const anchorHash = `${parentPrefix}${index}.`; | ||||
|             const newNode: RichTextSectionBlock = { | ||||
|               ...node, | ||||
|               fields: { | ||||
|                 ...node.fields, | ||||
|                 content: handleContent(node.fields.content, anchorHash), | ||||
|               }, | ||||
|               anchorHash, | ||||
|               content: handleContent(node.fields.content, anchorHash), | ||||
|             }, | ||||
|           }; | ||||
|             }; | ||||
|             return newNode; | ||||
|           } else if (isBlockNodeBreakBlock(node)) { | ||||
|             index++; | ||||
|             const anchorHash = `${parentPrefix}${index}.`; | ||||
|             const newNode: RichTextBreakBlock = { | ||||
|               ...node, | ||||
|               anchorHash, | ||||
|             }; | ||||
|             return newNode; | ||||
|           } | ||||
|         } | ||||
|         return node; | ||||
|       }), | ||||
|  | ||||
| @ -198,7 +198,8 @@ export interface RichTextBlockNode extends RichTextNode { | ||||
| } | ||||
| 
 | ||||
| export interface RichTextSectionBlock extends RichTextBlockNode { | ||||
|   fields: SectionBlock & { anchorHash: string }; | ||||
|   fields: SectionBlock; | ||||
|   anchorHash: string; | ||||
| } | ||||
| 
 | ||||
| export interface RichTextTranscriptBlock extends RichTextBlockNode { | ||||
| @ -207,6 +208,7 @@ export interface RichTextTranscriptBlock extends RichTextBlockNode { | ||||
| 
 | ||||
| export interface RichTextBreakBlock extends RichTextBlockNode { | ||||
|   fields: BreakBlock; | ||||
|   anchorHash: string; | ||||
| } | ||||
| 
 | ||||
| export const isNodeParagraphNode = (node: RichTextNode): node is RichTextParagraphNode => | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 DrMint
						DrMint