Skip to content

Commit 9fa6396

Browse files
authored
[Deploy] 2025-02-21 문항 탭 퍼블리싱 (#19)
* setting: Issue & PR templates, github workflows * setting: tailwind, eslint, prettier 초기세팅 * setting: Tanstack Router 초기 세팅 * refactor: create @tanstack/router 기반 프로젝트에서 create vite 프로젝트로 변경 * refactor: 패키지 재설치 * setting: Typograghy 추가 * setting: CI 워크플로우 파일 추가 * style: 코드 포맷팅 * test: CI 테스트 * test: github actions CI 테스트 * fix: yml, yaml 파일 prettier 제외 * fix: CI tsc 수정 * setting: svgr 세팅 * fix: svgr index.ts 파일도 포맷팅 되도록 추가 * setting: main 브랜치에도 CI 적용 * [Feat/#9] 공통 컴포넌트 제작 (#11) * setting: path alias 세팅 * feat: Button 컴포넌트 퍼블리싱 * feat: IconButton 퍼블리싱 * fix: left/right icon 교체 * feat: PrevPageButton 퍼블리싱 * feat: PlusButton 퍼블리싱 * feat: GNBMenu 컴포넌트 퍼블리싱 * design: Button variant=light border 추가 * feat: StatusToggle 컴포넌트 퍼블리싱 * feat: Modal 컴포넌트 퍼블리싱 * feat: Tag 컴포넌트 퍼블리싱 * style: 모서리 굴곡 rounded-[50%] -> rounded-full 로 수정 * refactor: Tag 컴포넌트 onClick 함수 optional로 수정 * feat: ProblemCard 컴포넌트 퍼블리싱 * feat: ProblemCard EmptyView 추가 * feat: component 페이지 추가 * chore: 안쓰는 변수 삭제 * style: 코드 포맷팅 * [Feat/#12] 공통 컴포넌트 제작(2차) (#13) * setting: React Hook Form 설치 * feat: Input 컴포넌트 생성 * refactor: Button size 인자 이름 변경. size -> sizeType * feat: SearchInput 컴포넌트 퍼블리싱 * design: Input 컴포넌트 border 추가 * feat: TagSelect 컴포넌트 퍼블리싱 * fix: darkgray200 색상 수정 * feat: AnswerInput 컴포넌트 퍼블리싱 * feat: Calandar 컴포넌트 퍼블리싱 * feat: 캘린더 - 이전날짜 발행 버튼 삭제 * feat: 캘린더 오늘 날짜 표시 추가 * feat: FloatingButton 컴포넌트 퍼블리싱 * feat: LevelSelect 컴포넌트 퍼블리싱 * design: SearchInput 돋보기 아이콘 삭제 * feat: DeleteButton 컴포넌트 퍼블리싱 * refactor: 컴포넌트 import/export 폴더별로 묶는 방식으로 리팩토링 * feat: ModalTemplate 생성(OneButton, TwoButton, Error) * refactor: IconButton 리팩토링 (통으로 svg 추출, selectIcon 색상 변경) * fix: DeleteButton min-width 지정 * feat: ProblemPreview 컴포넌트 퍼블리싱 * fix: 캘린더 수정 (event -> title, 지난달/다음달 title 미출력 오류 수정) * [�Setting/#14] api setting (Tanstack Query + OpenAPI TS/fetch) (#15) * refactor: tailwindcss v3 -> v4 * setting: Tanstack Query + OpenAPI TS/fetch 세팅중 * fix: 컴포넌트 줄바꿈 방지 * design: FloatingButton shadow 추가 * setting: openapi-fetch를 이용해 REST API 함수 세팅 * design: calandar 날짜칸 스타일 수정(테두리 삭제 및 rounded) * style: format code * [Feat/#16] problem page 퍼블리싱 (#17) * feat: GNB 컴포넌트 & root 레이아웃 설정 * design: button cursor: pointer 글로벌 스타일 수정 * design: 문항 카드 너비 반응형으로 수정 * refactor: 인풋 컴포넌트 라벨 태그 label -> span으로 수정 * design: z-index 조정 * refactor: 커스텀 hook 파일 tsx->ts * feat: useNavigation 훅 생성 * design: 화면 최소 너비 지정 * feat: 문항 페이지 퍼블리싱 * refactor: IconButton className 인자 삭제 * feat: ImageUpload 컴포넌트 퍼블리싱 * refactor: tanstack router 폴더구조 리팩토링 (로그인 페이지에 GNB 없게) * chore: openapi swagger url로 수정 * feat: API 연동 세팅 중 * feat: 관리자 로그인 페이지 추가 및 리다이렉트 설정 * feat: admin Header 컴포넌트 퍼블리싱 * feat: / 으로 접근시 redirect 설정 * feat: 로그인 성공시 /publish로 라우팅 * fix: FloatingButton onClick 함수 optional로 변경 * feat: 문항 등록 버튼 링크 추가 * style: 코드 포맷팅 * chore: 안쓰는 import 삭제 * feat: 문항 등록 페이지 퍼블리싱 중 * fix: PlusButton min-width 설정 * refactor: 컴포넌트 내의 Label 삭제 * feat: PracticeTestSelect 컴포넌트 퍼블리싱 * fix: TagSelect z-index 수정 * refactor: import 수정 * feat: 문항 등록 페이지 퍼블리싱 중 * design: disalbed button은 cursor: not-allowed * design: Input 컴포넌트 너비 수정 * design: Button 컴포넌트 스타일 수정 * feat: problem/register 페이지 퍼블리싱 * fix: map 함수 key 추가 * feat: openapi-react-query 라이브러리 사용 * refactor: 문항 필수 입력 영역 컴포넌트화 * design: AnswerInput 간격 조정 * feat: 로그인 쿠키설정 & AuthProvider 세팅 * feat: 문항 등록 API 연동 * feat: 문항 목록 리스트 GET API 연동 * feat: 개념 태그로 문항 필터링 & 문항 삭제 API 연동 * feat: 개념 태그 리스트 조회 API 연동 * refactor: 문항 유형 및 답안 형식 정리 & 문항 필수 영역 컴포넌트화 * feat: S3 이미지 업로드 하는 중... * feat: 캘린더 발행 삭제 버튼 추가 * feat: 세트 목록 페이지 퍼블리싱 중 * docs: openapi schema 파일 재생성 * feat: 서버 응답 response에 따른 middleware 수정 * feat: 모의고사 GET API staleTime, gcTime 설정 * fix: ComponentWithLabel 동적 너비 지정 * design: TagSelect absolute 속성 임시로 삭제 * refactor: LevelSelect 컴포넌트 RHF 리팩토링 * feat: 문항 등록 페이지 작업 중.... * chore: 태그 셀렉트 임시 더미데이터 작업 * chore: console.log 삭제 * feat: AnswerInput 폼 작업 (RHF 연결을 위한 리팩토링) * fix: LevelSelect props type 수정 * feat: TextArea 컴포넌트 퍼블리싱 * feat: 문항 등록 페이지 작업중 (문항 답 입력 & 메모 입력) * feat: 토큰 재발급 쿠키방식으로 변경 * docs: openapi 스키마 수정 * docs: API 스키마 업데이트 * refactor: response 스키마 변경에 따른 응답 데이터 수정 * feat: 문항 필수 입력 항목 RHF으로 수정 * fix: 문항 목록 페이지 수정 * feat: ComponentWithLabel 가로/세로 가능하게 확장 * feat: presignedUrl 을 이용한 ImageUpload 구현 * feat: 권장 시간 입력 추가 * fix: 문항 번호 Input. Controller 방식 -> valueAsNumber * feat: 새끼문항 RHF 연결 & 새끼문항 추가 * feat: 새끼문항 삭제 API 연동 * feat: 개념태그 선택 RHF 연동 * feat: 개념 태그 선택 모달 & 문항 검색 수정 * feat: TagSelectModal debounce 적용 * fix: button type='button' 으로 설정해주기 * feat: 문항 조회, 문항 수정 API 생성 * fix: 서버 수정에 맞춘 type 수정 * design: ProblemCard 태그영역 줄바꿈 * feat: api 유틸 함수 제작 * feat: 문항 등록 유효성 검사 & 에러 처리 * feat: 문항 목록 - 문항 삭제 모달 및 변수명 수정 * feat: 문항 상세 API 연동(업데이트, 삭제,,) * feat: 문항 목록 로딩 스피너 추가 * feat: problem search - staleTime, gcTime 설정 * fix: 문항 목록에서 문항 삭제 id 인자 수정 * feat: 문항 수정 완료 토스트 메세지 출력 * docs: openapi 스키마 파일 수정 * style: 코드 포맷팅 * style: lint 오류 수정 * feat: 문항 수정 유효성검사 추가 & zod 코드 삭제 * chore: 새끼문항 삭제버튼 디자인 수정 및 TagSelect 너비 수정 * refactor: 태그 선택 UI & 로직 수정 * feat: 이미지 삭제 모달 추가 * chore: 문항 상세 페이지 초기 로딩 값 수정
1 parent f07a22a commit 9fa6396

File tree

148 files changed

+6987
-476
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

148 files changed

+6987
-476
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ name: CI
33
on:
44
pull_request:
55
branches:
6+
- main
67
- pre-production
78

89
jobs:

apps/admin/env.d.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
/// <reference types="vite/client" />
2+
interface ImportMeta {
3+
readonly env: ImportMetaEnv;
4+
}

apps/admin/eslint.config.mjs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,15 @@
11
import baseConfig from '../../eslint.config.mjs';
2+
import pluginQuery from '@tanstack/eslint-plugin-query';
23

34
/** @type {import("eslint").FlatConfig[]} */
4-
export default [...baseConfig];
5+
export default [
6+
...baseConfig,
7+
{
8+
plugins: {
9+
'@tanstack/query': pluginQuery,
10+
},
11+
rules: {
12+
...pluginQuery.configs.recommended.rules,
13+
},
14+
},
15+
];

apps/admin/index.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
<body>
1010
<div id="app"></div>
11+
<div id="modal"></div>
1112
<script type="module" src="/src/main.tsx"></script>
1213
</body>
1314
</html>

apps/admin/package.json

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,24 +9,45 @@
99
"build": "vite build",
1010
"serve": "vite preview",
1111
"start": "vite",
12-
"lint": "eslint ."
12+
"lint": "eslint .",
13+
"openapi": "pnpm dlx openapi-typescript https://dev.mopl.kr/v3/api-docs --output ./src/types/api/schema.d.ts && prettier --write ./src/types/api/schema.d.ts"
1314
},
1415
"dependencies": {
16+
"@hookform/resolvers": "^4.1.0",
17+
"@tanstack/react-query": "^5.66.0",
18+
"@tanstack/react-query-devtools": "^5.66.0",
1519
"@tanstack/react-router": "^1.98.4",
1620
"@tanstack/router-devtools": "^1.98.4",
21+
"clsx": "^2.1.1",
22+
"dayjs": "^1.11.13",
23+
"immer": "^10.1.1",
24+
"lodash": "^4.17.21",
25+
"openapi-fetch": "^0.13.4",
26+
"openapi-react-query": "^0.3.0",
1727
"react": "^19",
18-
"react-dom": "^19"
28+
"react-dom": "^19",
29+
"react-dropzone": "^14.3.5",
30+
"react-hook-form": "^7.54.2",
31+
"react-spinners": "^0.15.0",
32+
"react-toastify": "^11.0.3",
33+
"zod": "^3.24.2"
1934
},
2035
"devDependencies": {
36+
"@tailwindcss/postcss": "^4.0.4",
37+
"@tanstack/eslint-plugin-query": "^5.66.0",
2138
"@tanstack/router-plugin": "^1.98.6",
39+
"@types/lodash": "^4.17.15",
2240
"@types/react": "^19",
2341
"@types/react-dom": "^19",
2442
"@vitejs/plugin-react-swc": "^3.5.0",
2543
"eslint": "^9.17.0",
2644
"globals": "^15.14.0",
45+
"openapi-typescript": "^7.6.1",
46+
"openapi-typescript-helpers": "^0.0.15",
2747
"typescript": "~5.6.3",
2848
"typescript-eslint": "^8.18.2",
2949
"vite": "^6.0.5",
30-
"vite-plugin-svgr": "^4.3.0"
50+
"vite-plugin-svgr": "^4.3.0",
51+
"vite-tsconfig-paths": "^5.1.4"
3152
}
3253
}
Lines changed: 12 additions & 0 deletions
Loading

apps/admin/public/images/logo.jpeg

7 KB
Loading
Lines changed: 10 additions & 0 deletions
Loading
Lines changed: 3 additions & 0 deletions
Loading
Lines changed: 3 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)