feat(lotus): io.lotus.set_screenshare for the host call bar (cinny #43)
toWidget `io.lotus.set_screenshare { on?: boolean }` (omit to toggle)
starts/stops sharing via the view model instead of the host clicking EC's
hidden button. The host sends it with Capability Delegation
(`delegate: "display-capture"`) where supported, so getDisplayMedia keeps
the user's click on engines that require it. `controls_state` now carries
`screenshareAction: true` so the host only uses it on a fork that has it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PPmy3tPq869XDW4njjVaKA
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
35bc7a1e98
commit
6fa34911ef
@@ -7,7 +7,11 @@ Please see LICENSE in the repository root for full details.
|
||||
|
||||
import { describe, expect, it } from "vitest";
|
||||
|
||||
import { parseLayoutPayload, parseSettingsPayload } from "./lotusControls";
|
||||
import {
|
||||
parseLayoutPayload,
|
||||
parseSettingsPayload,
|
||||
shouldToggleScreenshare,
|
||||
} from "./lotusControls";
|
||||
|
||||
describe("parseLayoutPayload", () => {
|
||||
it("accepts grid and spotlight", () => {
|
||||
@@ -33,3 +37,17 @@ describe("parseSettingsPayload", () => {
|
||||
expect(parseSettingsPayload({ open: "yes" }, true)).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe("shouldToggleScreenshare", () => {
|
||||
it("toggles only when an explicit on differs from the current state", () => {
|
||||
expect(shouldToggleScreenshare({ on: true }, false)).toBe(true);
|
||||
expect(shouldToggleScreenshare({ on: true }, true)).toBe(false);
|
||||
expect(shouldToggleScreenshare({ on: false }, true)).toBe(true);
|
||||
expect(shouldToggleScreenshare({ on: false }, false)).toBe(false);
|
||||
});
|
||||
it("toggles when on is missing or not a boolean", () => {
|
||||
expect(shouldToggleScreenshare({}, false)).toBe(true);
|
||||
expect(shouldToggleScreenshare({ on: "yes" }, true)).toBe(true);
|
||||
expect(shouldToggleScreenshare(null, true)).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user