fix nested callout folding
This commit is contained in:
		
							parent
							
								
									8fd496bbef
								
							
						
					
					
						commit
						c89f8b1a9a
					
				
					 3 changed files with 17 additions and 1 deletions
				
			
		| 
						 | 
					@ -4,7 +4,6 @@ draft: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## todo
 | 
					## todo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- blockquote with link in first child broken
 | 
					 | 
				
			||||||
- 404 using base url
 | 
					- 404 using base url
 | 
				
			||||||
- back button with anchors / popovers + spa is broken
 | 
					- back button with anchors / popovers + spa is broken
 | 
				
			||||||
- search should be fast for large repos
 | 
					- search should be fast for large repos
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,6 +4,22 @@ function toggleCallout(this: HTMLElement) {
 | 
				
			||||||
  const collapsed = outerBlock.classList.contains(`is-collapsed`)
 | 
					  const collapsed = outerBlock.classList.contains(`is-collapsed`)
 | 
				
			||||||
  const height = collapsed ? this.scrollHeight : outerBlock.scrollHeight
 | 
					  const height = collapsed ? this.scrollHeight : outerBlock.scrollHeight
 | 
				
			||||||
  outerBlock.style.maxHeight = height + `px`
 | 
					  outerBlock.style.maxHeight = height + `px`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // walk and adjust height of all parents
 | 
				
			||||||
 | 
					  let current = outerBlock
 | 
				
			||||||
 | 
					  let parent = outerBlock.parentElement
 | 
				
			||||||
 | 
					  while (parent) {
 | 
				
			||||||
 | 
					    if (!parent.classList.contains(`callout`)) {
 | 
				
			||||||
 | 
					      return
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const collapsed = parent.classList.contains(`is-collapsed`)
 | 
				
			||||||
 | 
					    const height = collapsed ? parent.scrollHeight : parent.scrollHeight + current.scrollHeight
 | 
				
			||||||
 | 
					    parent.style.maxHeight = height + `px`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    current = parent
 | 
				
			||||||
 | 
					    parent = parent.parentElement
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function setupCallout() {
 | 
					function setupCallout() {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,6 +7,7 @@
 | 
				
			||||||
  padding: 0 1rem;
 | 
					  padding: 0 1rem;
 | 
				
			||||||
  overflow-y: hidden;
 | 
					  overflow-y: hidden;
 | 
				
			||||||
  transition: max-height 0.3s ease;
 | 
					  transition: max-height 0.3s ease;
 | 
				
			||||||
 | 
					  box-sizing: border-box;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  & > *:nth-child(2) {
 | 
					  & > *:nth-child(2) {
 | 
				
			||||||
    margin-top: 0;
 | 
					    margin-top: 0;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue