29 lines
814 B
TypeScript
29 lines
814 B
TypeScript
|
import { bind } from "astal"
|
||
|
import { Gtk } from "astal/gtk3"
|
||
|
import Mpris from "gi://AstalMpris"
|
||
|
|
||
|
export default function Media() {
|
||
|
const mpris = Mpris.get_default()
|
||
|
|
||
|
return <box className="Media">
|
||
|
{bind(mpris, "players").as(ps => ps[0] ? (
|
||
|
<box>
|
||
|
<box
|
||
|
className="Cover"
|
||
|
valign={Gtk.Align.CENTER}
|
||
|
css={bind(ps[0], "coverArt").as(cover =>
|
||
|
`background-image: url('${cover}');`
|
||
|
)}
|
||
|
/>
|
||
|
<label
|
||
|
label={bind(ps[0], "title").as(() =>
|
||
|
`${ps[0].title} - ${ps[0].artist}`
|
||
|
)}
|
||
|
/>
|
||
|
</box>
|
||
|
) : (
|
||
|
"Nothing Playing"
|
||
|
))}
|
||
|
</box>
|
||
|
}
|