✨(front) option to hide menu on SelectToggleDevice
On mobile we want to be able to hide the chevron and menu.
This commit is contained in:
@@ -67,11 +67,13 @@ type SelectToggleDeviceProps<T extends ToggleSource> =
|
|||||||
UseTrackToggleProps<T> & {
|
UseTrackToggleProps<T> & {
|
||||||
onActiveDeviceChange: (deviceId: string) => void
|
onActiveDeviceChange: (deviceId: string) => void
|
||||||
source: SelectToggleSource
|
source: SelectToggleSource
|
||||||
|
hideMenu?: boolean
|
||||||
variant?: 'dark' | 'light'
|
variant?: 'dark' | 'light'
|
||||||
}
|
}
|
||||||
|
|
||||||
export const SelectToggleDevice = <T extends ToggleSource>({
|
export const SelectToggleDevice = <T extends ToggleSource>({
|
||||||
onActiveDeviceChange,
|
onActiveDeviceChange,
|
||||||
|
hideMenu,
|
||||||
variant = 'light',
|
variant = 'light',
|
||||||
...props
|
...props
|
||||||
}: SelectToggleDeviceProps<T>) => {
|
}: SelectToggleDeviceProps<T>) => {
|
||||||
@@ -94,7 +96,18 @@ export const SelectToggleDevice = <T extends ToggleSource>({
|
|||||||
gap: '1px',
|
gap: '1px',
|
||||||
})}
|
})}
|
||||||
>
|
>
|
||||||
<ToggleDevice {...trackProps} config={config} />
|
<ToggleDevice
|
||||||
|
{...trackProps}
|
||||||
|
config={config}
|
||||||
|
toggleButtonProps={{
|
||||||
|
...(hideMenu
|
||||||
|
? {
|
||||||
|
groupPosition: undefined,
|
||||||
|
}
|
||||||
|
: {}),
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
{!hideMenu && (
|
||||||
<Menu variant={variant}>
|
<Menu variant={variant}>
|
||||||
<Button
|
<Button
|
||||||
tooltip={selectLabel}
|
tooltip={selectLabel}
|
||||||
@@ -118,6 +131,7 @@ export const SelectToggleDevice = <T extends ToggleSource>({
|
|||||||
variant={variant}
|
variant={variant}
|
||||||
/>
|
/>
|
||||||
</Menu>
|
</Menu>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,17 +7,20 @@ import { SelectToggleDeviceConfig } from './SelectToggleDevice'
|
|||||||
import useLongPress from '@/features/shortcuts/useLongPress'
|
import useLongPress from '@/features/shortcuts/useLongPress'
|
||||||
import { ActiveSpeaker } from '@/features/rooms/components/ActiveSpeaker'
|
import { ActiveSpeaker } from '@/features/rooms/components/ActiveSpeaker'
|
||||||
import { useIsSpeaking, useLocalParticipant } from '@livekit/components-react'
|
import { useIsSpeaking, useLocalParticipant } from '@livekit/components-react'
|
||||||
|
import { ToggleButtonProps } from '@/primitives/ToggleButton'
|
||||||
|
|
||||||
export type ToggleDeviceProps = {
|
export type ToggleDeviceProps = {
|
||||||
enabled: boolean
|
enabled: boolean
|
||||||
toggle: () => void
|
toggle: () => void
|
||||||
config: SelectToggleDeviceConfig
|
config: SelectToggleDeviceConfig
|
||||||
|
toggleButtonProps?: Partial<ToggleButtonProps>
|
||||||
}
|
}
|
||||||
|
|
||||||
export const ToggleDevice = ({
|
export const ToggleDevice = ({
|
||||||
config,
|
config,
|
||||||
enabled,
|
enabled,
|
||||||
toggle,
|
toggle,
|
||||||
|
toggleButtonProps,
|
||||||
}: ToggleDeviceProps) => {
|
}: ToggleDeviceProps) => {
|
||||||
const { t } = useTranslation('rooms', { keyPrefix: 'join' })
|
const { t } = useTranslation('rooms', { keyPrefix: 'join' })
|
||||||
|
|
||||||
@@ -64,6 +67,7 @@ export const ToggleDevice = ({
|
|||||||
aria-label={toggleLabel}
|
aria-label={toggleLabel}
|
||||||
tooltip={toggleLabel}
|
tooltip={toggleLabel}
|
||||||
groupPosition="left"
|
groupPosition="left"
|
||||||
|
{...toggleButtonProps}
|
||||||
>
|
>
|
||||||
<Icon />
|
<Icon />
|
||||||
</ToggleButton>
|
</ToggleButton>
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ export function MobileControlBar({
|
|||||||
className={css({
|
className={css({
|
||||||
display: 'flex',
|
display: 'flex',
|
||||||
justifyContent: 'space-between',
|
justifyContent: 'space-between',
|
||||||
width: '422px',
|
width: '330px',
|
||||||
})}
|
})}
|
||||||
>
|
>
|
||||||
<LeaveButton />
|
<LeaveButton />
|
||||||
@@ -68,6 +68,7 @@ export function MobileControlBar({
|
|||||||
onActiveDeviceChange={(deviceId) =>
|
onActiveDeviceChange={(deviceId) =>
|
||||||
saveAudioInputDeviceId(deviceId ?? '')
|
saveAudioInputDeviceId(deviceId ?? '')
|
||||||
}
|
}
|
||||||
|
hideMenu={true}
|
||||||
/>
|
/>
|
||||||
<SelectToggleDevice
|
<SelectToggleDevice
|
||||||
source={Track.Source.Camera}
|
source={Track.Source.Camera}
|
||||||
@@ -78,6 +79,7 @@ export function MobileControlBar({
|
|||||||
onActiveDeviceChange={(deviceId) =>
|
onActiveDeviceChange={(deviceId) =>
|
||||||
saveVideoInputDeviceId(deviceId ?? '')
|
saveVideoInputDeviceId(deviceId ?? '')
|
||||||
}
|
}
|
||||||
|
hideMenu={true}
|
||||||
/>
|
/>
|
||||||
<HandToggle />
|
<HandToggle />
|
||||||
<Button
|
<Button
|
||||||
|
|||||||
Reference in New Issue
Block a user