Skip to content

Commit da747ec

Browse files
authored
media field fix recursion bug
1 parent 4c31c57 commit da747ec

1 file changed

Lines changed: 11 additions & 3 deletions

File tree

public/ui/fields/media.js

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ class OBFieldMedia extends OBField {
2121
#trimEnd;
2222

2323
#init;
24+
#loading;
2425

2526
static comparisonOperators = {
2627
eq: "is",
@@ -50,6 +51,8 @@ class OBFieldMedia extends OBField {
5051
this.#trimStart = 0.0;
5152
this.#trimEnd = 0.0;
5253

54+
this.#loading = false;
55+
5356
this.renderComponent().then(() => {
5457
this.addEventListener("dragstart", this.onDragStart.bind(this));
5558
this.addEventListener("dragend", this.onDragEnd.bind(this));
@@ -63,7 +66,7 @@ class OBFieldMedia extends OBField {
6366
}
6467

6568
async renderEdit() {
66-
await this.mediaContent();
69+
if(!this.#loading) await this.mediaContent();
6770

6871
render(
6972
html`
@@ -152,7 +155,7 @@ class OBFieldMedia extends OBField {
152155
}
153156

154157
async renderView() {
155-
await this.mediaContent();
158+
if(!this.#loading) await this.mediaContent();
156159

157160
render(
158161
html`
@@ -415,8 +418,11 @@ class OBFieldMedia extends OBField {
415418
async mediaContent() {
416419
if (!this._value || !this.#mediaContent) return;
417420

418-
return Promise.all(
421+
this.#loading = true;
422+
423+
await Promise.all(
419424
this._value.map(async (mediaItem) => {
425+
420426
if (this.#mediaContent[mediaItem]) {
421427
return;
422428
}
@@ -438,6 +444,8 @@ class OBFieldMedia extends OBField {
438444
this.refresh();
439445
}),
440446
);
447+
448+
this.#loading = false;
441449
}
442450

443451
mediaTrimBuffer(buffer, trimStart, trimEnd) {

0 commit comments

Comments
 (0)