@@ -56,50 +56,52 @@ export default function NodeListProvider({ children }: { children: ReactNode })
5656 const handleSocketEvent = useConnectionStore ( ( state ) => state . handleSocketEvent ) ;
5757
5858 useEffect ( ( ) => {
59- socket ?. on ( "joinRoom" , ( initialData ) => {
60- updateLoadingStatus ( { type : "socketLoading" , status : true } ) ;
61- setTimeout ( ( ) => {
62- setData ( { ...initialData . nodeData } ) ;
63- overrideHistory ( JSON . stringify ( initialData . nodeData ) ) ;
64- initializeTitle ( initialData ) ;
65- initializeContent ( initialData ) ;
66- initializeAiCount ( initialData ) ;
67- updateLoadingStatus ( { type : "socketLoading" , status : false } ) ;
68- } , 0 ) ;
69- } ) ;
70-
71- socket ?. on ( "updateNode" , ( updatedNodeData ) => {
72- overrideNodeData ( updatedNodeData ) ;
73- } ) ;
74-
75- socket ?. on ( "updateTitle" , ( updatedTitle ) => {
76- updateTitle ( updatedTitle . title ) ;
77- } ) ;
78-
79- socket ?. on ( "updateContent" , ( updatedContent ) => {
80- updateContent ( updatedContent . content ) ;
81- } ) ;
82-
83- socket ?. on ( "disconnect" , ( ) => {
84- setData ( { } ) ;
85- overrideHistory ( JSON . stringify ( { } ) ) ;
86- } ) ;
87-
88- socket ?. on ( "aiPending" , ( response ) => {
89- updateLoadingStatus ( { type : "aiPending" , status : response . status } ) ;
90- } ) ;
59+ if ( ! socket ) return ;
60+
61+ const eventHandlers = {
62+ joinRoom : ( initialData ) => {
63+ updateLoadingStatus ( { type : "socketLoading" , status : true } ) ;
64+ setTimeout ( ( ) => {
65+ setData ( { ...initialData . nodeData } ) ;
66+ overrideHistory ( JSON . stringify ( initialData . nodeData ) ) ;
67+ initializeTitle ( initialData ) ;
68+ initializeContent ( initialData ) ;
69+ initializeAiCount ( initialData ) ;
70+ updateLoadingStatus ( { type : "socketLoading" , status : false } ) ;
71+ } , 0 ) ;
72+ } ,
73+ disconnect : ( ) => {
74+ setData ( { } ) ;
75+ overrideHistory ( JSON . stringify ( { } ) ) ;
76+ } ,
77+ aiPending : ( response ) => {
78+ updateLoadingStatus ( { type : "aiPending" , status : response . status } ) ;
79+ } ,
80+ aiResponse : ( response ) => {
81+ decreaseAiCount ( ) ;
82+ const initializedNodes = initializeNodePosition ( response ) ;
83+ handleSocketEvent ( {
84+ actionType : "updateNode" ,
85+ payload : initializedNodes ,
86+ callback : ( response ) => {
87+ overrideNodeData ( response ) ;
88+ overrideHistory ( JSON . stringify ( response ) ) ;
89+ } ,
90+ } ) ;
91+ } ,
92+ updateNode : ( updatedNodeData ) => {
93+ setData ( updatedNodeData ) ;
94+ } ,
95+ updateTitle : ( updatedTitle ) => {
96+ updateTitle ( updatedTitle . title ) ;
97+ } ,
98+ updateContent : ( updatedContent ) => {
99+ updateContent ( updatedContent . content ) ;
100+ } ,
101+ } ;
91102
92- socket ?. on ( "aiResponse" , ( response ) => {
93- decreaseAiCount ( ) ;
94- const initializedNodes = initializeNodePosition ( response ) ;
95- handleSocketEvent ( {
96- actionType : "updateNode" ,
97- payload : initializedNodes ,
98- callback : ( response ) => {
99- overrideNodeData ( response ) ;
100- overrideHistory ( JSON . stringify ( response ) ) ;
101- } ,
102- } ) ;
103+ Object . entries ( eventHandlers ) . forEach ( ( [ event , handler ] ) => {
104+ socket . on ( event , handler ) ;
103105 } ) ;
104106
105107 return ( ) => {
0 commit comments