ФУНКЦИИ - МЕЖПРОЕКТНАЯ КОММУНИКАЦИЯ: presence автора и унификация карточек

This commit is contained in:
DCCONSTRUCTIONS
2026-04-29 14:22:42 +03:00
parent d53fa2b38c
commit 4dbb7b500c
11 changed files with 466 additions and 89 deletions
@@ -26,6 +26,7 @@ export interface IActionDropdownProps {
disabled?: boolean;
items: TContextMenuItem[];
menuContent?: TActionDropdownMenuContent;
menuContentBefore?: TActionDropdownMenuContent;
menuClassName?: string;
onOpenChange?: (isOpen: boolean) => void;
placement?: TPlacement;
@@ -139,6 +140,7 @@ export function ActionDropdown(props: IActionDropdownProps) {
disabled = false,
items,
menuContent,
menuContentBefore,
menuClassName,
onOpenChange,
placement,
@@ -151,6 +153,7 @@ export function ActionDropdown(props: IActionDropdownProps) {
const renderedItems = items.filter((item) => item.shouldRender !== false);
const hasMenuContent = menuContent !== undefined && menuContent !== null;
const hasMenuContentBefore = menuContentBefore !== undefined && menuContentBefore !== null;
const isDropdownDisabled = disabled || (!hasMenuContent && renderedItems.length === 0);
const { styles, attributes } = usePopper(referenceElement, popperElement, {
@@ -309,6 +312,10 @@ export function ActionDropdown(props: IActionDropdownProps) {
)
) : (
<div className="max-h-[min(85vh,40rem)] space-y-1 overflow-y-auto">
{hasMenuContentBefore &&
(typeof menuContentBefore === "function"
? menuContentBefore({ closeDropdown })
: menuContentBefore)}
{renderedItems.map((item) => (
<ActionDropdownItem key={item.key} item={item} onSelect={closeDropdown} />
))}