현재 상황

지금상황 설명할께.

우리는 crdt를 써서 한글을 입력하게하는데

다른사람들에게도 동시입력이 잘되는 환경을 하고싶어.

근데 우리는 contenteditable속성에서

innerHTML을 써서 각 글자들의 속성을 부여해서

일반적으로 하나의 html 안에서 캐럿관리가 아니라 조금 특수하거든?

그래서 지금 생각이 나는건

setCaretPosition({ blockId: editorCRDT.current.currentBlock.id, linkedList: editorCRDT.current.LinkedList, position: editorCRDT.current.currentBlock?.crdt.currentCaret, pageId, });

이렇게 캐럿포지션이 새로 바뀐상태에서 봐달라고 한단말이야.

근데 이제 새로운 입력이 들어올때

어디가 바뀌었는지 알아야 그부분만 블록을 재 렌더링 해줄 수 있잖아?

끄리고 만약에 내가 작성중인데 블록이 재 렌더링되면,

내 캐럿을 저장해놓고 블록이 렌더링 된다음에 내 캐럿을 원래 위치로 움직여줘야하잖아?

뭐 내가

abc[여기]d 입력하고있는데

다른사람이 abc앞에 123을 썼어.

123abd[여기]d 저기4인덱스에서 7인덱스로 이동하게 하는

그런걸 만들어 보려고하거든?

그래서 내생각엔 react fiber node reconciliation 처럼