@ribajs/router
Version:
Routing extension for Riba.js inspired by Barba.js
34 lines • 2.83 kB
JavaScript
import { BaseTransition } from "./BaseTransition.js";
import { scrollToPosition } from "@ribajs/utils";
export class FadeTransition extends BaseTransition {
scrollToTop;
durationMs = 200;
constructor(scrollToTop = true) {
super("replace");
this.scrollToTop = scrollToTop;
}
async start() {
if (!this.newContainerLoading) {
throw new Error("this.newContainerLoading is not set");
}
if (this.oldContainer) {
this.oldContainer.style.transition = `opacity ${this.durationMs}ms`;
this.oldContainer.style.opacity = "0";
}
if (this.scrollToTop) {
await scrollToPosition(window, "start", "vertical", "smooth");
}
const newContainer = await this.newContainerLoading;
newContainer.style.opacity = "0";
newContainer.style.transition = `opacity ${this.durationMs}ms`;
setTimeout(() => {
this.finish(newContainer);
}, this.durationMs);
return;
}
async finish(newContainer) {
newContainer.style.opacity = "1";
return this.done();
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFkZVRyYW5zaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvVHJhbnNpdGlvbi9GYWRlVHJhbnNpdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUWpELE1BQU0sT0FBTyxjQUFlLFNBQVEsY0FBYztJQUN0QyxXQUFXLENBQVU7SUFDckIsVUFBVSxHQUFHLEdBQUcsQ0FBQztJQUUzQixZQUFZLFdBQVcsR0FBRyxJQUFJO1FBQzVCLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUNqQyxDQUFDO0lBRU0sS0FBSyxDQUFDLEtBQUs7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLFdBQVcsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDO1lBQ3BFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFDeEMsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sZ0JBQWdCLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDaEUsQ0FBQztRQUVELE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBRXBELFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztRQUNqQyxZQUFZLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxXQUFXLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQztRQUUvRCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM1QixDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXBCLE9BQU87SUFDVCxDQUFDO0lBRU0sS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUF5QjtRQUMzQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQztDQUNGIn0=