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'] ? ['', '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;
}
} }