(front) add customization to SelectToggleDevice

We want to be able to change the variant of this component.
This commit is contained in:
Nathan Vasse
2025-01-16 14:54:07 +01:00
committed by NathanVss
parent 30bde2fe66
commit 994f335266

View File

@@ -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>
)} )}