From 2257c8c419adf136a9ed392e777b1a98b4bfb228 Mon Sep 17 00:00:00 2001 From: Sean Martin Date: Fri, 5 Jun 2026 18:08:34 +0200 Subject: [PATCH] feat: add custom message on hitting seg layer for annotate --- src/viewer.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/viewer.ts b/src/viewer.ts index 4b171fdf06..b7fdef50e4 100644 --- a/src/viewer.ts +++ b/src/viewer.ts @@ -52,6 +52,7 @@ import { TrackableDataSelectionState, UserLayer, } from "#src/layer/index.js"; +import { SegmentationUserLayer } from "#src/layer/segmentation/index.js"; import { LayerGroupViewer } from "#src/layer_group_viewer.js"; import { RootLayoutContainer } from "#src/layer_groups_layout.js"; import { @@ -1119,6 +1120,24 @@ export class Viewer extends RefCounted implements ViewerState { } const userLayer = selectedLayer.layer; if (userLayer === null || userLayer.tool.value === undefined) { + if (userLayer instanceof SegmentationUserLayer) { + const editDisabledReason = + userLayer.getSpatialSkeletonActionsDisabledReason(); + if (editDisabledReason === undefined) { + StatusMessage.showTemporaryMessage( + `Activate the edit mode tool to place skeletons in layer ${JSON.stringify( + selectedLayer.name, + )}`, + ); + } else { + StatusMessage.showTemporaryMessage( + `The selected layer (${JSON.stringify( + selectedLayer.name, + )}) does not have an active annotation tool or support editable skeletons (${editDisabledReason}).`, + ); + } + return; + } StatusMessage.showTemporaryMessage( `The selected layer (${JSON.stringify( selectedLayer.name,