mirror of
https://github.com/tuxdotrs/tpanel.git
synced 2025-10-10 21:01:54 +05:30
feat(network): display network connection status
This commit is contained in:
@@ -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>
|
||||||
);
|
);
|
||||||
|
Reference in New Issue
Block a user