feat(network): display network connection status

This commit is contained in:
tux
2025-09-24 17:47:56 +05:30
parent e11a9c9134
commit ae3bc364be

View File

@@ -1,13 +1,39 @@
import AstalNetwork from "gi://AstalNetwork"; import AstalNetwork from "gi://AstalNetwork";
import { createBinding } from "gnim";
export const Network = () => { export const Network = () => {
const network = AstalNetwork.get_default(); const network = AstalNetwork.get_default();
const connnectivity = createBinding(network, "connectivity");
const getNetworkText = (
conn: AstalNetwork.Connectivity,
net: AstalNetwork.Network,
) => {
// no connection
if (conn == 1) return "No connection";
// wired
if (net.primary == 1) return "Wired";
// wifi
const wifi = net.wifi;
switch (wifi.internet) {
case 0:
return wifi.ssid;
case 1:
return "Connecting";
case 2:
return "Disconnected";
}
return "NA";
};
return ( return (
<box cssClasses={["pill"]}> <box cssClasses={["pill"]}>
<box spacing={5}> <box spacing={5}>
<image iconName="fa-wifi-symbolic" /> <image iconName="fa-wifi-symbolic" />
<label label={network.wifi.ssid} /> <label label={connnectivity((c) => getNetworkText(c, network))} />
</box> </box>
</box> </box>
); );