Fix member view crash by deferring wa-select value setting until defined
This commit is contained in:
@@ -646,6 +646,8 @@ async function renderMemberView(me) {
|
|||||||
? ['', 'prefer', 'prefer_not']
|
? ['', 'prefer', 'prefer_not']
|
||||||
: ['', 'must_not'];
|
: ['', 'must_not'];
|
||||||
|
|
||||||
|
const pendingSelects = [];
|
||||||
|
|
||||||
for (const myStudent of me.students) {
|
for (const myStudent of me.students) {
|
||||||
const card = document.createElement('wa-card');
|
const card = document.createElement('wa-card');
|
||||||
const label = document.createElement('span');
|
const label = document.createElement('span');
|
||||||
@@ -678,8 +680,7 @@ async function renderMemberView(me) {
|
|||||||
select.appendChild(opt);
|
select.appendChild(opt);
|
||||||
}
|
}
|
||||||
const existing = myConstraints[other.id];
|
const existing = myConstraints[other.id];
|
||||||
const initVal = existing ? existing.kind : '';
|
pendingSelects.push({ select, value: existing ? existing.kind : '' });
|
||||||
select.updateComplete.then(() => { select.value = initVal; });
|
|
||||||
|
|
||||||
select.addEventListener('change', async (e) => {
|
select.addEventListener('change', async (e) => {
|
||||||
const val = e.target.value;
|
const val = e.target.value;
|
||||||
@@ -704,4 +705,10 @@ async function renderMemberView(me) {
|
|||||||
}
|
}
|
||||||
container.appendChild(card);
|
container.appendChild(card);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await customElements.whenDefined('wa-select');
|
||||||
|
for (const { select, value } of pendingSelects) {
|
||||||
|
await select.updateComplete;
|
||||||
|
select.value = value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user