Skip to content
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

[Mission5/양혜진] Project_Notion_VanillaJs 과제 #36

Open
wants to merge 87 commits into
base: 4/#5_yanghyejin
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
87 commits
Select commit Hold shift + click to select a range
b7d81f4
init: initial project setting
kutta97 Jun 30, 2023
efd3ed8
chore: alias 설정을 위해 eslint 'import/no-unresolved' 옵션 off
kutta97 Jun 30, 2023
7c9293a
feat: style reset 추가
kutta97 Jun 30, 2023
b9444f2
feat: NotionSidebar 컴포넌트 추가
kutta97 Jun 30, 2023
5d6c170
feat: api.js util 함수 추가
kutta97 Jun 30, 2023
aff88e9
feat: NotionPage 페이지 컴포넌트 추가
kutta97 Jun 30, 2023
81518af
feat: App.js 컴포넌트에 NotionPage 컴포넌트 추가
kutta97 Jun 30, 2023
3340684
chore: webpack-dev-server 의 historyApiFallback 설정 추가
kutta97 Jul 1, 2023
a77667a
chore: @trivago/prettier-plugin-sort-imports Prettier 플러그인 추가
kutta97 Jul 1, 2023
4bd6e4f
feat: App.js 에 Route 처리 기능 추가
kutta97 Jul 1, 2023
ad85a51
feat: NotionSidebar click event 추가
kutta97 Jul 1, 2023
fd78d48
feat: NotionEditor 추가
kutta97 Jul 1, 2023
a3a2398
feat: NotionPage 에 NotionDocument 추가
kutta97 Jul 1, 2023
bf25a26
feat: root url 접속 시, Empty Editor 를 보여주도록 수정
kutta97 Jul 1, 2023
d9a90c4
feat: localStorage 추가
kutta97 Jul 1, 2023
07c40b7
feat: NotionDocument 에 onEdit 이벤트 핸들러 추가 및 디바운스 적용
kutta97 Jul 1, 2023
654a0ab
feat: HTTP 각 Method request 함수화
kutta97 Jul 1, 2023
1d5437e
feat: document api 요청 함수화
kutta97 Jul 1, 2023
b8b5660
refactor: request 대신 커스텀 api 요청 함수 사용
kutta97 Jul 1, 2023
9178385
feat: Editor 컴포넌트 textArea 로 변경
kutta97 Jul 1, 2023
9a0b7e0
refactor: 이벤트 리스너는 setEvent 로 등록하도록 리팩토링
kutta97 Jul 1, 2023
d844645
feat: history pushstate, replacestate 함수화
kutta97 Jul 1, 2023
b118e69
feat: document 수정 API 추가
kutta97 Jul 1, 2023
c8632d3
feat: NotionDocument 수정 시, 서버와 Sync 및 root 에서 에디터 안보이는 기능 추가
kutta97 Jul 1, 2023
cd8d697
refactor: root 페이지 documentId 를 null 로 수정
kutta97 Jul 1, 2023
d67ace4
fix: 편집기 content state 랜더링 되지 않는 버그 수정
kutta97 Jul 1, 2023
e8bc6bb
feat: Editor 의 onEdit 핸들러는 문서 수정 중에만 호출되도록 변경
kutta97 Jul 1, 2023
0af7d84
feat: Button 컴포넌트 추가
kutta97 Jul 1, 2023
5e1061f
feat: 문서 목록 보여주는 화면 DocumentList 로 분리
kutta97 Jul 1, 2023
a4b493f
chore: class method 안에서 임시 변수 사용을 위해 class-methods-use-this 옵션 Off
kutta97 Jul 1, 2023
6c2cbb2
feat: Sidebar 에서 Root Document 의 하위 Document 랜더링하는 기능 추가
kutta97 Jul 2, 2023
1cd97db
feat: root Document 하위 문서 생성하는 기능 추가
kutta97 Jul 2, 2023
311c3fb
feat: DocumentListItem 컴포넌트 분리
kutta97 Jul 2, 2023
be413bf
feat: Sidebar list item 에 문서 삭제 기능 버튼 추가
kutta97 Jul 2, 2023
823d96b
refactor: Component core class 적용
kutta97 Jul 2, 2023
0d9d624
revert: "refactor: Component core class 적용"
kutta97 Jul 2, 2023
d62584a
chore: path alias 에 core 디렉토리 추가
kutta97 Jul 2, 2023
034b0e9
refactor: 모든 컴포넌트가 coreComponent 를 상속하도록 수정
kutta97 Jul 3, 2023
4f6b0ad
feat: onEdit 핸들러의 Debounce 작업을 각 input 컴포넌트에서 수행하도록 변경
kutta97 Jul 4, 2023
644325d
feat: HTMLString class 추가 및 Editor 의 innerHTML 을 string 으로 파싱 기능 추가
kutta97 Jul 4, 2023
3fd9230
feat: HTMLString.splitWithTag() 함수에서 tag 로 감싸지지 않은 string 도 포함하도록 수정
kutta97 Jul 4, 2023
30d7b6c
feat: plain string 을 HTML 로 변환하기 위한 MarkDownString class 추가
kutta97 Jul 4, 2023
0650a10
feat: MarkDownString 을 사용하여 reservedCharacter 들을 HTML entity 로 변경하는 기…
kutta97 Jul 4, 2023
f1986c6
feat: HTMLString.splitWithTag 가 반환값으로 String 배열 대신 HTMLString 배열 반환하도…
kutta97 Jul 4, 2023
8204bc7
feat: contentEditable innerHTML 업데이트 후에도 커서(caret) 위치 유지 기능 추가
kutta97 Jul 4, 2023
54db35a
fix: 빈 문장에 Caret tag 가 있는 경우, new line 처리가 제대로 되지 않는 버그 수정
kutta97 Jul 4, 2023
23a02db
feat: 한국어 중복입력을 막는 기능 추가
kutta97 Jul 5, 2023
88fff62
fix: 한글입력 씹힘 오류를 방지 코드 추가
kutta97 Jul 5, 2023
5fbccd9
feat: 에디터에 paste 할 때, html 태그의 style 제거하고 붙여넣도록 수정
kutta97 Jul 5, 2023
ec6440c
feat: API username 변경
kutta97 Jul 5, 2023
218bc40
feat: 에디터에 Markdown heading 문법 추가
kutta97 Jul 5, 2023
3ea607d
feat: 사이드바 아이콘 SVG 추가 및 간단한 Styling
kutta97 Jul 5, 2023
8fdd627
refactor: dom elements id 및 classnames 상수로 관리
kutta97 Jul 5, 2023
ef9774e
feat: 사이드바 토글 기능 추가
kutta97 Jul 5, 2023
073b2b4
feat: 실제 노션 사이드바와 비슷하게 디자인 수정
kutta97 Jul 5, 2023
c0f0ac7
feat: Editor 여백 및 Heading 스타일 적용
kutta97 Jul 5, 2023
67d0106
feat: 편집기 텍스트 weight 적용
kutta97 Jul 5, 2023
9c1ce56
feat: 현재 선택중인 페이지 사이드바에 표시하는 기능 추가
kutta97 Jul 6, 2023
f2756a4
feat: 사이드바 expand 버튼 펼쳤을 때, 자식 페이지 없는 경우 보여주느 기능 추가
kutta97 Jul 6, 2023
c5b65a8
feat: 사이드바와 편집기 각각 overflow 스크롤 기능 추가
kutta97 Jul 6, 2023
364bf25
feat: title 작성 중 Enter 입력하면 content 로 focus 넘어가는 기능 추가
kutta97 Jul 6, 2023
e2ebc8a
feat: 문서 타이틀 편집기도 contenteditable 로 변경
kutta97 Jul 6, 2023
36e15f5
feat: 빈 제목인 경우 Untitled placeholder 기능 추가
kutta97 Jul 6, 2023
0b55745
feat: content Editor 높이 수정
kutta97 Jul 6, 2023
9d24e7e
feat: 현재 document 의 경로를 나타내는 Header 추가
kutta97 Jul 6, 2023
e428aaf
feat: 편집기 최하단에 편집 중인 Document 의 하위 Document Link 랜더링하는 기능 추가
kutta97 Jul 6, 2023
c72bcd0
fix: getChildDocuments 버그 수정
kutta97 Jul 6, 2023
169316e
feat: 사용하지 않는 파일 삭제
kutta97 Jul 7, 2023
acb206a
refactor: 오타 수정
kutta97 Jul 14, 2023
bd232e3
refactor: (리뷰 반영) Caret 메서드 이름 리팩토링
kutta97 Jul 14, 2023
5ecc80d
refactor: (리뷰 반영) 사이드바 리스트 아이템을 div 대신 li 태그로 감싸주도록 수정
kutta97 Jul 14, 2023
d6836e2
refactor: (리뷰 반영) url 에서 documentId 추출 시, Number 타입으로 형 변환
kutta97 Jul 14, 2023
4edbf3f
refactor: (리뷰 반영) styleReset.css 이름을 reset.css 로 변경
kutta97 Jul 14, 2023
f845322
refactor: (리뷰 반영) 사용하지 않는 파일 제거
kutta97 Jul 14, 2023
3af547b
refactor: (리뷰 반영) 사용하지 않는 Component 제거
kutta97 Jul 14, 2023
08bc686
refactor: (리뷰 반영) createDocument API 실행 시, rs 값이 없는 경우 방어코드 추가
kutta97 Jul 14, 2023
67adaa3
refactor: (리뷰 반영) getDocumentDetailPath 함수 추가
kutta97 Jul 14, 2023
9a1ed78
refactor: (리뷰 반영) Footer 컴포넌트 이름 DocumentBottomNav 로 수정
kutta97 Jul 14, 2023
b9c80f1
refactor: (리뷰 반영) Notion Content Editor 의 composition 이벤트 핸들링 로직 함수화
kutta97 Jul 14, 2023
6a5963c
refactor: NotionPage 의 onEdit 파라미터 이름 구체적으로 수정
kutta97 Jul 14, 2023
47ec1c6
refactor: (리뷰 반영) document 를 삭제하면 history.replace 로 url 변경
kutta97 Jul 17, 2023
1a09031
refactor: (리뷰 반영) document 삭제 시, localStorage 의 해당 document 도 삭제
kutta97 Jul 17, 2023
62ec8d6
refactor: (리뷰 반영) import order 순서 영향도 적은 순으로 변경
kutta97 Jul 19, 2023
1c4617a
refactor: (리뷰 반영) root 의 overflow 옵션 제거
kutta97 Jul 19, 2023
9133c7e
refactor: (리뷰 반영) DocumentList 의 documentId 변수이름 selectedDocumentId 로 수정
kutta97 Jul 19, 2023
4222acd
refactor: (리뷰 반영) DocumentList 컴포넌트에서 async-await 예외처리 추가
kutta97 Jul 19, 2023
cd55d3b
refactor: (리뷰 반영) default 값으로 설정되어있던 flex-direction 코드 제거
kutta97 Jul 19, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
refactor: (리뷰 반영) getDocumentDetailPath 함수 추가
kutta97 committed Jul 14, 2023
commit 67adaa37543e024a8cdcdae913558ba37a879aae
9 changes: 6 additions & 3 deletions src/components/DocumentList/DocumentList.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { SIDEBAR } from '@consts/target';
import URL from '@consts/url';

import { createDocument, deleteDocument } from '@api/document';

@@ -38,7 +39,8 @@ export default class DocumentList extends Component {
const newDocument = await createDocument({ title: '', parent: id });
if (!newDocument) return;

history.push(`/documents/${newDocument.id}`);
const documentPath = URL.getDocumentDetailPath(newDocument.id);
history.push(documentPath);
};

hanldeDeleteButtonClick = async (id) => {
@@ -54,10 +56,11 @@ export default class DocumentList extends Component {
if ($li.className === SIDEBAR.DOCUMENT_LIST_ITEM.EMPTY) return;

const { id } = $li.dataset;
const documentPath = URL.getDocumentDetailPath(id);

const $button = target.closest('button');
if (!$button) {
history.push(`/documents/${id}`);
history.push(documentPath);
return;
}
const { className } = $button;
@@ -82,7 +85,7 @@ export default class DocumentList extends Component {
return;
}

history.push(`/documents/${id}`);
history.push(documentPath);
});
}

3 changes: 2 additions & 1 deletion src/components/Footer/Footer.js
Original file line number Diff line number Diff line change
@@ -25,7 +25,8 @@ export default class Footer extends Component {
const { linkId } = $a.dataset;
if (!linkId) return;

history.push(`/documents/${linkId}`);
const documentPath = URL.getDocumentDetailPath(linkId);
history.push(documentPath);
});
}

3 changes: 2 additions & 1 deletion src/components/Header/Header.js
Original file line number Diff line number Diff line change
@@ -25,7 +25,8 @@ export default class Header extends Component {
const { linkId } = $a.dataset;
if (!linkId) return;

history.push(`/documents/${linkId}`);
const documentPath = URL.getDocumentDetailPath(linkId);
history.push(documentPath);
});
}

4 changes: 3 additions & 1 deletion src/components/NotionSidebar/NotionSidebar.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { SIDEBAR } from '@consts/target';
import URL from '@consts/url';

import { createDocument } from '@api/document';

@@ -47,7 +48,8 @@ export default class NotionSidebar extends Component {
const newDocument = await createDocument({ title: '' });
if (!newDocument) return;

history.push(`/documents/${newDocument.id}`);
const documentPath = URL.getDocumentDetailPath(newDocument.id);
history.push(documentPath);
}

setState(nextState) {
5 changes: 5 additions & 0 deletions src/consts/url.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
const URL = {
getDocumentDetailPath: (id) => `/documents/${id}`,
};

export default URL;