Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop
This commit is contained in:
		
						commit
						78ee06985e
					
				
					 2 changed files with 30 additions and 3 deletions
				
			
		|  | @ -24,6 +24,8 @@ let ro: ResizeObserver; | |||
| let root = $ref<HTMLElement>(); | ||||
| let content = $ref<HTMLElement>(); | ||||
| let margin = $ref(0); | ||||
| const widthHistory = [null, null] as [number | null, number | null]; | ||||
| const heightHistory = [null, null] as [number | null, number | null]; | ||||
| const shouldSpacerMin = inject('shouldSpacerMin', false); | ||||
| 
 | ||||
| const adjust = (rect: { width: number; height: number; }) => { | ||||
|  | @ -47,9 +49,26 @@ onMounted(() => { | |||
| 			height: entries[0].borderBoxSize[0].blockSize, | ||||
| 		}); | ||||
| 		*/ | ||||
| 
 | ||||
| 		const width = root!.offsetWidth; | ||||
| 		const height = root!.offsetHeight; | ||||
| 
 | ||||
| 		//#region Prevent infinite resizing | ||||
| 		// https://github.com/misskey-dev/misskey/issues/9076 | ||||
| 		const pastWidth = widthHistory.pop(); | ||||
| 		widthHistory.unshift(width); | ||||
| 		const pastHeight = heightHistory.pop(); | ||||
| 		heightHistory.unshift(height); | ||||
| 
 | ||||
| 
 | ||||
| 		if (pastWidth === width && pastHeight === height) { | ||||
| 			return; | ||||
| 		} | ||||
| 		//#endregion | ||||
| 
 | ||||
| 		adjust({ | ||||
| 			width: root!.offsetWidth, | ||||
| 			height: root!.offsetHeight, | ||||
| 			width, | ||||
| 			height, | ||||
| 		}); | ||||
| 	}); | ||||
| 	ro.observe(root!); | ||||
|  |  | |||
|  | @ -8,6 +8,7 @@ const mountings = new Map<Element, { | |||
| 	resize: ResizeObserver; | ||||
| 	intersection?: IntersectionObserver; | ||||
| 	previousWidth: number; | ||||
| 	twoPreviousWidth: number; | ||||
| }>(); | ||||
| 
 | ||||
| type ClassOrder = { | ||||
|  | @ -66,7 +67,13 @@ function calc(el: Element) { | |||
| 		delete info.intersection; | ||||
| 	} | ||||
| 
 | ||||
| 	mountings.set(el, Object.assign(info, { previousWidth: width })); | ||||
| 	mountings.set(el, { ...info, ...{ previousWidth: width, twoPreviousWidth: info.previousWidth }}); | ||||
| 
 | ||||
| 	// Prevent infinite resizing
 | ||||
| 	// https://github.com/misskey-dev/misskey/issues/9076
 | ||||
| 	if (info.twoPreviousWidth === width) { | ||||
| 		return; | ||||
| 	} | ||||
| 
 | ||||
| 	const cached = cache.get(getOrderName(width, info.value)); | ||||
| 	if (cached) { | ||||
|  | @ -90,6 +97,7 @@ export default { | |||
| 			value: binding.value, | ||||
| 			resize, | ||||
| 			previousWidth: 0, | ||||
| 			twoPreviousWidth: 0, | ||||
| 		}); | ||||
| 
 | ||||
| 		calc(src); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue