@premieroctet/next-admin
Version:
Next-Admin provides a customizable and turnkey admin dashboard for applications built with Next.js and powered by the Prisma ORM. It aims to simplify the development process by providing a turnkey admin system that can be easily integrated into your proje
73 lines (72 loc) • 3.72 kB
JavaScript
import { jsx, jsxs } from "react/jsx-runtime";
import { Transition, TransitionChild } from "@headlessui/react";
import { ChevronDownIcon, EllipsisVerticalIcon } from "@heroicons/react/24/outline";
import external_clsx_default from "clsx";
import Link_mjs_default from "./common/Link.mjs";
import { useState } from "react";
import { useI18n } from "../context/I18nContext.mjs";
import { Dropdown, DropdownBody, DropdownContent, DropdownItem, DropdownTrigger } from "./radix/Dropdown.mjs";
const ExportDropdown = ({ exports })=>{
const { t } = useI18n();
const [isOpen, setIsOpen] = useState(false);
return /*#__PURE__*/ jsxs(Dropdown, {
onOpenChange: setIsOpen,
children: [
/*#__PURE__*/ jsx(DropdownTrigger, {
asChild: true,
className: "text-nextadmin-content-inverted dark:text-dark-nextadmin-brand-inverted border-nextadmin-border-default dark:border-dark-nextadmin-border-default dark:bg-dark-nextadmin-background-subtle flex items-center gap-x-2 rounded-md border bg-transparent px-3 py-2 text-sm",
"data-testid": "actions-dropdown",
children: /*#__PURE__*/ jsx("button", {
type: "button",
children: /*#__PURE__*/ jsxs("div", {
className: "flex gap-1",
children: [
/*#__PURE__*/ jsx("span", {
className: "hidden md:block",
children: t("export.label")
}),
/*#__PURE__*/ jsx(ChevronDownIcon, {
className: "hidden h-5 w-5 md:block",
"aria-hidden": "true"
}),
/*#__PURE__*/ jsx(EllipsisVerticalIcon, {
className: "block h-5 w-5 md:hidden",
"aria-hidden": "true"
})
]
})
})
}),
/*#__PURE__*/ jsx(DropdownBody, {
forceMount: true,
children: /*#__PURE__*/ jsx(Transition, {
show: isOpen,
children: /*#__PURE__*/ jsx(TransitionChild, {
as: DropdownContent,
className: "min-w-[10rem] p-2",
sideOffset: 4,
"data-testid": "actions-dropdown-content",
enter: "transition-all ease-out",
enterFrom: "opacity-0 -translate-y-1",
enterTo: "opacity-100 translate-y-0",
leave: "transition-all ease-in",
leaveFrom: "opacity-100 translate-y-0",
leaveTo: "opacity-0 -translate-y-1",
children: exports?.map(({ format, url })=>/*#__PURE__*/ jsx(DropdownItem, {
className: external_clsx_default("cursor-pointer rounded-md px-2 py-1"),
children: /*#__PURE__*/ jsx(Link_mjs_default, {
href: url,
target: "_blank",
children: t("list.row.actions.export", {
format: format
})
})
}, format))
})
})
})
]
});
};
const components_ExportDropdown = ExportDropdown;
export { components_ExportDropdown as default };