원티드 프리온보딩 인턴십 프론트엔드 2주차 과제의 요구사항을 구현한 프로젝트입니다!
주제: Facebook의 React - Github Issue 데이터 화면에 출력
2023.08.29 ~2023.09.01
git clone https://github.com/SeungrokYoon/github-issue-display.git
npm install
깃헙 액세스 토큰을 추가해야 Github API를 제한없이 사용할 수 있습니다!
엑세스 토큰 획득 경로: Github profile settings =>
Developer settings
=>
Personal access tokens
으로 접근하여 토큰 생성 후, 복사하여 사용!
REACT_APP_GITHUB_ACCESS_TOKEN = "${본인의 Github access_token}"
npm start
각 페이지들은 공통 헤더를 PageLayout
을 통해 공유합니다
-
IssueListPage
(이슈 리스트가 광고와 함께 렌더링되는 페이지) -
IssuePage
(이슈 상세 내용이 마크다운으로 렌더링되는 페이지)
- 이슈 상세 페이지에서 경로를 숫자로 시작하면서 숫자가 아닌 문자열이 섞인 경로(e.g. '/issues/1234asdf')로 데이터를 요청하게 되면, 앞에 숫자만 파싱하여 쿼리한 데이터를 응답값으로 줍니다. 이 경우에는 유저를 올바른 경로로 재이동시켜줍니다.
📦src
┣ 📂api
┃ ┗ 📜issue.ts
┣ 📂assets
┃ ┗ 📜loading.gif
┣ 📂components
┃ ┣ 📜Header.tsx
┃ ┣ 📜ImageBanner.tsx
┃ ┣ 📜IssueIcon.tsx
┃ ┣ 📜IssueListItem.tsx
┃ ┗ 📜Loading.tsx
┣ 📂constants
┃ ┗ 📜advertisement.ts
┣ 📂hooks
┃ ┣ 📜useFetchIssueList.ts
┃ ┗ 📜useIntersect.ts
┣ 📂pages
┃ ┣ 📜AsyncErrorPage.tsx
┃ ┣ 📜IssueListPage.tsx
┃ ┣ 📜IssuePage.tsx
┃ ┣ 📜NotFoundErrorPage.tsx
┃ ┣ 📜PageLayout.tsx
┃ ┣ 📜router.tsx
┃ ┗ 📜styles.tsx
┣ 📂store
┃ ┗ 📜IssueListContext.tsx
┣ 📂styles
┃ ┣ 📜DefaultTheme.ts
┃ ┣ 📜GlobalStyle.tsx
┃ ┗ 📜stled.d.ts
┣ 📂utils
┃ ┣ 📜axiosInstance.ts
┃ ┣ 📜dateConverter.ts
┃ ┗ 📜octokitInstance.ts
┣ 📜index.tsx
┣ 📜react-app-env.d.ts
┣ 📜reportWebVitals.ts
┗ 📜setupTests.ts