Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
153 changes: 104 additions & 49 deletions src/react-components/room/UserProfileSidebar.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import styles from "./UserProfileSidebar.scss";
import { FormattedMessage, useIntl } from "react-intl";
import { Slider } from "../input/Slider";
import { ToolbarButton } from "../input/ToolbarButton";
import { ToolTip } from "@mozilla/lilypad-ui";
import { ReactComponent as VolumeHigh } from "../icons/VolumeHigh.svg";
import { ReactComponent as VolumeMuted } from "../icons/VolumeMuted.svg";
import useAvatarVolume from "./hooks/useAvatarVolume";
Expand Down Expand Up @@ -64,47 +65,74 @@ export function UserProfileSidebar({
<div className={styles.avatarPreviewContainer}>{avatarPreview || <div />}</div>
{hasMicPresence && (
<div className={styles.sliderContainer}>
<ToolbarButton
icon={isNetworkMuted || isMuted ? <VolumeMuted /> : <VolumeHigh />}
selected={isNetworkMuted || isMuted}
preset="accent4"
style={{ display: "block" }}
onClick={() => {
updateMuted(!isMuted);
}}
disabled={isNetworkMuted}
/>
<Slider
min={MIN}
max={MAX}
step={1}
value={newLevel}
onChange={onLevelChanged}
className={styles.sliderInputContainer}
disabled={isNetworkMuted || isMuted}
/>
<ToolTip
location="bottom"
description={intl.formatMessage({
id: "user-profile-sidebar.local-mute-tooltip",
defaultMessage: "Mute this person only for you"
})}
>
<ToolbarButton
icon={isNetworkMuted || isMuted ? <VolumeMuted /> : <VolumeHigh />}
selected={isNetworkMuted || isMuted}
preset="accent4"
style={{ display: "block" }}
onClick={() => {
updateMuted(!isMuted);
}}
disabled={isNetworkMuted}
/>
</ToolTip>

<ToolTip
location="bottom"
description={intl.formatMessage({
id: "user-profile-sidebar.volume-tooltip",
defaultMessage: "Adjust this person's volume"
})}
>
<Slider
min={MIN}
max={MAX}
step={1}
value={newLevel}
onChange={onLevelChanged}
className={styles.sliderInputContainer}
disabled={isNetworkMuted || isMuted}
/>
</ToolTip>
</div>
)}

{canPromote && (
<Button
preset="accept"
disabled={!isSignedIn}
title={
isSignedIn
? intl.formatMessage({ id: "user-profile-sidebar.promote-button", defaultMessage: "Promote" })
: intl.formatMessage(
{
id: "user-profile-sidebar.promote-button-disabled-label",
defaultMessage: "{displayName} is signed out."
},
{ displayName }
)
}
onClick={onPromote}
<ToolTip
location="bottom"
description={intl.formatMessage({
id: "user-profile-sidebar.promote-tooltip",
defaultMessage: "Make this person a room moderator"
})}
>
<FormattedMessage id="user-profile-sidebar.promote-button" defaultMessage="Promote" />
</Button>
<Button
preset="accept"
disabled={!isSignedIn}
title={
isSignedIn
? intl.formatMessage({ id: "user-profile-sidebar.promote-button", defaultMessage: "Promote" })
: intl.formatMessage(
{
id: "user-profile-sidebar.promote-button-disabled-label",
defaultMessage: "{displayName} is signed out."
},
{ displayName }
)
}
onClick={onPromote}
>
<FormattedMessage id="user-profile-sidebar.promote-button" defaultMessage="Promote" />
</Button>
</ToolTip>
)}

{canDemote && (
<Button
preset="cancel"
Expand All @@ -125,22 +153,49 @@ export function UserProfileSidebar({
<FormattedMessage id="user-profile-sidebar.demote-button" defaultMessage="Demote" />
</Button>
)}
<Button onClick={onToggleHidden}>
{isHidden ? (
<FormattedMessage id="user-profile-sidebar.unhide-button" defaultMessage="Unhide" />
) : (
<FormattedMessage id="user-profile-sidebar.hide-button" defaultMessage="Hide" />
)}
</Button>
{canMute && (
<Button preset="cancel" onClick={onMute}>
<FormattedMessage id="user-profile-sidebar.mute-button" defaultMessage="Mute" />

<ToolTip
location="bottom"
description={intl.formatMessage({
id: "user-profile-sidebar.hide-tooltip",
defaultMessage: "Hide your avatar from this person until you leave the room"
})}
>
<Button onClick={onToggleHidden}>
{isHidden ? (
<FormattedMessage id="user-profile-sidebar.unhide-button" defaultMessage="Unhide" />
) : (
<FormattedMessage id="user-profile-sidebar.hide-button" defaultMessage="Hide" />
)}
</Button>
</ToolTip>

{canMute && (
<ToolTip
location="bottom"
description={intl.formatMessage({
id: "user-profile-sidebar.mute-tooltip",
defaultMessage: "Mute this person for everyone"
})}
>
<Button preset="cancel" onClick={onMute}>
<FormattedMessage id="user-profile-sidebar.mute-button" defaultMessage="Mute" />
</Button>
</ToolTip>
)}

{canKick && (
<Button preset="cancel" onClick={onKick}>
<FormattedMessage id="user-profile-sidebar.kick-button" defaultMessage="Kick" />
</Button>
<ToolTip
location="bottom"
description={intl.formatMessage({
id: "user-profile-sidebar.kick-tooltip",
defaultMessage: "Remove this person from the room"
})}
>
<Button preset="cancel" onClick={onKick}>
<FormattedMessage id="user-profile-sidebar.kick-button" defaultMessage="Kick" />
</Button>
</ToolTip>
)}
</Column>
</Sidebar>
Expand Down