Fix member view crash by deferring wa-select value setting until defined

This commit is contained in:
Ian Gulliver
2026-02-16 09:57:07 -08:00
parent b08584f1d6
commit ada4817a22

View File

@@ -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;
}
}