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

[FE] 3주차 중간 PR (Daisy & Goody) #43

Open
wants to merge 104 commits into
base: team03
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
177ccbe
chore: 리코일 테스트 코드 삭제
junzero741 Jun 14, 2021
8606480
Merge pull request #44 from pbg0205/FE-review
junzero741 Jun 14, 2021
3edf118
WIP: 이슈리스트 작업중
junzero741 Jun 14, 2021
600d3b0
Merge branch 'FE-dev' of https://github.com/pbg0205/issue-tracker int…
junzero741 Jun 14, 2021
69b6d82
feat: 체크박스 교차 로직 구현
junzero741 Jun 14, 2021
d993d06
fix: 타임스탬프 유틸함수 수정
junzero741 Jun 14, 2021
ab611f6
feat: 이슈리스트 이슈카드 체크박스로 선택 기능 추가
junzero741 Jun 14, 2021
fd8b1c5
feat: 이슈 데이터 없을 경우 에러처리
junzero741 Jun 14, 2021
3d9d6dd
feat: 선택된 이슈 id 를 Set자료구조로 저장
junzero741 Jun 14, 2021
8218368
chore: 이슈 카드 텍스트 간격 조정
junzero741 Jun 14, 2021
17d7a3f
refactor: TabButton 재사용성 높이는 방향으로 리팩토링(#29)
damilog Jun 14, 2021
2a1736a
refactor: MyRecoil entry point 생성(PR Review 반영)
damilog Jun 14, 2021
594693f
feat: 선택된 filter의 filterModal 보여주는 기능 완성(#29)
damilog Jun 14, 2021
8dcf462
Merge pull request #47 from pbg0205/FE/feat/menu-filter-bar
junzero741 Jun 15, 2021
ecf4927
Merge branch 'FE-dev' into FE/feat/issue-list
junzero741 Jun 15, 2021
999d2ac
Merge pull request #48 from pbg0205/FE/feat/issue-list
junzero741 Jun 15, 2021
932136c
style: 불필요한 코드 주석처리
junzero741 Jun 15, 2021
939380b
fix: 체크박스 로직 구현
junzero741 Jun 15, 2021
a3dceb9
Merge pull request #49 from pbg0205/FE/fix/checkbox
junzero741 Jun 15, 2021
fe1fef3
feat: 선택된 이슈 열기/닫기 모달 추가
junzero741 Jun 15, 2021
ae26c1e
Merge pull request #51 from pbg0205/FE/feat/select-tab
junzero741 Jun 15, 2021
f12a153
fix: merge 후 filter 별 modal 뜨지 않는 오류 해결(#29)
damilog Jun 15, 2021
bf837a7
fix: OAuth 로그인 버그 수정
junzero741 Jun 15, 2021
e639d34
feat: 유저 정보 불러오기
junzero741 Jun 15, 2021
96edb8d
refactor: 체크한 이슈 Set으로 저장
junzero741 Jun 15, 2021
aaf9c08
feat: 메인화면 탭 버튼 클릭별로 라우팅 처리
junzero741 Jun 15, 2021
049c6fd
WIP: filterbar input 기능 구현 중(#29)
damilog Jun 16, 2021
fae9af4
Merge pull request #53 from pbg0205/FE/feat/menu-filter-bar
damilog Jun 16, 2021
7879412
Merge branch 'FE-dev' into FE/feat/page-move
junzero741 Jun 16, 2021
a64b78a
Merge pull request #54 from pbg0205/FE/feat/page-move
junzero741 Jun 16, 2021
12f1c2f
WIP: menu filter bar share 용 commit
damilog Jun 16, 2021
9c75e9d
feat: 필터모달 라디오 마지막 클릭 기억 (#29)
junzero741 Jun 16, 2021
b715caa
feat: 선택한 filter filterBarInput에 보여는 기능 완성(#29)
damilog Jun 16, 2021
a8dfa0e
feat: padding 추가
damilog Jun 16, 2021
0a79348
feat: 새 이슈 작성 HTML 틀 잡기 (#55)
junzero741 Jun 16, 2021
9c3863c
feat: 항목 카드 및 목록 헤더 추상화
junzero741 Jun 16, 2021
e959745
feat: 라벨 페이지 HTML 구조화
junzero741 Jun 16, 2021
71ac6d2
Merge pull request #57 from pbg0205/FE/feat/new-issue
junzero741 Jun 16, 2021
a0a35b8
feat: 마일스톤 페이지 HTML 틀 구조화
junzero741 Jun 16, 2021
0f3af80
style: 불필요한 코드 삭제
damilog Jun 16, 2021
c650f6e
feat: filterModal radio 버튼 체크 해제 기능 완성(#29)
damilog Jun 16, 2021
2fbea21
Merge pull request #59 from pbg0205/FE/feat/labels
junzero741 Jun 16, 2021
fde0b70
Merge branch 'FE-dev' into FE/feat/menu-filter-bar
damilog Jun 16, 2021
e81c3ae
Merge pull request #56 from pbg0205/FE/feat/menu-filter-bar
damilog Jun 16, 2021
0616eb4
chore: 값 없는 Prop N으로 초기화
junzero741 Jun 16, 2021
2512002
Merge branch 'FE-dev' of https://github.com/pbg0205/issue-tracker int…
junzero741 Jun 16, 2021
6ac8fc4
WIP: 마일스톤 카드 스타일 구조화
junzero741 Jun 17, 2021
88c14e8
fix: 네비게이터 컴포넌트 전역선언
junzero741 Jun 17, 2021
0cefe61
Merge pull request #62 from pbg0205/FE/feat/milestone
junzero741 Jun 17, 2021
b4385b0
feat: 레이블/마일스톤 페이지 탭버튼 배경효과
junzero741 Jun 17, 2021
0d57d3a
Merge pull request #64 from pbg0205/FE/feat/milestone
junzero741 Jun 17, 2021
53c1560
feat: 마일스톤페이지 기본 스타일링
junzero741 Jun 17, 2021
ea08d9f
style: file 경로 변경 및 불필요한 코드 삭제
damilog Jun 17, 2021
543c96b
style: 컴포넌트 이름 svg stroke 값 수정
damilog Jun 17, 2021
09df524
feat: Label Badge 추가(#63)
damilog Jun 17, 2021
5af6129
style: Button Group 좌우 자리 변경(#63)
damilog Jun 17, 2021
c723f7f
feat: Label Card style 추가 (#63)
damilog Jun 17, 2021
f2b69ee
feat: Label Inputs style 추가(#63)
damilog Jun 17, 2021
6768258
feat: get 요청 커스텀 훅 완성
junzero741 Jun 18, 2021
de989e0
WIP: 마일스톤 페이지 작업중
junzero741 Jun 18, 2021
4ae360c
Merge pull request #66 from pbg0205/FE/feat/label-page
damilog Jun 18, 2021
a4a21e6
Merge pull request #67 from pbg0205/FE/feat/milestone
junzero741 Jun 18, 2021
d5c93d0
chore: 스타일
junzero741 Jun 18, 2021
04d4b6b
feat: useFecth 커스텀 훅
junzero741 Jun 19, 2021
e6545a9
Merge pull request #68 from pbg0205/FE/feat/milestone
junzero741 Jun 19, 2021
856fd2b
feat: Labels Style 완성(#63)
damilog Jun 19, 2021
f3d44c1
WIP: 마일스톤 페이지 fetch 오류 해결중
junzero741 Jun 20, 2021
223d3b5
WIP: Label page 생성(#63)
damilog Jun 20, 2021
0d12b2d
feat: fetchData 유틸함수로 해결
junzero741 Jun 20, 2021
c514139
feat: 마일스톤 추가와 새로고침 없이 리스트업
junzero741 Jun 20, 2021
92ce6a0
feat: fetchData 유틸함수로 추가,삭제 구현
junzero741 Jun 20, 2021
913d20d
refactor: LabelInput useReducer로 리팩토링(#63)
damilog Jun 20, 2021
abaf5a5
Merge pull request #70 from pbg0205/FE/feat/milestone
junzero741 Jun 20, 2021
e5ec7f1
Merge branch 'FE-dev' into FE/feat/label-page
junzero741 Jun 20, 2021
d986784
Merge pull request #69 from pbg0205/FE/feat/label-page
junzero741 Jun 20, 2021
c952533
feat: PUT useFetch 버전
junzero741 Jun 20, 2021
2684660
WIP: post, put 작업중
junzero741 Jun 20, 2021
fcf5362
Merge pull request #71 from pbg0205/FE/feat/milestone
junzero741 Jun 20, 2021
ba6a96e
WIP: merge 후 Lable page 작업 중(#63)
damilog Jun 20, 2021
ab4e780
refactor: 버튼 컴포넌트 blue, white buttons로 리팩토링(#63)
damilog Jun 21, 2021
7b2a022
refactor: 리팩토링 한 white, blue 버튼 컴포넌트로 수정(#63)
damilog Jun 21, 2021
6fd31cc
Merge pull request #73 from pbg0205/fe/feat/label-page
damilog Jun 21, 2021
f0e2ce1
feat: 마일스톤 put, post 완성
junzero741 Jun 21, 2021
1b7409c
Merge branch 'FE-dev' into FE/feat/milestone
junzero741 Jun 21, 2021
253da1c
Merge pull request #74 from pbg0205/FE/feat/milestone
junzero741 Jun 21, 2021
44b7065
feat: GET 결과로 render 및 버튼 기능 완성(#63)
damilog Jun 21, 2021
b3671ed
test: useRef 로 inputData변경에 따른 렌더링 최소화
junzero741 Jun 22, 2021
bd1d5ea
feat: 마일스톤 개수 탭그룹버튼에 반영
junzero741 Jun 22, 2021
3f22be0
chore: 안쓰는 코드 삭제
junzero741 Jun 22, 2021
c3bad38
Merge pull request #77 from pbg0205/FE/feat/milestone-dev
junzero741 Jun 22, 2021
344f740
feat: POST, DELETE request 완료(#63)
damilog Jun 22, 2021
dbca283
Merge branch 'FE-dev' into FE/feat/label-page
damilog Jun 22, 2021
b357726
Merge pull request #75 from pbg0205/FE/feat/label-page
damilog Jun 22, 2021
f9cfff6
style: 코드 추가
damilog Jun 22, 2021
2b40d05
WIP: 버그 해결중 (#63)
damilog Jun 22, 2021
332a6e2
WIP: 새 이슈 페이지 HTML 구조화
junzero741 Jun 22, 2021
0b4de1b
WIP: 새 이슈 페이지 작업중
junzero741 Jun 22, 2021
568f5d6
fix: GET, POST, DELETE 에러 해결(#63)
damilog Jun 22, 2021
becb5bc
feat: 새 이슈 페이지 스켈레톤 UI 완료
junzero741 Jun 22, 2021
0aa4dce
WIP: PUT 버그 해결 진행중(#83)
damilog Jun 23, 2021
248eafd
WIP: 이슈 상세 페이지 작업중
junzero741 Jun 23, 2021
739b44c
Merge pull request #84 from pbg0205/FE/fix/label-page
damilog Jun 23, 2021
dbffe08
Merge branch 'FE-dev' into FE/feat/issue-detail
junzero741 Jun 23, 2021
3d23486
Merge pull request #85 from pbg0205/FE/feat/issue-detail
junzero741 Jun 23, 2021
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
15 changes: 8 additions & 7 deletions frontend/src/App.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,26 +11,27 @@ import Labels from "./components/Labels/Labels";
import NewIssue from "./components/pages/NewIssuePage";
import { ThemeProvider } from "styled-components";
import theme from "styles/theme";
import store from "./MyRecoil/store";

export const globalStateRoot = createContext();
// import store from "./MyRecoil";
// export const globalStateRoot = createContext();

function App() {
const globalState = useRef(store);
// const globalState = useRef(store);
return (
<globalStateRoot.Provider value={globalState}>
// <globalStateRoot.Provider value={globalState}>
<RecoilRoot>
<ThemeProvider theme={theme}>
<Switch>
<Route exact path="/" component={LoginPage} />
<PrivateRoute path="/main" component={MainPage} />
<Route path="/login" component={LoginLoadingPage} />
<Route path="/main/milestones" component={Milestones} />
<Route path="/main/labels" component={Labels} />
{/* <Route path="/main/new" component={NewIssue} /> */}
<Route path="/main/new" component={NewIssue} />
<Route path="*" component={NoMatch} />
</Switch>
</ThemeProvider>
</globalStateRoot.Provider>
</RecoilRoot>
// {/* </globalStateRoot.Provider> */}
);
}

Expand Down
57 changes: 34 additions & 23 deletions frontend/src/MyRecoil/atom.js
Original file line number Diff line number Diff line change
@@ -1,28 +1,39 @@
function atom({ key, initialState }) {
return { key, initialState };
}
// // function atom({ key, initialState }) {
// // return { key, initialState };
// // }

export const issueAtomState = atom({
key: "issueAtomState",
initialState: true,
});
// import { atom } from "./index";
// export const issueState = atom({
// key: "issueState",
// initialState: true,
// });

export const milestoneAtomState = atom({
key: "milestoneAtomState",
initialState: [],
});
// export const milestoneState = atom({
// key: "milestoneState",
// initialState: [],
// });

export const asigneeAtomState = atom({
key: "asigneeAtomState",
initialState: [],
});
// export const asigneeState = atom({
// key: "asigneeState",
// initialState: [],
// });

export const labelAtomState = atom({
key: "labelAtomState",
initialState: [],
});
// export const labelState = atom({
// key: "labelState",
// initialState: [],
// });

export const authorAtomState = atom({
key: "authorAtomState",
initialState: [],
});
// export const authorState = atom({
// key: "authorState",
// initialState: [],
// });

// export const selectedIssueCntState = atom({
// key: "selectedIssueCntState",
// initialState: 0,
// });

// export const clickedFilterState = atom({
// key: "clickedFilterState",
// initialState: null,
// });
86 changes: 86 additions & 0 deletions frontend/src/MyRecoil/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
// import { useContext, useState, useCallback, useEffect } from "react";
// import { globalStateRoot } from "App";

// export const atom = ({ key, initialState }) => {
// return { key, initialState };
// };

// export const useRecoilState = atom => {
// const { key } = atom;
// const store = useContext(globalStateRoot).current;
// const [, setReRender] = useState({});
// store.setInitState(atom);

// const forceUpdate = useCallback(() => {
// console.log("forced Update");
// setReRender({});
// }, []);

// useEffect(() => {
// store.subscribe({ key, fn: forceUpdate });
// }, []);

// return [store.getState(key), store.setState(key)];
// };
// export const useRecoilValue = atom => {
// const { key } = atom;
// const store = useContext(globalStateRoot).current;
// const [, setReRender] = useState({});
// store.setInitState(atom);

// const forceUpdate = useCallback(() => {
// console.log("forced Update");
// setReRender({});
// }, []);

// useEffect(() => {
// store.subscribe({ key, fn: forceUpdate });
// }, []);

// return store.getState(key);
// };

// export const useSetRecoilState = atom => {
// const { key } = atom;
// const store = useContext(globalStateRoot).current;
// const [, setReRender] = useState({});
// store.setInitState(atom);

// const forceUpdate = useCallback(() => {
// console.log("forced Update");
// setReRender({});
// }, []);

// useEffect(() => {
// store.subscribe({ key, fn: forceUpdate });
// }, []);

// return store.setState(key);
// };

// export const store = {
// observers: {},
// state: {},
// subscribe({ key, fn }) {
// this.observers[key] = this.observers[key] || [];
// this.observers[key].push(fn);
// },

// setInitState({ key, initialState }) {
// if (this.state[key]) return;
// this.state[key] = initialState;
// },

// getState(key) {
// return this.state[key];
// },

// setState(key) {
// return fn => {
// this.state[key] = fn(this.state[key]);
// this.observers[key].forEach(callback => callback());
// };
// },
// };

// export default store;
26 changes: 0 additions & 26 deletions frontend/src/MyRecoil/store.js

This file was deleted.

20 changes: 0 additions & 20 deletions frontend/src/MyRecoil/useRecoilState.js

This file was deleted.

20 changes: 0 additions & 20 deletions frontend/src/MyRecoil/useRecoilValue.js

This file was deleted.

20 changes: 0 additions & 20 deletions frontend/src/MyRecoil/useSetRecoilState.js

This file was deleted.

71 changes: 56 additions & 15 deletions frontend/src/RecoilStore/Atoms.jsx
Original file line number Diff line number Diff line change
@@ -1,26 +1,67 @@
import { atom } from "recoil";

export const issueAtomState = atom({
key: "issueFilter",
default: "열린 이슈",
export const selectedIssueCntState = atom({
key: "selectedIssueCntState",
default: 0,
});

export const assigneeAtomState = atom({
key: "assigneeFilter",
default: [],
export const clickedFilterState = atom({
key: "clickedFilterState",
default: null,
});

export const labelAtomState = atom({
key: "labelFilter",
default: [],
export const filterBarInputState = atom({
key: "filterBarInputState",
default: {
placeholder: "is:issue is:open",
assignee: null,
label: null,
milestone: null,
author: null,
issue: null,
},
});

export const milestoneAtomState = atom({
key: "milestoneFilter",
default: [],
export const labelButtonFlagState = atom({
key: "labelButtonFlagState",
default: true,
});

export const authorAtomState = atom({
key: "authorFilter",
default: [],
export const milestoneButtonFlagState = atom({
key: "milestoneButtonFlag",
default: false,
});

export const milestoneAddButtonFlagState = atom({
key: "milestoneAddButtonFlagState",
default: false,
});

export const milestoneUpdateState = atom({
key: "milestoneAddButtonFlagState",
default: false,
});

export const labelInitialData = atom({
key: "labelInitialData",
default: null,
});
export const labelAddButtonFlagState = atom({
key: "labelAddButtonFlagState",
default: false,
});

export const labelEditButtonFlagState = atom({
key: "labelEditButtonFlagState",
default: false,
});

export const navigatorAddButtonFlagState = atom({
key: "navigatorAddButtonFlagState",
default: false,
});

export const milestoneCountState = atom({
key: "milestoneCountState",
default: 0,
});
Loading