jcloude/press/public/js/AwaitedComponent.js
2025-12-23 19:17:16 +08:00

32 lines
547 B
JavaScript

class AwaitedComponent {
constructor(parent, df) {
this.parent = parent;
this.df = df || {};
this.make();
}
async make() {
this.wrapper = $(`<div class="list-component">`).appendTo(this.parent);
new SectionHead(this.wrapper, {
description: this.df.loading_message || 'Loading...',
});
let data;
try {
data = await this.df.promise;
} catch (e) {
if (this.df.onfail) {
clear_wrapper(this.wrapper);
this.df.onfail(e);
}
}
if (data) {
clear_wrapper(this.wrapper);
this.df.onload(data);
}
}
}