@@ -48,79 +40,7 @@ export const SegmentationHeader: React.FC<{
-
- {
- e.stopPropagation();
- onSegmentAdd(segmentation.segmentationId);
- }}
- >
-
- {t('Add Segment')}
-
-
- {
- e.stopPropagation();
- onSegmentationRemoveFromViewport(segmentation.segmentationId);
- }}
- >
-
- {t('Remove from Viewport')}
-
- {
- e.stopPropagation();
- onSegmentationEdit(segmentation.segmentationId);
- }}
- >
-
- {t('Rename')}
-
- e.stopPropagation()}>
-
- {t('Hide or Show all Segments')}
-
-
- e.stopPropagation()}>
-
- {t('Export & Download')}
-
-
-
- {
- e.stopPropagation();
- storeSegmentation(segmentation.segmentationId);
- }}
- >
- {t('Export DICOM SEG')}
-
- {
- e.stopPropagation();
- onSegmentationDownload(segmentation.segmentationId);
- }}
- >
- {t('Download DICOM SEG')}
-
- {
- e.stopPropagation();
- onSegmentationDownloadRTSS(segmentation.segmentationId);
- }}
- >
- {t('Download DICOM RTSTRUCT')}
-
-
-
-
-
- onSegmentationDelete(segmentation.segmentationId)}>
-
- {t('Delete')}
-
-
+ {childrenWithProps}
{segmentation.label}
diff --git a/platform/ui-next/src/components/SegmentationTable/SegmentationSelectorHeader.tsx b/platform/ui-next/src/components/SegmentationTable/SegmentationSelectorHeader.tsx
index 63967af36..1d8ca93e3 100644
--- a/platform/ui-next/src/components/SegmentationTable/SegmentationSelectorHeader.tsx
+++ b/platform/ui-next/src/components/SegmentationTable/SegmentationSelectorHeader.tsx
@@ -4,17 +4,9 @@ import {
Button,
DropdownMenu,
DropdownMenuTrigger,
- DropdownMenuItem,
- DropdownMenuContent,
- DropdownMenuSeparator,
- DropdownMenuSub,
- DropdownMenuPortal,
- DropdownMenuSubContent,
- DropdownMenuSubTrigger,
Tooltip,
TooltipTrigger,
TooltipContent,
- DropdownMenuLabel,
} from '../../components';
import { useTranslation } from 'react-i18next';
@@ -26,20 +18,8 @@ export const SegmentationSelectorHeader: React.FC<{ children?: React.ReactNode }
}) => {
const { t } = useTranslation('SegmentationTable.HeaderCollapsed');
- const {
- data,
- activeSegmentationId,
- mode,
- onSegmentationClick,
- onSegmentationAdd,
- onSegmentationRemoveFromViewport,
- onSegmentationEdit,
- onSegmentationDelete,
- onSegmentationDownload,
- onSegmentationDownloadRTSS,
- storeSegmentation,
- exportOptions,
- } = useSegmentationTableContext('SegmentationTable.HeaderCollapsed');
+ const { data, activeSegmentationId, mode, onSegmentationClick, exportOptions, ...contextProps } =
+ useSegmentationTableContext('SegmentationTable.HeaderCollapsed');
if (mode !== 'collapsed' || !data?.length) {
return null;
@@ -65,6 +45,17 @@ export const SegmentationSelectorHeader: React.FC<{ children?: React.ReactNode }
({ segmentationId }) => segmentationId === activeSegmentation.id
)?.isExportable;
+ const childrenWithProps = React.Children.map(children, child =>
+ React.isValidElement(child)
+ ? React.cloneElement(child, {
+ activeSegmentation,
+ allowExport,
+ t,
+ ...contextProps,
+ })
+ : child
+ );
+
return (
@@ -76,49 +67,7 @@ export const SegmentationSelectorHeader: React.FC<{ children?: React.ReactNode }
-
- onSegmentationAdd(activeSegmentation.id)}>
-
- {t('Create New Segmentation')}
-
-
- {t('Manage Current Segmentation')}
- onSegmentationRemoveFromViewport(activeSegmentation.id)}>
-
- {t('Remove from Viewport')}
-
- onSegmentationEdit(activeSegmentation.id)}>
-
- {t('Rename')}
-
-
-
-
- {t('Export & Download')}
-
-
-
- storeSegmentation(activeSegmentation.id)}>
- {t('Export DICOM SEG')}
-
- onSegmentationDownload(activeSegmentation.id)}>
- {t('Download DICOM SEG')}
-
- onSegmentationDownloadRTSS(activeSegmentation.id)}>
- {t('Download DICOM RTSTRUCT')}
-
-
-
-
-
- onSegmentationDelete(activeSegmentation.id)}>
-
- {t('Delete')}
-
-
+ {childrenWithProps}