import React from "react"; import { Dropdown } from "../ui/Dropdown"; import { SettingContainer } from "../ui/SettingContainer"; import { ResetButton } from "../ui/ResetButton"; import { useSettings } from "../../hooks/useSettings"; import { AudioDevice } from "../../lib/types"; interface OutputDeviceSelectorProps { descriptionMode?: "inline" | "tooltip"; grouped?: boolean; disabled?: boolean; } export const OutputDeviceSelector: React.FC = React.memo( ({ descriptionMode = "tooltip", grouped = false, disabled = false }) => { const { getSetting, updateSetting, resetSetting, isUpdating, isLoading, outputDevices, refreshOutputDevices, } = useSettings(); const selectedOutputDevice = getSetting("selected_output_device") === "default" ? "Default" : getSetting("selected_output_device") || "Default"; const handleOutputDeviceSelect = async (deviceName: string) => { await updateSetting("selected_output_device", deviceName); }; const handleReset = async () => { await resetSetting("selected_output_device"); }; const outputDeviceOptions = outputDevices.map((device: AudioDevice) => ({ value: device.name, label: device.name, })); return (
); }, );