44 lines
1.9 KiB
TypeScript
44 lines
1.9 KiB
TypeScript
import {RemoteIconInfo} from "tc-shared/file/Icons";
|
|
|
|
export type ControlBarMode = "main" | "channel-popout";
|
|
export type ConnectionState = { currentlyConnected: boolean, generallyConnected: boolean, multisession: boolean };
|
|
export type Bookmark = { uniqueId: string, label: string, icon: RemoteIconInfo | undefined, children?: Bookmark[] };
|
|
export type AwayState = { locallyAway: boolean, globallyAway: "partial" | "full" | "none" };
|
|
export type MicrophoneState = "enabled" | "disabled" | "muted";
|
|
export type HostButtonInfo = { title?: string, target?: string, url: string };
|
|
|
|
export interface ControlBarEvents {
|
|
action_connection_connect: { newTab: boolean },
|
|
action_connection_disconnect: { generally: boolean },
|
|
action_bookmark_connect: { bookmarkUniqueId: string, newTab: boolean },
|
|
action_bookmark_manage: {},
|
|
action_bookmark_add_current_server: {},
|
|
action_toggle_away: { away: boolean, globally: boolean, promptMessage?: boolean },
|
|
action_toggle_microphone: { enabled: boolean },
|
|
action_toggle_speaker: { enabled: boolean },
|
|
action_toggle_subscribe: { subscribe: boolean },
|
|
action_toggle_query: { show: boolean },
|
|
action_query_manage: {},
|
|
|
|
query_mode: {},
|
|
query_connection_state: {},
|
|
query_bookmarks: {},
|
|
query_away_state: {},
|
|
query_microphone_state: {},
|
|
query_speaker_state: {},
|
|
query_subscribe_state: {},
|
|
query_query_state: {},
|
|
query_host_button: {},
|
|
|
|
notify_mode: { mode: ControlBarMode }
|
|
notify_connection_state: { state: ConnectionState },
|
|
notify_bookmarks: { marks: Bookmark[] },
|
|
notify_away_state: { state: AwayState },
|
|
notify_microphone_state: { state: MicrophoneState },
|
|
notify_speaker_state: { enabled: boolean },
|
|
notify_subscribe_state: { subscribe: boolean },
|
|
notify_query_state: { shown: boolean },
|
|
notify_host_button: { button: HostButtonInfo | undefined },
|
|
|
|
notify_destroy: {}
|
|
} |