#265: in the compact layout (phones, narrow windows) the control bar stacked into four rows (~330px, 40% of a portrait phone). It is now one row: mic, deafen, camera, chat, soundboard, More and an icon-only End. Screenshare, its audio mute and fullscreen move into More; Share Screen is only offered where getDisplayMedia exists. (The self-view comes from the fork, lotus.27.) #277: "Mute Screenshare Audio" showed whenever screensharing was allowed, as a speaker icon that did nothing. It now shows while the fork reports remote screenshare audio (io.lotus.screenshare_audio_state), or while it is muted, so a hidden mute cannot silence the next share. Fixes #265 Fixes #277 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017PCb59uY3UKqDqt7B6hzd5
13 lines
629 B
TypeScript
13 lines
629 B
TypeScript
import { test } from 'node:test';
|
|
import assert from 'node:assert/strict';
|
|
import { parseScreenshareAudioState } from './CallControl';
|
|
|
|
test('parseScreenshareAudioState: reads present, ignores anything else (#277)', () => {
|
|
assert.equal(parseScreenshareAudioState({ present: true }), true);
|
|
assert.equal(parseScreenshareAudioState({ present: false }), false);
|
|
assert.equal(parseScreenshareAudioState({ present: 'yes' }), undefined);
|
|
assert.equal(parseScreenshareAudioState({}), undefined);
|
|
assert.equal(parseScreenshareAudioState(null), undefined);
|
|
assert.equal(parseScreenshareAudioState('present'), undefined);
|
|
});
|