const css = `${App.configDir}/style.css`;
const hyprland = await Service.import("hyprland");
// const systray = await Service.import("systemtray");

function workspaces() {
    const active = hyprland.active.workspace.bind("id");
    const workspaces = hyprland.bind("workspaces")
          .as(ws => ws.map(({ id }) => Widget.Button({
              onClicked: () => hyprland.messageAsync(`dispatch workspace ${id}`),
              child: Widget.Label(`${id}`),
              class_name: active.as(i => `${i === id ? "focused" : ""}`),
          })))
    return Widget.Box({
        class_name: "workspaces",
        children: workspaces,
    })
}

const date = Variable("", {
    poll: [1000, 'date "+\%a \%b \%d, \%-I:\%M \%p"'],
})

function Bar(monitor = 0) {
    const myLabel = Widget.Label({
        label: 'some example content',
    })

    const clock = Widget.Label({
        label: date.bind(),
    })

    return Widget.Window({
        monitor,
        name: `bar${monitor}`, // this name has to be unique
        anchor: ['top', 'left', 'right'],
        child: Widget.CenterBox({
            startWidget: workspaces(),
            centerWidget: clock,
            endWidget: myLabel,
        }),
    })
}

App.config({
    style: css,
    windows: [
        Bar(0), // can be instantiated for each monitor
        Bar(1),
    ],
})

export { }
