refactor: reorganize components, add interface to network
This commit is contained in:
26
astal/widget/network.tsx
Normal file
26
astal/widget/network.tsx
Normal 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>
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user