refactor: reorganize components, add interface to network

This commit is contained in:
2025-06-28 01:49:02 -07:00
parent 78ca57e491
commit f6c13e0ec7
9 changed files with 155 additions and 130 deletions

26
astal/widget/network.tsx Normal file
View File

@@ -0,0 +1,26 @@
import { bind, Variable } from "astal";
import AstalNetwork from "gi://AstalNetwork?version=0.1";
export default function NetworkModule() {
const network = AstalNetwork.get_default()
const wifi = network.wifi;
const wired = network.wired
const derived = Variable.derive([bind(network, "primary"), bind(wifi, "ssid"), bind(wifi, "strength")], (primary, ssid, strength) => {
if (primary === AstalNetwork.Primary.WIRED) {
return { label: `🖧 Wired ${wired.device.interface}` }
}
if (wifi.active_access_point !== null) {
return { label: `${ssid} (${strength}%) ` }
}
return { label: `Disconnected ⚠` }
})
return (
<box className="status-box">
<label
label={derived((v) => v.label)} />
</box>
)
}