Skip to content

Commit 2df5e5e

Browse files
mswiszczclaude
andcommitted
feat(badge): render border highlight in BlockMask component
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent a4c9b0b commit 2df5e5e

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

frontend/app/block/block.scss

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -444,5 +444,10 @@
444444
}
445445
}
446446
}
447+
448+
// Badge border highlight overrides all other border states
449+
.block-mask.badge-border-highlight {
450+
border: 2px solid var(--badge-border-color) !important;
451+
}
447452
}
448453
}

frontend/app/block/blockframe.tsx

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { BlockFrame_Header } from "@/app/block/blockframe-header";
66
import { blockViewToIcon, getViewIconElem, useTabBackground } from "@/app/block/blockutil";
77
import { ConnStatusOverlay } from "@/app/block/connstatusoverlay";
88
import { ChangeConnectionBlockModal } from "@/app/modals/conntypeahead";
9+
import { getBlockBorderAtom } from "@/app/store/badge";
910
import { getBlockComponentModel, globalStore, useBlockAtom } from "@/app/store/global";
1011
import { useTabModel } from "@/app/store/tab-model";
1112
import { TabRpcClient } from "@/app/store/wshrpcutil";
@@ -32,6 +33,7 @@ const BlockMask = React.memo(({ nodeModel }: { nodeModel: NodeModel }) => {
3233
const isLayoutMode = jotai.useAtomValue(waveEnv.atoms.controlShiftDelayAtom);
3334
const showOverlayBlockNums = jotai.useAtomValue(waveEnv.getSettingsKeyAtom("app:showoverlayblocknums")) ?? true;
3435
const blockHighlight = jotai.useAtomValue(BlockModel.getInstance().getBlockHighlightAtom(nodeModel.blockId));
36+
const badgeBorder = jotai.useAtomValue(getBlockBorderAtom(nodeModel.blockId));
3537
const frameActiveBorderColor = jotai.useAtomValue(
3638
waveEnv.getBlockMetaKeyAtom(nodeModel.blockId, "frame:activebordercolor")
3739
);
@@ -63,6 +65,10 @@ const BlockMask = React.memo(({ nodeModel }: { nodeModel: NodeModel }) => {
6365
style.borderColor = "rgb(59, 130, 246)";
6466
}
6567

68+
if (badgeBorder) {
69+
style["--badge-border-color" as any] = badgeBorder.color;
70+
}
71+
6672
let innerElem = null;
6773
if (isLayoutMode && showOverlayBlockNums) {
6874
showBlockMask = true;
@@ -83,7 +89,11 @@ const BlockMask = React.memo(({ nodeModel }: { nodeModel: NodeModel }) => {
8389

8490
return (
8591
<div
86-
className={clsx("block-mask", { "show-block-mask": showBlockMask, "bg-blue-500/10": blockHighlight })}
92+
className={clsx("block-mask", {
93+
"show-block-mask": showBlockMask,
94+
"bg-blue-500/10": blockHighlight,
95+
"badge-border-highlight": !!badgeBorder,
96+
})}
8797
style={style}
8898
>
8999
{innerElem}

0 commit comments

Comments
 (0)