diff --git a/src/settings/settings.ts b/src/settings/settings.ts index 307a557e..4ccc78b8 100644 --- a/src/settings/settings.ts +++ b/src/settings/settings.ts @@ -88,3 +88,5 @@ export const videoInput = new Setting( "video-input", undefined, ); + +export const alwaysShowSelf = new Setting("always-show-self", true); diff --git a/src/state/MediaViewModel.ts b/src/state/MediaViewModel.ts index 7f7307f4..c61b5255 100644 --- a/src/state/MediaViewModel.ts +++ b/src/state/MediaViewModel.ts @@ -49,6 +49,7 @@ import { useEffect } from "react"; import { ViewModel } from "./ViewModel"; import { useReactiveState } from "../useReactiveState"; +import { alwaysShowSelf } from "../settings/settings"; export interface NameData { /** @@ -237,6 +238,13 @@ export class LocalUserMediaViewModel extends BaseUserMediaViewModel { ), ); + /** + * Whether to show this tile in a highly visible location near the start of + * the grid. + */ + public readonly alwaysShow = alwaysShowSelf.value; + public readonly setAlwaysShow = alwaysShowSelf.setValue; + public constructor( id: string, member: RoomMember | undefined,