forked from codesquad-members-2024/issue-tracker
-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* feat: 마일스톤 그래프 계산 함수 분리 * feat: 필터 쿼리에 enable속성 추가 * feat: 사이드바 필터 컴포넌트로 분리 * feat: 사이드바 데이터 바인딩 * feat: 사이드바 팝업 띄우기 * feat: 사이드바 팝업 내용 레이아웃 * feat: 이슈 작성자만 이슈 삭제 가능 * feat: 사이드바 팝업 내용 컴포넌트 분리 및 바인딩 * feat: userImg 함수 추가 * refactor: header 아이디, 이미지 변경 * feat: 이슈 상세 - 레이블, 마일스톤, 담당자 수정 * style: 속성키값 변경 * feat: 이슈 상세 - 레이블, 마일스톤, 담당자 수정하는 useMutation * feat: 닫힌 마일스톤 필터 useQuery * refactor: clearInterval 수정 * feat: 이슈 상세 - 레이블, 마일스톤, 담당자 수정 적용 * feat: 사용자 이미지 없을 때 * fix: 이슈 필터 action 수정 * refactor: 이슈 필터 선택 후 알림내용 변경 * feat: ~가 없는 이슈 필터링 * style: scrip태그 head태그 안으로 이동 * fix: 이슈 메인 - 필터링 시 조건 추가 * refactor: previousData가 undefined일 경우 예외처리 * feat: 체크박스로 선택한 이슈 상태 변경하기 * feat: 이슈 파일 등록 * chore: 배포 환경 설정 * feat: 리액트쿼리 데브 툴 분기처리 * feat: 커스텀 에디터 height 추가 * feat: 사이드바 - 새로운 이슈일때, 이슈 상세일때 구분 * feat: 이슈 상세 페이지 레이아웃 * feat: 새로운 이슈 생성하는 훅 생성 * feat: 새로운 이슈 생성 * refactor: 사이드바 체크 상태 상위컴포넌트로 이동 * refactor: 체크 박스 눌렀을 때의 드롭다운 내용 수정 * fix: 이슈 상세 옵션바 수정하는 부분 오류 * feat: 레이블 페이지 레이아웃 * chore: 색상 유효성 체크 * docs: 색상 유효성 체크 * feat: 레이블 조회, 새로운 레이블 생성 - 훅 생성 * 레이블 컴포넌트 명 변경 및 레이블 페이지 작업 * feat: 새로운 레이블 추가 * feat: 레이블이 없을 때 & 레이블 리스트 * feat: 레이블 라우트 수정 * style: 사용 없는 코드 삭제 * refactor: 레이블 count 수 없을 때 0으로 표시 * feat: 마일스톤 페이지 * feat: 레이블 컴포넌트 명 변경 및 마일스톤 protectedRoute 추가 * feat: 레이블 추가버튼, 취소버튼 클릭 시 추가창 열고 닫기 * feat: 레이블 편집 시 데이터 바인딩 * feat: 레이블 수정 * refactor: useMutation에 enable속성 제거 및 편집완료 버튼 수정 * feat: useMutation에 enable속성 제거 및 레이블 삭제 * feat: 이슈 리스트 lazy loading적용 * remove: 파일삭제 및 gitignore 추가 * feat: 깃허브 로그인 콜백 컴포넌트 라우트 설정 * feat: 로그인, 마일스톤 개수 조회 * style: 이슈 리스트 버튼 레이아웃 변경 * WIP: 깃허브 로그인 중
- Loading branch information
1 parent
a5c3950
commit e65d8b6
Showing
27 changed files
with
1,383 additions
and
85 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,5 @@ | ||
.env.production | ||
|
||
# Logs | ||
logs | ||
*.log | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,141 @@ | ||
const LABEL_DEFAULT_API_URI = '/api/labels'; | ||
const HOME_DEFAULT_API_URI = '/api/home/components'; | ||
|
||
const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms)); | ||
|
||
/** | ||
* 레이블 마일스톤 - 개수 조회 | ||
* @param {*String} issueId | ||
* @returns {jsonObject} | ||
* - 성공: 200 | ||
*/ | ||
export const fetchLabelMilestoneCountData = async () => { | ||
try { | ||
// await delay(2000); | ||
const response = await fetch(`${import.meta.env.VITE_TEAM_SERVER}${HOME_DEFAULT_API_URI}`); | ||
if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`); | ||
|
||
if (response.status === 200 || response.status === 201) { | ||
return await response.json(); | ||
} | ||
} catch (error) { | ||
throw error; | ||
} | ||
}; | ||
/** | ||
* 레이블 조회 | ||
* @param {*String} issueId | ||
* @returns {jsonObject} | ||
*/ | ||
export const fetchLabelDetailData = async () => { | ||
try { | ||
// await delay(2000); | ||
const response = await fetch(`${import.meta.env.VITE_TEAM_SERVER}${LABEL_DEFAULT_API_URI}`); | ||
if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`); | ||
|
||
if (response.status === 200 || response.status === 201) { | ||
return await response.json(); | ||
} | ||
} catch (error) { | ||
throw error; | ||
} | ||
}; | ||
|
||
/** | ||
* 레이블 수정 | ||
* @param {*String} name | ||
* @param {*String} descriptionParam 없을 경우 null | ||
* @param {*String} textColor | ||
* @param {*String} bgColor | ||
* @param {*String} labelId | ||
* @returns | ||
* - 성공: 200 | ||
- 데이터 바인딩(즉, 이름이나 배경 색깔이 비어져서 왔을 때) 실패: 400 | ||
- 유효하지 않은 배경 색깔: 400 | ||
- 존재하지 않는 라벨 아이디: 404 | ||
*/ | ||
export const fetchModifyLabel = async (name, descriptionParam, textColor, bgColor, labelId) => { | ||
const description = descriptionParam || null; | ||
try { | ||
const response = await fetch(`${import.meta.env.VITE_TEAM_SERVER}${LABEL_DEFAULT_API_URI}/${labelId}`, { | ||
method: 'PUT', | ||
headers: { | ||
'Content-Type': 'application/json', | ||
}, | ||
body: JSON.stringify({ name, description, textColor, bgColor }), | ||
}); | ||
const result = await response.json(); | ||
|
||
if (response.status === 400 || response.status === 404 || response.status === 409) { | ||
throw new Error({ code: response.status, result }); | ||
} | ||
|
||
if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`); | ||
|
||
if (response.status === 200 || response.status === 201) { | ||
return result; | ||
} | ||
} catch (error) { | ||
throw error; | ||
} | ||
}; | ||
|
||
/** | ||
* 레이블 삭제 | ||
* @param {*String} labelId | ||
* @returns | ||
- 성공: 200 | ||
- 존재하지 않는 라벨 아이디: 404 | ||
*/ | ||
export const fetchDeleteLabel = async (labelId) => { | ||
try { | ||
const response = await fetch(`${import.meta.env.VITE_TEAM_SERVER}${LABEL_DEFAULT_API_URI}/${labelId}`, { | ||
method: 'DELETE', | ||
headers: { | ||
'Content-Type': 'application/json', | ||
}, | ||
}); | ||
|
||
if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`); | ||
|
||
return { | ||
status: response.status, | ||
statusText: response.statusText, | ||
}; | ||
} catch (error) { | ||
throw error; | ||
} | ||
}; | ||
|
||
/** | ||
* 새로운 레이블 생성 | ||
* @param {*String} name | ||
* @param {*String} descriptionParam 없을 경우 null | ||
* @param {*String} textColor | ||
* @param {*String} bgColor | ||
* @returns | ||
* - 성공: 201 | ||
- 데이터 바인딩(즉, 이름이나 배경 색깔이 비어져서 왔을 때) 실패: 400 | ||
- 유효하지 않은 배경 색깔: 400 | ||
- 라벨 이름 중복: 409 | ||
*/ | ||
export const fetchCreateNewLabel = async (name, descriptionParam, textColor, bgColor) => { | ||
const description = descriptionParam || null; | ||
try { | ||
const response = await fetch(`${import.meta.env.VITE_TEAM_SERVER}${LABEL_DEFAULT_API_URI}`, { | ||
method: 'POST', | ||
headers: { | ||
'Content-Type': 'application/json', | ||
}, | ||
body: JSON.stringify({ name, description, textColor, bgColor }), | ||
}); | ||
|
||
if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`); | ||
|
||
if (response.status === 200 || response.status === 201) { | ||
return await response.json(); | ||
} | ||
} catch (error) { | ||
throw error; | ||
} | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.