analytica-frontend-lib
Version:
Repositório público dos componentes utilizados nas plataformas da Analytica Ensino
89 lines (87 loc) • 2.52 kB
JavaScript
import {
useMobile
} from "./chunk-GKY77WVA.mjs";
import {
IconButton_default
} from "./chunk-LGQNMQOT.mjs";
import {
DropdownMenuContent,
DropdownMenuTrigger,
DropdownMenu_default
} from "./chunk-DHHHYBOU.mjs";
import {
Modal_default
} from "./chunk-TNLGS7SB.mjs";
// src/components/CalendarCard/CalendarCard.tsx
import { CalendarBlankIcon } from "@phosphor-icons/react/dist/csr/CalendarBlank";
import { useCallback, useState } from "react";
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
var CalendarCard = ({
content,
isOpen,
onOpenChange,
title = "Calend\xE1rio",
className
}) => {
const { isMobile } = useMobile();
const [internalOpen, setInternalOpen] = useState(false);
const isControlled = isOpen !== void 0;
const effectiveOpen = isControlled ? isOpen : internalOpen;
const handleOpenChange = useCallback(
(open) => {
if (!isControlled) {
setInternalOpen(open);
}
onOpenChange?.(open);
},
[isControlled, onOpenChange]
);
const iconColor = effectiveOpen ? "text-primary-950" : "text-primary";
const triggerIcon = /* @__PURE__ */ jsx(CalendarBlankIcon, { size: 24, className: iconColor });
if (isMobile) {
return /* @__PURE__ */ jsxs(Fragment, { children: [
/* @__PURE__ */ jsx(
IconButton_default,
{
active: effectiveOpen,
onClick: () => handleOpenChange(!effectiveOpen),
icon: triggerIcon,
className
}
),
/* @__PURE__ */ jsx(
Modal_default,
{
isOpen: effectiveOpen,
onClose: () => handleOpenChange(false),
title,
children: /* @__PURE__ */ jsx("div", { className: "flex justify-center", children: content })
}
)
] });
}
return /* @__PURE__ */ jsxs(DropdownMenu_default, { open: effectiveOpen, onOpenChange: handleOpenChange, children: [
/* @__PURE__ */ jsx(
DropdownMenuTrigger,
{
className: `text-primary cursor-pointer ${className ?? ""}`,
children: /* @__PURE__ */ jsx(IconButton_default, { active: effectiveOpen, icon: triggerIcon })
}
),
/* @__PURE__ */ jsx(
DropdownMenuContent,
{
className: "w-[320px] max-w-[calc(100vw-16px)] max-h-[80vh] overflow-y-auto",
align: "end",
side: "bottom",
children: content
}
)
] });
};
var CalendarCard_default = CalendarCard;
export {
CalendarCard,
CalendarCard_default
};
//# sourceMappingURL=chunk-3VAKGCMF.mjs.map