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']
|
||||
: ['', 'must_not'];
|
||||
|
||||
const pendingSelects = [];
|
||||
|
||||
for (const myStudent of me.students) {
|
||||
const card = document.createElement('wa-card');
|
||||
const label = document.createElement('span');
|
||||
@@ -678,8 +680,7 @@ async function renderMemberView(me) {
|
||||
select.appendChild(opt);
|
||||
}
|
||||
const existing = myConstraints[other.id];
|
||||
const initVal = existing ? existing.kind : '';
|
||||
select.updateComplete.then(() => { select.value = initVal; });
|
||||
pendingSelects.push({ select, value: existing ? existing.kind : '' });
|
||||
|
||||
select.addEventListener('change', async (e) => {
|
||||
const val = e.target.value;
|
||||
@@ -704,4 +705,10 @@ async function renderMemberView(me) {
|
||||
}
|
||||
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