import { SimpleToggleButton } from "../ToggleButton.js"
import icons from "../../../lib/icons.js"
const { microphone } = await Service.import("audio")

const icon = () => microphone.is_muted || microphone.stream?.is_muted
  ? icons.audio.mic.muted
  : icons.audio.mic.high

const label = () => microphone.is_muted || microphone.stream?.is_muted
  ? "Muted"
  : "Unmuted"

// TODO: Variable watch option
const ico = Variable(icon())
microphone.connect("changed", () => ico.value = icon())

// TODO: Variable watch option
const lbl = Variable(label())
microphone.connect("changed", () => lbl.value = label())

export const MicMute = () => SimpleToggleButton({
  icon: ico.bind(),
  label: lbl.bind(),
  toggle: () => microphone.is_muted = !microphone.is_muted,
  connection: [microphone, () => microphone?.is_muted || false],
})
