26 lines
520 B
TypeScript
26 lines
520 B
TypeScript
|
import { defineNuxtPlugin } from '#imports';
|
||
|
|
||
|
export default defineNuxtPlugin((nuxtApp) => {
|
||
|
nuxtApp.$router.options.scrollBehavior = async (to, from, savedPosition) => {
|
||
|
let goTo;
|
||
|
|
||
|
if (to.hash) {
|
||
|
goTo = {
|
||
|
el: to.hash,
|
||
|
behavior: 'smooth',
|
||
|
top: 64,
|
||
|
};
|
||
|
} else if (savedPosition) {
|
||
|
goTo = savedPosition;
|
||
|
} else {
|
||
|
goTo = { top: 0 };
|
||
|
}
|
||
|
|
||
|
return new Promise((resolve) => {
|
||
|
setTimeout(() => {
|
||
|
resolve(goTo);
|
||
|
}, 100);
|
||
|
});
|
||
|
};
|
||
|
});
|