@@ -117,10 +117,10 @@ export const useCanvas = () => {
117117 const yNodes = Array . from ( nodesMap . values ( ) ) as YNode [ ] ;
118118
119119 const initialNodes = yNodes . map ( ( yNode ) => {
120- const nodeEntries = Object . entries ( yNode ) . filter (
121- ( [ key ] ) => key !== "isHolding" ,
122- ) ;
123- return Object . fromEntries ( nodeEntries ) as Node ;
120+ const { isHolding , ... rest } = yNode ;
121+ // esline룰 통과를 위한 일시적인 로그
122+ console . log ( isHolding ) ;
123+ return rest ;
124124 } ) ;
125125
126126 setNodes ( initialNodes ) ;
@@ -137,10 +137,9 @@ export const useCanvas = () => {
137137 const nodeId = key ;
138138 if ( change . action === "add" || change . action === "update" ) {
139139 const updatedYNode = nodesMap . get ( nodeId ) as YNode ;
140- const updatedNodeEntries = Object . entries ( updatedYNode ) . filter (
141- ( [ key ] ) => key !== "isHolding" ,
142- ) ;
143- const updatedNode = Object . fromEntries ( updatedNodeEntries ) as Node ;
140+ const { isHolding, ...updatedNode } = updatedYNode ;
141+ // esline룰 통과를 위한 일시적인 로그
142+ console . log ( isHolding ) ;
144143
145144 if ( change . action === "add" ) {
146145 queryClient . invalidateQueries ( { queryKey : [ "pages" ] } ) ;
@@ -156,7 +155,10 @@ export const useCanvas = () => {
156155 ...updatedNode ,
157156 selected : newNodes [ index ] . selected ,
158157 } ;
159- return newNodes ;
158+
159+ const groups = newNodes . filter ( ( n ) => n . type === "group" ) ;
160+ const notes = newNodes . filter ( ( n ) => n . type !== "group" ) ;
161+ return [ ...groups , ...notes ] ;
160162 } ) ;
161163 } else if ( change . action === "delete" ) {
162164 setNodes ( ( nds ) => nds . filter ( ( n ) => n . id !== nodeId ) ) ;
@@ -192,19 +194,34 @@ export const useCanvas = () => {
192194 const pageId = page . id . toString ( ) ;
193195 const existingNode = nodesMap . get ( pageId ) as YNode | undefined ;
194196
195- const newNode : YNode = {
196- id : pageId ,
197- type : "note" ,
198- data : { title : page . title , id : page . id , emoji : page . emoji } ,
199- position : existingNode ?. position || {
200- x : Math . random ( ) * 500 ,
201- y : Math . random ( ) * 500 ,
202- } ,
203- selected : false ,
204- isHolding : false ,
205- } ;
197+ if ( existingNode ) {
198+ nodesMap . set ( pageId , {
199+ ...existingNode ,
200+ data : {
201+ title : page . title ,
202+ id : page . id ,
203+ emoji : page . emoji ,
204+ } ,
205+ } ) ;
206+ } else {
207+ const newNode : YNode = {
208+ id : pageId ,
209+ type : "note" ,
210+ data : {
211+ title : page . title ,
212+ id : page . id ,
213+ emoji : page . emoji ,
214+ } ,
215+ position : {
216+ x : Math . random ( ) * 500 ,
217+ y : Math . random ( ) * 500 ,
218+ } ,
219+ selected : false ,
220+ isHolding : false ,
221+ } ;
222+ nodesMap . set ( pageId , newNode ) ;
223+ }
206224
207- nodesMap . set ( pageId , newNode ) ;
208225 existingPageIds . current . add ( pageId ) ;
209226 } ) ;
210227 } , [ pages , ydoc ] ) ;
0 commit comments