11import { useSimContext } from "@/contexts/SimContext/context" ;
22import { EMessageType } from "@/contexts/SimContext/types" ;
3+ import { ELinkColor , EMessageColor , ENodeColor } from "@/utils/colors" ;
34import { useCallback } from "react" ;
45
56export const useHandlers = ( ) => {
@@ -53,10 +54,10 @@ export const useHandlers = () => {
5354 context . beginPath ( ) ;
5455 context . moveTo ( nodeStart . fx , nodeStart . fy ) ;
5556 context . lineTo ( nodeEnd . fx , nodeEnd . fy ) ;
56- context . strokeStyle = "#ddd" ;
57+ context . strokeStyle = ELinkColor . LINK_DEFAULT ;
5758
5859 if ( link . source === currentNode || link . target === currentNode ) {
59- context . strokeStyle = "black" ;
60+ context . strokeStyle = ELinkColor . LINK_SELECTED ;
6061 }
6162
6263 context . lineWidth = Math . min ( ( 0.2 / canvasScale ) * 6 , 0.2 ) ;
@@ -84,28 +85,30 @@ export const useHandlers = () => {
8485 }
8586
8687 if ( currentNode === node . id . toString ( ) ) {
87- context . fillStyle = "blue" ;
88+ context . fillStyle = ENodeColor . SELECTED ;
8889 } else {
8990 // Color based on last activity
9091 const nodeStats = aggregatedData . nodes . get ( node . id . toString ( ) ) ;
9192 const lastActivity = nodeStats ?. lastActivity ;
9293
9394 // Check if activity is recent (within timeout)
94- const activityIsRecent = lastActivity &&
95- ( currentTime - lastActivity . time ) <= ACTIVITY_TIMEOUT ;
95+ const activityIsRecent =
96+ lastActivity && currentTime - lastActivity . time <= ACTIVITY_TIMEOUT ;
9697
9798 if ( activityIsRecent ) {
9899 if ( lastActivity . type === EMessageType . EB ) {
99- context . fillStyle = "#9333ea" ; // Purple for EB-related activity
100+ context . fillStyle = EMessageColor . EB ;
100101 } else if ( lastActivity . type === EMessageType . RB ) {
101- context . fillStyle = "#87ceeb" ; // Light blue for RB-related activity
102+ context . fillStyle = EMessageColor . RB ;
102103 } else {
103- context . fillStyle = node . data . stake ? "#DC53DE" : "blue" ; // Default colors
104+ context . fillStyle = node . data . stake
105+ ? ENodeColor . STAKE_NODE
106+ : ENodeColor . SELECTED ;
104107 }
105108 } else if ( ! node . data . stake ) {
106- context . fillStyle = "gray" ;
109+ context . fillStyle = ENodeColor . INACTIVE ;
107110 } else {
108- context . fillStyle = "#DC53DE" ; // Stake node default
111+ context . fillStyle = ENodeColor . STAKE_NODE ;
109112 }
110113 }
111114
@@ -127,33 +130,24 @@ export const useHandlers = () => {
127130 const y =
128131 senderNode . fy + ( recipientNode . fy - senderNode . fy ) * message . progress ;
129132
130- // Draw colored rectangle based on message type
133+ // Draw colored rectangle based on message type (consistent with pie chart colors)
131134 const rectSize = Math . min ( ( 0.8 / canvasScale ) * 6 , 0.8 ) ;
132-
133- if ( message . type === EMessageType . EB ) {
134- context . fillStyle = "#9333ea" ; // Purple for EB messages
135- context . strokeStyle = "#7c3aed" ;
136- } else if ( message . type === EMessageType . RB ) {
137- context . fillStyle = "#87ceeb" ; // Light blue for RB messages
138- context . strokeStyle = "#5f9ea0" ;
139- } else if ( message . type === EMessageType . TX ) {
140- context . fillStyle = "#90ee90" ; // Light green for transaction messages
141- context . strokeStyle = "#6bc46b" ;
142- } else {
143- context . fillStyle = "#666" ; // Gray for other message types
144- context . strokeStyle = "#444" ;
135+
136+ switch ( message . type ) {
137+ case EMessageType . TX :
138+ context . fillStyle = EMessageColor . TX ;
139+ break ;
140+ case EMessageType . EB :
141+ context . fillStyle = EMessageColor . EB ;
142+ break ;
143+ case EMessageType . Votes :
144+ context . fillStyle = EMessageColor . VOTES ;
145+ break ;
146+ case EMessageType . RB :
147+ context . fillStyle = EMessageColor . RB ;
148+ break ;
145149 }
146-
147150 context . fillRect ( x - rectSize / 2 , y - rectSize / 2 , rectSize , rectSize ) ;
148-
149- // Add a slight border for visibility
150- context . lineWidth = Math . min ( ( 0.1 / canvasScale ) * 6 , 0.1 ) ;
151- context . strokeRect (
152- x - rectSize / 2 ,
153- y - rectSize / 2 ,
154- rectSize ,
155- rectSize ,
156- ) ;
157151 } ) ;
158152
159153 context . restore ( ) ;
0 commit comments