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);
|
|
});
|
|
};
|
|
});
|