-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature/#094 기초 마크다운 에디터 구현 #95
The head ref may contain hidden characters: "Feature/#094_\uAE30\uCD08_\uB9C8\uD06C\uB2E4\uC6B4_\uC5D0\uB514\uD130_\uAD6C\uD604"
Conversation
tets212.mp4스페이스바를 누르면 인덱스가 맨 앞으로 이동하는 현상이 있군요. |
아직 한글입력 관련 IME 처리를 구현하지 않아서 한글입력시에는 캐럿이 이상하게 이동하는 문제가 있습니다. 영어로 했을 때 기본적인 동작이 잘 돌아갈 때 한글입력 기능을 구현할 것 같습니다. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
직접 코드 하나하나 뜯어보니까 굉장히 노력하신 게 보이네요! 100% 분석은 못했지만 그래도 코드 재미있게 읽었습니다!
switch (e.key) { | ||
case "ArrowUp": | ||
if (currentNode.parentNode?.type === "checkbox") { | ||
if (currentNode.parentNode.prevNode) { | ||
if (currentNode.parentNode.prevNode.type === "checkbox") { | ||
targetNode = currentNode.parentNode.prevNode.firstChild; | ||
} else { | ||
targetNode = currentNode.parentNode.prevNode; | ||
} | ||
} | ||
} else if (currentNode.prevNode?.type === "ul" || currentNode.prevNode?.type === "ol") { | ||
targetNode = editorList.getLastChild(currentNode.prevNode); | ||
} else if (currentNode.type === "li") { | ||
if (currentNode.prevSibling?.id) { | ||
targetNode = currentNode.prevSibling; | ||
} else { | ||
if (currentNode.parentNode?.prevNode) { | ||
if (currentNode.parentNode.prevNode.type === "checkbox") { | ||
// 이전 블록이 체크박스인 경우 처리 | ||
targetNode = currentNode.parentNode.prevNode.firstChild; | ||
} else { | ||
targetNode = currentNode.parentNode.prevNode; | ||
} | ||
} else { | ||
return; | ||
} | ||
} | ||
} else { | ||
targetNode = currentNode.prevNode; | ||
} | ||
break; | ||
|
||
case "ArrowDown": | ||
if (currentNode.parentNode?.type === "checkbox") { | ||
if (currentNode.parentNode.nextNode) { | ||
if (currentNode.parentNode.nextNode.type === "checkbox") { | ||
targetNode = currentNode.parentNode.nextNode.firstChild; | ||
} else { | ||
targetNode = currentNode.parentNode.nextNode; | ||
} | ||
} | ||
} else if (currentNode.nextNode?.type === "ul" || currentNode.nextNode?.type === "ol") { | ||
targetNode = currentNode.nextNode.firstChild; | ||
} else if (currentNode.type === "li") { | ||
if (currentNode.nextSibling?.id) { | ||
targetNode = currentNode.nextSibling; | ||
} else { | ||
if (currentNode.parentNode?.nextNode) { | ||
if (currentNode.parentNode.nextNode.type === "checkbox") { | ||
// 다음 블록이 체크박스인 경우 처리 | ||
targetNode = currentNode.parentNode.nextNode.firstChild; | ||
} else { | ||
targetNode = currentNode.parentNode.nextNode; | ||
} | ||
} else { | ||
return; | ||
} | ||
} | ||
} else { | ||
targetNode = currentNode.nextNode; | ||
} | ||
break; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
삼항연산자랑 early return 패턴 사용하면 if문 깊이를 어느 정도 줄일 수 있을 것 같아요!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
현재 이부분에 문제가 있어서 수정을 해야될것 같습니다... 체크박스로 이동할때 노드이동 관련한 로직에 문제가 있는것 같아서 로직 수정할때 같이 리팩토링 해보겠습니다!
conflict를 PR내에서 commit으로 해결 + 웹상에서 동시에 해결을 해버려서 |
📝 변경 사항
🔍 변경 사항 설명
🙏 질문 사항
📷 스크린샷 (선택)
2024-11-12.3.59.51.mov
2024-11-12.4.50.23.mov
✅ 작성자 체크리스트