mirror of
https://github.com/Theaninova/TheaninovOS.git
synced 2025-12-13 03:56:24 +00:00
update system
This commit is contained in:
43
overlays/asztal/service/powermenu.ts
Normal file
43
overlays/asztal/service/powermenu.ts
Normal file
@@ -0,0 +1,43 @@
|
||||
import options from "options"
|
||||
|
||||
const { sleep, reboot, logout, shutdown } = options.powermenu
|
||||
|
||||
export type Action = "sleep" | "reboot" | "logout" | "shutdown"
|
||||
|
||||
class PowerMenu extends Service {
|
||||
static {
|
||||
Service.register(this, {}, {
|
||||
"title": ["string"],
|
||||
"cmd": ["string"],
|
||||
})
|
||||
}
|
||||
|
||||
#title = ""
|
||||
#cmd = ""
|
||||
|
||||
get title() { return this.#title }
|
||||
get cmd() { return this.#cmd }
|
||||
|
||||
action(action: Action) {
|
||||
[this.#cmd, this.#title] = {
|
||||
sleep: [sleep.value, "Sleep"],
|
||||
reboot: [reboot.value, "Reboot"],
|
||||
logout: [logout.value, "Log Out"],
|
||||
shutdown: [shutdown.value, "Shutdown"],
|
||||
}[action]
|
||||
|
||||
this.notify("cmd")
|
||||
this.notify("title")
|
||||
this.emit("changed")
|
||||
App.closeWindow("powermenu")
|
||||
App.openWindow("verification")
|
||||
}
|
||||
|
||||
readonly shutdown = () => {
|
||||
this.action("shutdown")
|
||||
}
|
||||
}
|
||||
|
||||
const powermenu = new PowerMenu
|
||||
Object.assign(globalThis, { powermenu })
|
||||
export default powermenu
|
||||
Reference in New Issue
Block a user