f6a0673082
CI Pipeline / test (20) (pull_request) Failing after 1m17s
CI Pipeline / test (18) (pull_request) Failing after 1m28s
CI Pipeline / e2e (chromium) (pull_request) Failing after 1m33s
CI Pipeline / e2e (firefox) (pull_request) Failing after 1m27s
CI Pipeline / e2e (webkit) (pull_request) Failing after 1m34s
CI Pipeline / visual-regression (pull_request) Failing after 2m9s
CI Pipeline / storybook (pull_request) Failing after 1m5s
CI Pipeline / performance (pull_request) Failing after 1m42s
CI Pipeline / lint (pull_request) Failing after 49s
CI Pipeline / build (pull_request) Failing after 1m29s
37 lines
904 B
TypeScript
37 lines
904 B
TypeScript
"use client";
|
|
|
|
import React, { forwardRef, memo } from "react";
|
|
|
|
interface ContextMenuSectionProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
title?: string;
|
|
children?: React.ReactNode;
|
|
className?: string;
|
|
}
|
|
|
|
const ContextMenuSection = forwardRef<HTMLDivElement, ContextMenuSectionProps>(
|
|
({ title, children, className = "", ...props }, ref) => {
|
|
const sectionClasses = `
|
|
${className}
|
|
`
|
|
.trim()
|
|
.replace(/\s+/g, " ");
|
|
|
|
return (
|
|
<div ref={ref} className={sectionClasses} role="group" {...props}>
|
|
{title && (
|
|
<div className="px-3 py-2">
|
|
<div className="text-[var(--color-content-default-primary)] text-sm font-medium">
|
|
{title}
|
|
</div>
|
|
</div>
|
|
)}
|
|
{children}
|
|
</div>
|
|
);
|
|
}
|
|
);
|
|
|
|
ContextMenuSection.displayName = "ContextMenuSection";
|
|
|
|
export default memo(ContextMenuSection);
|