Don't show "waiting for media..." in case of local participant

This commit is contained in:
Hugh Nimmo-Smith
2024-11-25 21:30:54 +00:00
parent 16666b8933
commit 8f9bee79ae
4 changed files with 20 additions and 3 deletions

View File

@@ -175,6 +175,7 @@ const UserMediaTile = forwardRef<HTMLDivElement, UserMediaTileProps>(
raisedHandTime={handRaised} raisedHandTime={handRaised}
currentReaction={currentReaction} currentReaction={currentReaction}
raisedHandOnClick={raisedHandOnClick} raisedHandOnClick={raisedHandOnClick}
localParticipant={vm.local}
{...props} {...props}
/> />
); );

View File

@@ -42,6 +42,7 @@ describe("MediaView", () => {
unencryptedWarning: false, unencryptedWarning: false,
video: trackReference, video: trackReference,
member: undefined, member: undefined,
localParticipant: false,
}; };
test("is accessible", async () => { test("is accessible", async () => {
@@ -60,8 +61,19 @@ describe("MediaView", () => {
}); });
describe("with no participant", () => { describe("with no participant", () => {
it("shows avatar", () => { it("shows avatar for local user", () => {
render(<MediaView {...baseProps} video={undefined} />); render(
<MediaView {...baseProps} video={undefined} localParticipant={true} />,
);
expect(screen.getByRole("img", { name: "some name" })).toBeVisible();
expect(screen.queryAllByText("video_tile.waiting_for_media").length).toBe(
0,
);
});
it("shows avatar and label for remote user", () => {
render(
<MediaView {...baseProps} video={undefined} localParticipant={false} />,
);
expect(screen.getByRole("img", { name: "some name" })).toBeVisible(); expect(screen.getByRole("img", { name: "some name" })).toBeVisible();
expect(screen.getByText("video_tile.waiting_for_media")).toBeVisible(); expect(screen.getByText("video_tile.waiting_for_media")).toBeVisible();
}); });

View File

@@ -41,6 +41,7 @@ interface Props extends ComponentProps<typeof animated.div> {
raisedHandTime?: Date; raisedHandTime?: Date;
currentReaction?: ReactionOption; currentReaction?: ReactionOption;
raisedHandOnClick?: () => void; raisedHandOnClick?: () => void;
localParticipant: boolean;
} }
export const MediaView = forwardRef<HTMLDivElement, Props>( export const MediaView = forwardRef<HTMLDivElement, Props>(
@@ -63,6 +64,7 @@ export const MediaView = forwardRef<HTMLDivElement, Props>(
raisedHandTime, raisedHandTime,
currentReaction, currentReaction,
raisedHandOnClick, raisedHandOnClick,
localParticipant,
...props ...props
}, },
ref, ref,
@@ -118,7 +120,7 @@ export const MediaView = forwardRef<HTMLDivElement, Props>(
/> />
)} )}
</div> </div>
{!video && ( {!video && !localParticipant && (
<div className={styles.status}> <div className={styles.status}>
{t("video_tile.waiting_for_media")} {t("video_tile.waiting_for_media")}
</div> </div>

View File

@@ -55,6 +55,7 @@ interface SpotlightItemBaseProps {
encryptionStatus: EncryptionStatus; encryptionStatus: EncryptionStatus;
displayName: string; displayName: string;
"aria-hidden"?: boolean; "aria-hidden"?: boolean;
localParticipant: boolean;
} }
interface SpotlightUserMediaItemBaseProps extends SpotlightItemBaseProps { interface SpotlightUserMediaItemBaseProps extends SpotlightItemBaseProps {
@@ -163,6 +164,7 @@ const SpotlightItem = forwardRef<HTMLDivElement, SpotlightItemProps>(
displayName, displayName,
encryptionStatus, encryptionStatus,
"aria-hidden": ariaHidden, "aria-hidden": ariaHidden,
localParticipant: vm.local,
}; };
return vm instanceof ScreenShareViewModel ? ( return vm instanceof ScreenShareViewModel ? (