Skip to content

Commit 600ed22

Browse files
committed
refactor(components): use scrollMode
1 parent 84363bf commit 600ed22

File tree

4 files changed

+29
-24
lines changed

4 files changed

+29
-24
lines changed

packages/app-frontend/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"lru-cache": "^5.1.1",
1414
"pixi.js-legacy": "^5.3.7",
1515
"portal-vue": "^2.1.7",
16+
"scroll-into-view-if-needed": "^2.2.28",
1617
"stylus": "^0.54.7",
1718
"stylus-loader": "^3.0.2",
1819
"vue": "^2.6.11",

packages/app-frontend/src/features/components/ComponentTreeNode.vue

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<script>
22
import { computed, toRefs, onMounted, ref, watchEffect, inject } from '@vue/composition-api'
3+
import scrollIntoView from 'scroll-into-view-if-needed'
34
import { getComponentDisplayName, UNDEFINED } from '@utils/util'
45
import SharedData from '@utils/shared-data'
56
import { useComponent } from '.'
@@ -60,21 +61,16 @@ export default {
6061
6162
// Auto scroll
6263
63-
/** @type {import('@vue/composition-api').Ref<HTMLElement>} */
64-
const treeScroller = inject('treeScroller')
65-
6664
watchEffect(() => {
67-
if (selected.value && toggleEl.value && treeScroller.value) {
65+
if (selected.value && toggleEl.value) {
6866
/** @type {HTMLElement} */
6967
const el = toggleEl.value
70-
const scroller = treeScroller.value
71-
if (el.offsetTop + el.offsetHeight < scroller.scrollTop || el.offsetTop > scroller.scrollTop + scroller.offsetHeight) {
72-
el.scrollIntoView({
73-
block: 'center',
74-
inline: 'center',
75-
behavior: 'smooth'
76-
})
77-
}
68+
scrollIntoView(el, {
69+
scrollMode: 'if-needed',
70+
block: 'center',
71+
inline: 'center',
72+
behavior: 'smooth'
73+
})
7874
}
7975
})
8076

packages/app-frontend/src/features/inspector/custom/CustomInspectorNode.vue

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<script>
22
import { ref, computed, watch, inject, watchEffect } from '@vue/composition-api'
3+
import scrollIntoView from 'scroll-into-view-if-needed'
34
import { useCurrentInspector } from '.'
45
56
const DEFAULT_EXPAND_DEPTH = 2
@@ -50,21 +51,16 @@ export default {
5051
5152
const toggleEl = ref()
5253
53-
/** @type {import('@vue/composition-api').Ref<HTMLElement>} */
54-
const treeScroller = inject('treeScroller')
55-
5654
watchEffect(() => {
57-
if (selected.value && toggleEl.value && treeScroller.value) {
55+
if (selected.value && toggleEl.value) {
5856
/** @type {HTMLElement} */
5957
const el = toggleEl.value
60-
const scroller = treeScroller.value
61-
if (el.offsetTop + el.offsetHeight < scroller.scrollTop || el.offsetTop > scroller.scrollTop + scroller.offsetHeight) {
62-
el.scrollIntoView({
63-
block: 'center',
64-
inline: 'center',
65-
behavior: 'smooth'
66-
})
67-
}
58+
scrollIntoView(el, {
59+
scrollMode: 'if-needed',
60+
block: 'center',
61+
inline: 'center',
62+
behavior: 'smooth'
63+
})
6864
}
6965
})
7066

yarn.lock

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3162,6 +3162,11 @@ compression@^1.7.4:
31623162
safe-buffer "5.1.2"
31633163
vary "~1.1.2"
31643164

3165+
compute-scroll-into-view@^1.0.17:
3166+
version "1.0.17"
3167+
resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz#6a88f18acd9d42e9cf4baa6bec7e0522607ab7ab"
3168+
integrity sha512-j4dx+Fb0URmzbwwMUrhqWM2BEWHdFGx+qZ9qqASHRPqvTYdqvWnHg0H1hIbcyLnvgnoNAVMlwkepyqM3DaIFUg==
3169+
31653170
31663171
version "0.0.1"
31673172
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
@@ -9061,6 +9066,13 @@ schema-utils@^3.0.0:
90619066
ajv "^6.12.5"
90629067
ajv-keywords "^3.5.2"
90639068

9069+
scroll-into-view-if-needed@^2.2.28:
9070+
version "2.2.28"
9071+
resolved "https://registry.yarnpkg.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.28.tgz#5a15b2f58a52642c88c8eca584644e01703d645a"
9072+
integrity sha512-8LuxJSuFVc92+0AdNv4QOxRL4Abeo1DgLnGNkn1XlaujPH/3cCFz3QI60r2VNu4obJJROzgnIUw5TKQkZvZI1w==
9073+
dependencies:
9074+
compute-scroll-into-view "^1.0.17"
9075+
90649076
scrollparent@^2.0.1:
90659077
version "2.0.1"
90669078
resolved "https://registry.yarnpkg.com/scrollparent/-/scrollparent-2.0.1.tgz#715d5b9cc57760fb22bdccc3befb5bfe06b1a317"

0 commit comments

Comments
 (0)