synpad 0.1.0

A full-featured Matrix chat client built with Dioxus
use dioxus::prelude::*;

/// Voice & Video settings panel.
#[component]
pub fn VoiceVideoSettings() -> Element {
    let mut audio_input = use_signal(|| "default".to_string());
    let mut audio_output = use_signal(|| "default".to_string());
    let mut video_input = use_signal(|| "default".to_string());

    rsx! {
        div {
            class: "voice-video-settings",

            div {
                class: "settings-section",
                h3 { "Audio" }

                div {
                    class: "settings-field",
                    label { "Microphone" }
                    select {
                        class: "settings-select",
                        value: "{audio_input}",
                        oninput: move |evt| audio_input.set(evt.value()),
                        option { value: "default", "Default - System Microphone" }
                    }
                }

                div {
                    class: "settings-field",
                    label { "Speaker" }
                    select {
                        class: "settings-select",
                        value: "{audio_output}",
                        oninput: move |evt| audio_output.set(evt.value()),
                        option { value: "default", "Default - System Speaker" }
                    }
                }
            }

            div {
                class: "settings-section",
                h3 { "Video" }

                div {
                    class: "settings-field",
                    label { "Camera" }
                    select {
                        class: "settings-select",
                        value: "{video_input}",
                        oninput: move |evt| video_input.set(evt.value()),
                        option { value: "default", "Default - System Camera" }
                    }
                }
            }
        }
    }
}