mirror of
https://github.com/xsghetti/HyprCrux.git
synced 2025-07-03 13:50:38 -04:00
38 lines
684 B
JavaScript
38 lines
684 B
JavaScript
import options from "../../options.js"
|
|
|
|
export default ({
|
|
window = "",
|
|
flat,
|
|
child,
|
|
setup,
|
|
...rest
|
|
}) => Widget.Button({
|
|
child: Widget.Box({ child }),
|
|
setup: self => {
|
|
let open = false
|
|
|
|
self.toggleClassName("panel-button")
|
|
self.toggleClassName(window)
|
|
|
|
self.toggleClassName("flat", flat ?? options.bar.flatButtons)
|
|
|
|
self.hook(App, (_, win, visible) => {
|
|
if (win !== window)
|
|
return
|
|
|
|
if (open && !visible) {
|
|
open = false
|
|
self.toggleClassName("active", false)
|
|
}
|
|
|
|
if (visible) {
|
|
open = true
|
|
self.toggleClassName("active")
|
|
}
|
|
})
|
|
|
|
if (setup)
|
|
setup(self)
|
|
},
|
|
...rest,
|
|
})
|