wifi networks: hide network actions when not connected

This commit is contained in:
end-4
2025-03-28 18:45:30 +01:00
parent 04bee91d43
commit f2ad19f14b
@@ -37,29 +37,29 @@ const WifiNetwork = (accessPoint) => {
]
});
return Button({
onClicked: accessPoint.active ? () => {} : () => {
onClicked: accessPoint.active ? () => { } : () => {
connectAttempt = accessPoint.ssid;
networkAuthSSID.label = `Connecting to: ${connectAttempt}`;
// Check if the SSID is stored
execAsync(['nmcli', '-g', 'NAME', 'connection', 'show'])
.then((savedConnections) => {
const savedSSIDs = savedConnections.split('\n');
.then((savedConnections) => {
const savedSSIDs = savedConnections.split('\n');
if (!savedSSIDs.includes(connectAttempt)) { // SSID not saved: show password input
if (networkAuth) {
networkAuth.revealChild = true;
if (!savedSSIDs.includes(connectAttempt)) { // SSID not saved: show password input
if (networkAuth) {
networkAuth.revealChild = true;
}
} else { // If SSID is saved, hide password input
if (networkAuth) {
networkAuth.revealChild = false;
}
// Connect
execAsync(['nmcli', 'device', 'wifi', 'connect', connectAttempt])
.catch(print);
}
} else { // If SSID is saved, hide password input
if (networkAuth) {
networkAuth.revealChild = false;
}
// Connect
execAsync(['nmcli', 'device', 'wifi', 'connect', connectAttempt])
.catch(print);
}
})
.catch(print);
})
.catch(print);
},
child: Box({
@@ -185,7 +185,7 @@ const CurrentNetwork = () => {
authLock = false;
// Delete SSID connection before attempting to reconnect
execAsync(['nmcli', 'connection', 'delete', connectAttempt])
.catch(() => {}); // Ignore error if SSID not found
.catch(() => { }); // Ignore error if SSID not found
execAsync(['nmcli', 'device', 'wifi', 'connect', connectAttempt, 'password', self.text])
.then(() => {
@@ -216,17 +216,14 @@ const CurrentNetwork = () => {
if (activeSSID) {
execAsync(['nmcli', 'connection', 'delete', activeSSID])
.then(() => notify(`Forgot network: ${activeSSID}`))
.catch(err => notify(`Failed to forget network: ${err}`));
} else {
notify('No active network to forget');
.catch(err => Utils.notify(`Failed to forget network: ${err}`));
}
})
.catch(err => notify(`Error: ${err}`));
.catch(print);
},
setup: setupCursorHover,
});
const settingsButton = Button({
const propertiesButton = Button({
label: 'Properties',
className: 'txt sidebar-wifinetworks-network-button',
hexpand: true,
@@ -242,14 +239,22 @@ const CurrentNetwork = () => {
},
setup: setupCursorHover,
});
const networkProp = Box({
className: 'spacing-h-10',
homogeneous: true,
children: [
settingsButton,
forgetButton,
],
setup: setupCursorHover,
const networkProp = Revealer({
transition: 'slide_down',
transitionDuration: userOptions.animations.durationLarge,
child: Box({
className: 'spacing-h-10',
homogeneous: true,
children: [
propertiesButton,
forgetButton,
],
setup: setupCursorHover,
}),
setup: (self) => self.hook(Network, (self) => {
if (Network.wifi?.ssid === '') self.revealChild = false;
else self.revealChild = true;
}),
});
networkAuth = Revealer({
transition: 'slide_down',
@@ -266,9 +271,9 @@ const CurrentNetwork = () => {
setup: (self) => self.hook(Network, (self) => {
execAsync(['nmcli', '-g', 'NAME', 'connection', 'show'])
.then((savedConnections) => {
const savedSSIDs = savedConnections.split('\n');
if (Network.wifi.state == 'failed' ||
(Network.wifi.state == 'need_auth' && !savedSSIDs.includes(Network.wifi.ssid))) {
const savedSSIDs = savedConnections.split('\n');
if (Network.wifi.state == 'failed' ||
(Network.wifi.state == 'need_auth' && !savedSSIDs.includes(Network.wifi.ssid))) {
authLock = true;
connectAttempt = Network.wifi.ssid;
self.revealChild = true;
@@ -283,7 +288,7 @@ const CurrentNetwork = () => {
}, 20000); // 20 seconds timeout
}
}
).catch(print);
).catch(print);
}),
});
const actualContent = Box({