* WIP * Fix nerdfont icon alignments * Ship needed fonts * Remove italicised fonts * Update readme and separate OSD settings into their own category. * Dashboard styling updates --------- Co-authored-by: matavach <erik@matijevich.org>
79 lines
3.1 KiB
TypeScript
79 lines
3.1 KiB
TypeScript
import { BluetoothDevice } from "types/service/bluetooth";
|
|
|
|
const connectedControls = (dev: BluetoothDevice, connectedDevices: BluetoothDevice[]) => {
|
|
if (!connectedDevices.includes(dev.address)) {
|
|
return Widget.Box({});
|
|
}
|
|
|
|
return Widget.Box({
|
|
vpack: "start",
|
|
class_name: "bluetooth-controls",
|
|
children: [
|
|
Widget.Button({
|
|
class_name: "menu-icon-button unpair bluetooth",
|
|
child: Widget.Label({
|
|
tooltip_text: dev.paired ? "Unpair" : "Pair",
|
|
class_name: "menu-icon-button-label unpair bluetooth txt-icon",
|
|
label: dev.paired ? "" : "",
|
|
}),
|
|
on_primary_click: () =>
|
|
Utils.execAsync([
|
|
"bash",
|
|
"-c",
|
|
`bluetoothctl ${dev.paired ? "unpair" : "pair"} ${dev.address}`,
|
|
]).catch((err) =>
|
|
console.error(
|
|
`bluetoothctl ${dev.paired ? "unpair" : "pair"} ${dev.address}`,
|
|
err,
|
|
),
|
|
),
|
|
}),
|
|
Widget.Button({
|
|
class_name: "menu-icon-button disconnect bluetooth",
|
|
child: Widget.Label({
|
|
tooltip_text: dev.connected ? "Disconnect" : "Connect",
|
|
class_name: "menu-icon-button-label disconnect bluetooth txt-icon",
|
|
label: dev.connected ? "" : "",
|
|
}),
|
|
on_primary_click: () => dev.setConnection(!dev.connected),
|
|
}),
|
|
Widget.Button({
|
|
class_name: "menu-icon-button untrust bluetooth",
|
|
child: Widget.Label({
|
|
tooltip_text: dev.trusted ? "Untrust" : "Trust",
|
|
class_name: "menu-icon-button-label untrust bluetooth txt-icon",
|
|
label: dev.trusted ? "" : "",
|
|
}),
|
|
on_primary_click: () =>
|
|
Utils.execAsync([
|
|
"bash",
|
|
"-c",
|
|
`bluetoothctl ${dev.trusted ? "untrust" : "trust"} ${dev.address}`,
|
|
]).catch((err) =>
|
|
console.error(
|
|
`bluetoothctl ${dev.trusted ? "untrust" : "trust"} ${dev.address}`,
|
|
err,
|
|
),
|
|
),
|
|
}),
|
|
Widget.Button({
|
|
class_name: "menu-icon-button delete bluetooth",
|
|
child: Widget.Label({
|
|
tooltip_text: "Forget",
|
|
class_name: "menu-icon-button-label delete bluetooth txt-icon",
|
|
label: "",
|
|
}),
|
|
on_primary_click: () => {
|
|
Utils.execAsync([
|
|
"bash",
|
|
"-c",
|
|
`bluetoothctl remove ${dev.address}`,
|
|
]).catch((err) => console.error("Bluetooth Remove", err));
|
|
},
|
|
}),
|
|
],
|
|
});
|
|
};
|
|
|
|
export { connectedControls };
|