✨(front) add customization to SelectToggleDevice
We want to be able to change the variant of this component.
This commit is contained in:
@@ -19,6 +19,7 @@ import { Shortcut } from '@/features/shortcuts/types'
|
|||||||
|
|
||||||
import { ToggleDevice } from '@/features/rooms/livekit/components/controls/ToggleDevice.tsx'
|
import { ToggleDevice } from '@/features/rooms/livekit/components/controls/ToggleDevice.tsx'
|
||||||
import { css } from '@/styled-system/css'
|
import { css } from '@/styled-system/css'
|
||||||
|
import { ButtonRecipeProps } from '@/primitives/buttonRecipe'
|
||||||
|
|
||||||
export type ToggleSource = Exclude<
|
export type ToggleSource = Exclude<
|
||||||
Track.Source,
|
Track.Source,
|
||||||
@@ -67,14 +68,16 @@ type SelectToggleDeviceProps<T extends ToggleSource> =
|
|||||||
UseTrackToggleProps<T> & {
|
UseTrackToggleProps<T> & {
|
||||||
onActiveDeviceChange: (deviceId: string) => void
|
onActiveDeviceChange: (deviceId: string) => void
|
||||||
source: SelectToggleSource
|
source: SelectToggleSource
|
||||||
|
variant?: NonNullable<ButtonRecipeProps>['variant']
|
||||||
|
menuVariant?: 'dark' | 'light'
|
||||||
hideMenu?: boolean
|
hideMenu?: boolean
|
||||||
variant?: 'dark' | 'light'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export const SelectToggleDevice = <T extends ToggleSource>({
|
export const SelectToggleDevice = <T extends ToggleSource>({
|
||||||
onActiveDeviceChange,
|
onActiveDeviceChange,
|
||||||
hideMenu,
|
hideMenu,
|
||||||
variant = 'light',
|
variant = 'primaryDark',
|
||||||
|
menuVariant = 'light',
|
||||||
...props
|
...props
|
||||||
}: SelectToggleDeviceProps<T>) => {
|
}: SelectToggleDeviceProps<T>) => {
|
||||||
const config = selectToggleDeviceConfig[props.source]
|
const config = selectToggleDeviceConfig[props.source]
|
||||||
@@ -99,6 +102,7 @@ export const SelectToggleDevice = <T extends ToggleSource>({
|
|||||||
<ToggleDevice
|
<ToggleDevice
|
||||||
{...trackProps}
|
{...trackProps}
|
||||||
config={config}
|
config={config}
|
||||||
|
variant={variant}
|
||||||
toggleButtonProps={{
|
toggleButtonProps={{
|
||||||
...(hideMenu
|
...(hideMenu
|
||||||
? {
|
? {
|
||||||
@@ -108,13 +112,13 @@ export const SelectToggleDevice = <T extends ToggleSource>({
|
|||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
{!hideMenu && (
|
{!hideMenu && (
|
||||||
<Menu variant={variant}>
|
<Menu variant={menuVariant}>
|
||||||
<Button
|
<Button
|
||||||
tooltip={selectLabel}
|
tooltip={selectLabel}
|
||||||
aria-label={selectLabel}
|
aria-label={selectLabel}
|
||||||
groupPosition="right"
|
groupPosition="right"
|
||||||
square
|
square
|
||||||
variant={trackProps.enabled ? 'primaryDark' : 'error2'}
|
variant={trackProps.enabled ? variant : 'error2'}
|
||||||
>
|
>
|
||||||
<RiArrowDownSLine />
|
<RiArrowDownSLine />
|
||||||
</Button>
|
</Button>
|
||||||
@@ -128,7 +132,7 @@ export const SelectToggleDevice = <T extends ToggleSource>({
|
|||||||
setActiveMediaDevice(value as string)
|
setActiveMediaDevice(value as string)
|
||||||
onActiveDeviceChange(value as string)
|
onActiveDeviceChange(value as string)
|
||||||
}}
|
}}
|
||||||
variant={variant}
|
variant={menuVariant}
|
||||||
/>
|
/>
|
||||||
</Menu>
|
</Menu>
|
||||||
)}
|
)}
|
||||||
|
|||||||
Reference in New Issue
Block a user