@@ -337,7 +337,7 @@ object Components {
337337 justifyContent.flexEnd,
338338 Elements .icon(ItemProperties .iconByNodeData(property.node.data))(marginRight := " 5px" ),
339339 editablePropertyNode(state, property.node, property.edge, editMode = editValue,
340- nonPropertyModifier = VDomModifier (cursor.pointer, onClick.stopPropagation.foreach(state.urlConfig.update(_.focus( Page ( property.node.id)))) ),
340+ nonPropertyModifier = VDomModifier (writeHoveredNode(state, property.node.id), cursor.pointer, onClick.stopPropagation( Some ( FocusPreference ( property.node.id))) --> state.rightSidebarNode ),
341341 maxLength = Some (100 ), config = EditableContent .Config .default,
342342 ),
343343 div(
@@ -387,6 +387,10 @@ object Components {
387387 boxShadow := " inset 0 0 1px 1px lightgray" ,
388388 color.gray,
389389 drag(DragItem .Property (key), target = DragItem .DisableDrag ),
390+ property.role match {
391+ case NodeRole .Neutral => VDomModifier .empty
392+ case _ => writeHoveredNode(state, property.id)
393+ }
390394 )
391395 }
392396
@@ -729,11 +733,10 @@ object Components {
729733 EditableContent .ofNodeOrRender(state, node, editMode, node => renderNodeDataWithFile(state, node.id, node.data, maxLength), config).editValue.map(GraphChanges .addNode) --> state.eventProcessor.changes
730734 )
731735 case _ => VDomModifier (
732- EditableContent .customOrRender[Node ](node, editMode, node => nodeCardWithFile(state, node, maxLength = maxLength).apply(Styles .wordWrap), handler => searchAndSelectNode(state, handler.collectHandler[Option [NodeId ]] { case id => EditInteraction .fromOption(id.map(state.rawGraph.now.nodesById(_))) } { case EditInteraction .Input (v) => Some (v.id) }.transformObservable(_.prepend(Some (node.id)))), config).editValue.map { newNode =>
736+ EditableContent .customOrRender[Node ](node, editMode, node => nodeCardWithFile(state, node, maxLength = maxLength).apply(Styles .wordWrap, nonPropertyModifier ), handler => searchAndSelectNode(state, handler.collectHandler[Option [NodeId ]] { case id => EditInteraction .fromOption(id.map(state.rawGraph.now.nodesById(_))) } { case EditInteraction .Input (v) => Some (v.id) }.transformObservable(_.prepend(Some (node.id)))), config).editValue.map { newNode =>
733737
734738 GraphChanges (delEdges = Set (edge), addEdges = Set (edge.copy(propertyId = PropertyId (newNode.id))))
735739 } --> state.eventProcessor.changes,
736- nonPropertyModifier
737740 )
738741 }
739742 )
@@ -1073,5 +1076,16 @@ object Components {
10731076 VDomModifier .ifTrue(isFocused)(boxShadow := s " 4px 0px 2px -2px ${CommonStyles .selectedNodesBgColorCSS}" )
10741077 }
10751078 )
1079+
1080+ def showHoveredNode (state : GlobalState , nodeId : NodeId )(implicit ctx : Ctx .Owner ): VDomModifier = VDomModifier (
1081+ state.hoverNodeId.map {
1082+ case Some (`nodeId`) => boxShadow := s " inset 0 0 2px 2px gray "
1083+ case _ => VDomModifier .empty
1084+ }
1085+ )
1086+ def writeHoveredNode (state : GlobalState , nodeId : NodeId )(implicit ctx : Ctx .Owner ): VDomModifier = VDomModifier (
1087+ onMouseOver(Some (nodeId)) --> state.hoverNodeId,
1088+ onMouseOut(None ) --> state.hoverNodeId,
1089+ )
10761090}
10771091
0 commit comments