* Restore saved scroll positions
()
| 133 | * Restore saved scroll positions |
| 134 | */ |
| 135 | function restoreScrollPositions(): void { |
| 136 | if (!preserveScroll || !containerRef.value) return; |
| 137 | |
| 138 | const state = getPreservedState(surfaceId); |
| 139 | |
| 140 | // Restore container scroll position |
| 141 | const containerScroll = state.scrollPositions.get('__container__'); |
| 142 | if (containerScroll) { |
| 143 | containerRef.value.scrollTop = containerScroll.top; |
| 144 | containerRef.value.scrollLeft = containerScroll.left; |
| 145 | } |
| 146 | |
| 147 | // Restore scroll positions of scrollable children |
| 148 | state.scrollPositions.forEach((pos, id) => { |
| 149 | if (id === '__container__') return; |
| 150 | |
| 151 | const el = containerRef.value?.querySelector(`[data-scroll-preserve="${id}"]`) |
| 152 | || containerRef.value?.querySelector(`#${id}`); |
| 153 | if (el) { |
| 154 | (el as HTMLElement).scrollTop = pos.top; |
| 155 | (el as HTMLElement).scrollLeft = pos.left; |
| 156 | } |
| 157 | }); |
| 158 | } |
| 159 | |
| 160 | /** |
| 161 | * Save currently focused element |
no test coverage detected