* feat: add wifi toggle slider * Added styling options for the network switch --------- Co-authored-by: Jas Singh <jaskiratpal.singh@outlook.com>
82 lines
2.8 KiB
TypeScript
82 lines
2.8 KiB
TypeScript
const network = await Service.import('network');
|
|
import { renderWAPs } from './WirelessAPs.js';
|
|
import { renderWapStaging } from './APStaging.js';
|
|
import { AccessPoint } from 'lib/types/network.js';
|
|
import { BoxWidget } from 'lib/types/widget.js';
|
|
|
|
const Staging = Variable({} as AccessPoint);
|
|
const Connecting = Variable('');
|
|
|
|
const searchInProgress = Variable(false);
|
|
|
|
const startRotation = (): void => {
|
|
searchInProgress.value = true;
|
|
setTimeout(() => {
|
|
searchInProgress.value = false;
|
|
}, 5 * 1000);
|
|
};
|
|
|
|
const Wifi = (): BoxWidget => {
|
|
return Widget.Box({
|
|
class_name: 'menu-section-container wifi',
|
|
vertical: true,
|
|
children: [
|
|
Widget.Box({
|
|
class_name: 'menu-label-container',
|
|
hpack: 'fill',
|
|
children: [
|
|
Widget.Label({
|
|
class_name: 'menu-label',
|
|
hexpand: true,
|
|
hpack: 'start',
|
|
label: 'Wi-Fi',
|
|
}),
|
|
Widget.Switch({
|
|
class_name: 'menu-switch network',
|
|
vpack: 'center',
|
|
tooltip_text: 'Toggle Wifi',
|
|
active: network.wifi.enabled,
|
|
on_activate: () => {
|
|
network.toggleWifi();
|
|
},
|
|
}),
|
|
Widget.Button({
|
|
vpack: 'center',
|
|
hpack: 'end',
|
|
class_name: 'menu-icon-button search network',
|
|
on_primary_click: () => {
|
|
startRotation();
|
|
network.wifi.scan();
|
|
},
|
|
child: Widget.Icon({
|
|
class_name: searchInProgress.bind('value').as((v) => (v ? 'spinning' : '')),
|
|
icon: 'view-refresh-symbolic',
|
|
}),
|
|
}),
|
|
],
|
|
}),
|
|
Widget.Box({
|
|
class_name: 'menu-items-section',
|
|
vertical: true,
|
|
children: [
|
|
Widget.Box({
|
|
class_name: 'wap-staging',
|
|
setup: (self) => {
|
|
renderWapStaging(self, network, Staging, Connecting);
|
|
},
|
|
}),
|
|
Widget.Box({
|
|
class_name: 'available-waps',
|
|
vertical: true,
|
|
setup: (self) => {
|
|
renderWAPs(self, network, Staging, Connecting);
|
|
},
|
|
}),
|
|
],
|
|
}),
|
|
],
|
|
});
|
|
};
|
|
|
|
export { Wifi };
|