diff --git a/extensions/default/src/customizations/contextMenuUICustomization.ts b/extensions/default/src/customizations/contextMenuUICustomization.ts
index 4366df89c6e..6b941238d9e 100644
--- a/extensions/default/src/customizations/contextMenuUICustomization.ts
+++ b/extensions/default/src/customizations/contextMenuUICustomization.ts
@@ -1,5 +1,5 @@
-import { ContextMenu } from '@ohif/ui';
+import { ContextMenuViewport } from '@ohif/ui-next';
export default {
- 'ui.contextMenu': ContextMenu,
+ 'ui.contextMenu': ContextMenuViewport,
};
diff --git a/platform/ui-next/src/components/ContextMenuViewport/ContextMenuViewport.tsx b/platform/ui-next/src/components/ContextMenuViewport/ContextMenuViewport.tsx
new file mode 100644
index 00000000000..a34831d1582
--- /dev/null
+++ b/platform/ui-next/src/components/ContextMenuViewport/ContextMenuViewport.tsx
@@ -0,0 +1,46 @@
+import React from 'react';
+import { Icons } from '../Icons';
+
+interface ContextMenuViewportProps {
+ items?: Array<{
+ label: string;
+ action: (item: any, props: any) => void;
+ iconRight?: string;
+ [key: string]: unknown;
+ }>;
+ defaultPosition?: { x: number; y: number };
+ [key: string]: unknown;
+}
+
+const ContextMenuViewport = ({ items, ...props }: ContextMenuViewportProps) => {
+ if (!items) {
+ return null;
+ }
+
+ return (
+
e.preventDefault()}
+ >
+ {items.map((item, index) => (
+
item.action(item, props)}
+ className="hover:bg-accent hover:text-accent-foreground flex cursor-default select-none items-center justify-between rounded-sm px-2 py-1.5 text-base outline-none"
+ >
+ {item.label}
+ {item.iconRight && (
+
+ )}
+
+ ))}
+
+ );
+};
+
+export default ContextMenuViewport;
diff --git a/platform/ui-next/src/components/ContextMenuViewport/index.ts b/platform/ui-next/src/components/ContextMenuViewport/index.ts
new file mode 100644
index 00000000000..85f59ff4c8e
--- /dev/null
+++ b/platform/ui-next/src/components/ContextMenuViewport/index.ts
@@ -0,0 +1 @@
+export { default as ContextMenuViewport } from './ContextMenuViewport';
diff --git a/platform/ui-next/src/components/index.ts b/platform/ui-next/src/components/index.ts
index 699d2a14a87..7aa642a90a7 100644
--- a/platform/ui-next/src/components/index.ts
+++ b/platform/ui-next/src/components/index.ts
@@ -129,6 +129,7 @@ import {
} from './ToolButton';
import { LayoutSelector } from './LayoutSelector';
import { ToolSettings } from './OHIFToolSettings';
+import { ContextMenuViewport } from './ContextMenuViewport';
export { DataRow } from './DataRow';
export { MeasurementTable } from './MeasurementTable';
export * from './ColorCircle';
@@ -280,6 +281,7 @@ export {
ViewportDialog,
CinePlayer,
LayoutSelector,
+ ContextMenuViewport,
SmartScrollbar,
useSmartScrollbarLayoutContext,
useSmartScrollbarScrollContext,