adwaita-web
Version:
A GTK inspired toolkit designed to build awesome web apps
39 lines (38 loc) • 1.13 kB
JavaScript
import clsx from "clsx";
import React, { useState } from "react";
import { Label } from "./Label";
import { Menu } from "./Menu";
import { MenuItem } from "./MenuItem";
import { Popover } from "./Popover";
function MenuBarButton({
label,
children,
className,
...rest
}) {
const [open, setOpen] = useState(false);
return /* @__PURE__ */ React.createElement(Popover, {
method: "click-controlled",
className: "MenuBar__popover",
placement: "bottom-start",
arrow: false,
delay: 50,
content: children || /* @__PURE__ */ React.createElement(EmptyMenu, null),
open,
onClose: () => setOpen(false)
}, /* @__PURE__ */ React.createElement("button", {
className: clsx("MenuBar__button", className, { active: open }) + (open ? " active" : ""),
onClick: () => setOpen(!open),
...rest
}, label));
}
function EmptyMenu() {
return /* @__PURE__ */ React.createElement(Menu, null, /* @__PURE__ */ React.createElement(MenuItem, null, /* @__PURE__ */ React.createElement(Label, {
muted: true,
italic: true,
noSelect: true
}, "(Empty menu)")));
}
export {
MenuBarButton
};