zebra-spaces: kicked-self UI — hollow dot, leave/mute buttons hidden, status updated

Fox 2026-06-04: 'when a listener is kicked the get the green left
states and still have a leave button even though they are out of the
room — should be gone'. The peer-booted (self) branch tore down PCs
+ mic + cleared ACTIVE_CALL_KEY but left the UI looking like a
connected listener — green dot, leave button visible, status still
saying 'connected as listener'.

Fix in the same case 'peer-booted' branch where m.uuid === myUUID:
- dot flips to 'dot warn' (hollow / amber), not 'dot ok' (green)
- status flips to 'kicked from this space' (or 'banned' if action=ban)
- btn-leave hidden + disabled (no room to leave from anymore)
- btn-mute hidden + disabled (no mic to toggle)
- btn-enter re-enabled so the user can manually rejoin if they want
This commit is contained in:
Russell Ballestrini 2026-06-04 12:52:30 -04:00
parent c70c9713ba
commit cd0b6a74d9
No known key found for this signature in database

View file

@ -4003,6 +4003,20 @@ async function handleSignal(raw){
sfuUnpublishGame().catch(()=>{});
sfuUnsubscribe().catch(()=>{});
dropMic();
/* UI: kicked-self should NOT look like a connected listener
* still in the room. Flip dot from green/connected to a
* hollow/warn state, drop the leave button (already left),
* disable the mute button, and reset the status line. Fox
* 2026-06-04: 'kicked listener gets green left state and
* still has a leave button even though they are out of the
* room — should be gone'. */
$('dot-call').className = 'dot warn';
setStatus(m.action === 'ban' ? 'banned from this space' : 'kicked from this space', 'warn');
$('btn-leave').classList.add('hidden');
$('btn-leave').disabled = true;
$('btn-mute').classList.add('hidden');
$('btn-mute').disabled = true;
$('btn-enter').disabled = false;
}
/* Authoritative tile teardown by pubkey — booted users can't be
* publishing anything anymore by definition. The SFU side eviction
@ -5461,8 +5475,8 @@ logLine('', 'ready — pick a handle, type a rendezvous code, enter the space');
<footer style="margin:2.2rem auto 0;font-size:0.65rem;color:#999;line-height:1.7;word-break:break-all;font-family:monospace">
<span id="pi-seal" style="color:#777;cursor:default;user-select:none" title="">page integrity</span> &nbsp;·&nbsp; built <span class="stamp-date">2026-06-04</span><br>
md5 <span class="stamp-md5">c50ca959819e3472ffebe76d431f8531</span><br>
sha256 <span class="stamp-sha">3c1d1ba521f485f911bf5fd4555d72a53a737b5219d55a079ff93a502845dc12</span><br>
md5 <span class="stamp-md5">9b675279aab82d1a7a07d9708bbd8805</span><br>
sha256 <span class="stamp-sha">60456caf735c84bb4703458a042a8d5710babfb81cd13fb24b2284f4a207e6df</span><br>
<span style="color:#bbb">hashes are of this page with these two fields zeroed — to verify, blank them and re-hash</span><br>
<span style="color:#bbb">one self-contained file — <strong>save a copy</strong> and verify against these hashes; point at your own servers with ?signal= and ?turncred=, or <a href="host-your-own.html" style="color:#999">host your own community</a></span>
</footer>