fix typings

This commit is contained in:
Benjamin Palko 2025-04-08 00:14:44 -04:00
parent 31af598f7f
commit 98a3b5381e

View file

@ -7,52 +7,59 @@ const WirePlumber = function () {
const audio = AstalWp.get_default()?.audio!; const audio = AstalWp.get_default()?.audio!;
const speakers = bind(audio, "speakers"); const speakers = bind(audio, "speakers");
const defaultSpeaker = speakers.as((speakers) =>
speakers.find((speaker) => speaker.is_default),
);
return speakers.as((speakers) => { return (
const defaultSpeaker = speakers.find((speaker) => speaker.is_default); <>
if (!defaultSpeaker) { {defaultSpeaker.as((defaultSpeaker) =>
return <></>; defaultSpeaker ? (
} <menubutton
return ( onScroll={(_, __, dy) => {
<menubutton defaultSpeaker.set_volume(
onScroll={(_, __, dy) => { Mathf.clamp(
defaultSpeaker.set_volume( defaultSpeaker.volume - Mathf.sign(dy) * 0.02,
Mathf.clamp( 0.0,
defaultSpeaker.volume - Mathf.sign(dy) * 0.02, 1.0,
0.0, ),
1.0, );
), }}
); >
}} <label
> cursor={Gdk.Cursor.new_from_name("pointer", null)}
<label label={bind(defaultSpeaker, "volume").as(
cursor={Gdk.Cursor.new_from_name("pointer", null)} (volume) => `${Math.floor(volume * 100)}%`,
label={bind(defaultSpeaker, "volume").as( )}
(volume) => `${Math.floor(volume * 100)}%`, hasTooltip={true}
)} tooltipText={bind(defaultSpeaker, "description").as(
hasTooltip={true} (description) => description,
tooltipText={bind(defaultSpeaker, "description").as( )}
(description) => description, />
)} <popover cssClasses={["WirePlumberMenu"]}>
/> <box vertical>
<popover cssClasses={["WirePlumberMenu"]}> {speakers.as((speakers) =>
<box vertical> speakers.map((speaker) => (
{speakers.map((speaker) => ( <button
<button cssClasses={bind(speaker, "is_default").as(
cssClasses={bind(speaker, "is_default").as((is_default) => [ (is_default) => [is_default ? "active" : ""],
is_default ? "active" : "", )}
])} cursor={Gdk.Cursor.new_from_name("pointer", null)}
cursor={Gdk.Cursor.new_from_name("pointer", null)} onClicked={() => speaker.set_is_default(true)}
onClicked={() => speaker.set_is_default(true)} >
> {speaker.description}
{speaker.description} </button>
</button> )),
))} )}
</box> </box>
</popover> </popover>
</menubutton> </menubutton>
); ) : (
}); <></>
),
)}
</>
);
}; };
export default WirePlumber; export default WirePlumber;