Fix deepLinking scroll behavior
This commit is contained in:
@@ -31,20 +31,32 @@ export const updateResolved = (ori, { layoutActions, getConfigs }) => (...args)
|
|||||||
let swaggerUI = document.querySelector(".swagger-ui")
|
let swaggerUI = document.querySelector(".swagger-ui")
|
||||||
let myScroller = zenscroll.createScroller(swaggerUI)
|
let myScroller = zenscroll.createScroller(swaggerUI)
|
||||||
|
|
||||||
|
let target
|
||||||
|
|
||||||
if(tag && operationId) {
|
if(tag && operationId) {
|
||||||
// Pre-expand and scroll to the operation
|
// Pre-expand and scroll to the operation
|
||||||
layoutActions.show(["operations-tag", tag], true)
|
layoutActions.show(["operations-tag", tag], true)
|
||||||
layoutActions.show(["operations", tag, operationId], true)
|
layoutActions.show(["operations", tag, operationId], true)
|
||||||
|
|
||||||
let target = document.getElementById(`operations-${escapeDeepLinkPath(tag)}-${escapeDeepLinkPath(operationId)}`)
|
target = document
|
||||||
myScroller.to(target)
|
.getElementById(`operations-${escapeDeepLinkPath(tag)}-${escapeDeepLinkPath(operationId)}`)
|
||||||
|
|
||||||
} else if(tag) {
|
} else if(tag) {
|
||||||
// Pre-expand and scroll to the tag
|
// Pre-expand and scroll to the tag
|
||||||
layoutActions.show(["operations-tag", tag], true)
|
layoutActions.show(["operations-tag", tag], true)
|
||||||
|
|
||||||
let target = document.getElementById(`operations-tag-${escapeDeepLinkPath(tag)}`)
|
target = document.getElementById(`operations-tag-${escapeDeepLinkPath(tag)}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(target) {
|
||||||
myScroller.to(target)
|
myScroller.to(target)
|
||||||
|
setTimeout(() => {
|
||||||
|
// Backup functionality: if we're still at the top of the document,
|
||||||
|
// scroll on the entire page (not within the Swagger-UI container)
|
||||||
|
if(zenscroll.getY() === 0) {
|
||||||
|
zenscroll.to(target)
|
||||||
|
}
|
||||||
|
}, 50)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user