@ribajs/router
Version:
Routing extension for Riba.js inspired by Barba.js
35 lines • 2.72 kB
JavaScript
import { deferred } from "@ribajs/utils";
export class BaseTransition {
oldContainer;
newContainer;
newContainerLoading;
deferred = deferred();
action;
constructor(action = "replace") {
this.action = action;
}
async init(oldContainer, newContainer) {
this.oldContainer = oldContainer;
this.deferred = deferred();
const newContainerLoading = deferred();
this.newContainerLoading = newContainerLoading.promise;
this.start();
this.newContainer = await newContainer;
newContainerLoading.resolve(this.newContainer);
return this.deferred.promise;
}
async done() {
if (!this.oldContainer) {
throw new Error("Can't remove old container");
}
if (this.action === "replace") {
this.oldContainer.remove();
}
if (!this.newContainer) {
throw new Error("Can't show new container");
}
this.newContainer.style.visibility = "visible";
return this.deferred.resolve(undefined);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZVRyYW5zaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvVHJhbnNpdGlvbi9CYXNlVHJhbnNpdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTXpDLE1BQU0sT0FBZ0IsY0FBYztJQUN4QixZQUFZLENBQWU7SUFFM0IsWUFBWSxDQUFlO0lBRTNCLG1CQUFtQixDQUF3QjtJQUUzQyxRQUFRLEdBQUcsUUFBUSxFQUFFLENBQUM7SUFFdEIsTUFBTSxDQUF1QjtJQUV2QyxZQUFZLFNBQStCLFNBQVM7UUFDbEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQU9NLEtBQUssQ0FBQyxJQUFJLENBQ2YsWUFBeUIsRUFDekIsWUFBa0M7UUFFbEMsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFFakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLEVBQUUsQ0FBQztRQUMzQixNQUFNLG1CQUFtQixHQUFHLFFBQVEsRUFBZSxDQUFDO1FBQ3BELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUM7UUFFdkQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRWIsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLFlBQVksQ0FBQztRQUN2QyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQy9DLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7SUFDL0IsQ0FBQztJQUtNLEtBQUssQ0FBQyxJQUFJO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzdCLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztRQUMvQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FNRiJ9