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_김민주 6주차 과제 Step 1, 2 #53

Open
wants to merge 58 commits into
base: joojjang
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
f9e9639
chore: 지난 주 코드 복사
joojjang Jul 31, 2024
7d833f3
design(Header): 테두리 선 추가
joojjang Jul 31, 2024
f87a9f5
design(Header): 로고 이미지의 최대 크기 지정 - 헤더 영역 벗어나지 않게
joojjang Jul 31, 2024
a754bf1
feat(Header): 요청 API 드롭다운 추가
joojjang Jul 31, 2024
520a64d
feat(Header): API 옵션 로컬 스토리지로 관리
joojjang Jul 31, 2024
153fea2
feat(Login/SignUp): id -> 이메일 변경, 이메일 형식 검사 로직 추가
joojjang Jul 31, 2024
384e491
refactor(useValidateEmail): 이메일 유효성 검사 모듈화
joojjang Jul 31, 2024
4f3f4f9
chore(Login/SignUp): 쫌쫌따리
joojjang Jul 31, 2024
ad19080
feat(SignUp): 회원가입 api 구현 (ing)
joojjang Aug 1, 2024
0e2fbcd
feat(API): 요청 URL apiOption에 따라 변경
joojjang Aug 1, 2024
bd09149
feat(SignUp): 회원가입 api 구현
joojjang Aug 1, 2024
377f48f
fix(API): 요청 URL 수정
joojjang Aug 1, 2024
ebc7006
feat(Login): 로그인 api 구현
joojjang Aug 1, 2024
4e37426
feat(storage): emailSessionStorage 추가, 화면에 표시되는 토큰 -> 이메일로 변경
joojjang Aug 1, 2024
65abc4f
refactor(Login): 새로고침 때문에 useNavigate -> window.location 변경
joojjang Aug 1, 2024
cedc740
design(Home): 로그인 안 했을 때 사용자 이름 표시 X
joojjang Aug 1, 2024
34121f5
chore(useGetCategories): 파일명 변경
joojjang Aug 1, 2024
801f922
fix(API): useGetCategories 응답 객체 키 수정, 통신 에러 처리 구문 추가
joojjang Aug 1, 2024
e24f94c
design(CategoryImage): 홈에 카테고리 이미지 비율 조정
joojjang Aug 1, 2024
36aa0fa
fix(API): 상품 상세 api 수정
joojjang Aug 2, 2024
107d363
fix(API): 상품 옵션 api 수정, 응답 객체 키 명 수정
joojjang Aug 2, 2024
2215caf
refactor(storage): apiOption getter, setter 훅
joojjang Aug 2, 2024
4849740
fix(opiOption): 선택된 apiOption이 화면에 계속 나오도록 수정
joojjang Aug 2, 2024
db95b4d
refactor(API): 모든 api 에러 처리 구문 추가, 불필요한 export 삭제
joojjang Aug 2, 2024
86df4cc
style(Wish): 위시 추가/삭제 핸들러 명 변경
joojjang Aug 2, 2024
2f0dba4
feat(API): wish 등록(post) api 구현
joojjang Aug 2, 2024
6f48b07
test(API): useGetProducts 응답 데이터 콘솔에 출력
joojjang Aug 2, 2024
db66d52
design(OptionSection): 위시 버튼 주문 버튼 UI 수정
joojjang Aug 2, 2024
4df9f71
feat(OptionSection): 상품의 옵션 바꿀 수 있도록 드롭다운 UI 추가
joojjang Aug 2, 2024
f308120
feat(OptionSection): 옵션 선택 동작하도록 구현 (orderHistory에 optionId 추가하고 저장)
joojjang Aug 2, 2024
a89b093
feat(apiOption): apiOption 바뀌면 리로드(새로고침)
joojjang Aug 2, 2024
aafcd92
fix(API): useGetProductDetail (상품 상세) suspense에 대한 처리 추가
joojjang Aug 2, 2024
3145859
fix(OptionSection): 선택한 옵션에 따라 CountOptionItem에 옵션명 바뀌도록 수정
joojjang Aug 2, 2024
bbe0fa1
fix(API): postWish (위시 등록) 수정 중
joojjang Aug 2, 2024
f22ffd3
feat(API): 위시 삭제 함수 및 훅 구현
joojjang Aug 2, 2024
2858c15
feat(wish): 위시 등록 api 파라미터 실제 productId로 수정
joojjang Aug 2, 2024
52a07cc
refactor(wish): 위시 api 모듈 분리
joojjang Aug 2, 2024
7ecbba4
HOTFIX(categories): 카테고리 데이터가 배열인지 확인
joojjang Aug 3, 2024
37f2cea
HOTFIX(options): optoins가 배열인지 확인
joojjang Aug 3, 2024
42d4907
HOTFIX(categories): 카테고리 데이터가 배열인지 확인
joojjang Aug 3, 2024
9284b7d
chore(env): 환경변수 빌드되는지 확인
joojjang Aug 3, 2024
4716eea
chore(deploy): deploy script 추가
joojjang Aug 4, 2024
d1b9b76
feat(wish): 위시 post API 로그인 안 한 경우 처리
joojjang Aug 4, 2024
5b7895b
refactor(wish): 사용자가 로그인하지 않기로 선택한 경우, API 요청 미전송
joojjang Aug 4, 2024
334ff6e
fix(OptionSection): 옵션 데이터가 없을 때 UI 수정 (옵션 드롭다운 없이 수량, 주문 버튼 나오게)
joojjang Aug 4, 2024
2023bed
style(usePostWish): 요청 객체 타입 명 수정
joojjang Aug 4, 2024
11ae41a
refactor(useDeleteWish): 위시 삭제 요청 파라미터: 넘버 -> 객체로 변경
joojjang Aug 4, 2024
86710c9
feat(useHandleWish): 위시 핸들러에 삭제 api 요청 추가
joojjang Aug 4, 2024
b8f90a4
feat(useGetWish): 위시 get 훅 구현
joojjang Aug 4, 2024
63c2248
refactor(getWishesPath): URLSearchParams 객체 사용
joojjang Aug 4, 2024
0c3542e
chore(usePostWish): 필요 없는 주석 삭제
joojjang Aug 4, 2024
e20de07
feat(Wish): 위시 페이지에서 훅 호출, 데이터 렌더링
joojjang Aug 4, 2024
88cb4a1
feat(Wish): 위시 삭제 wishId로 하도록 파라미터 넘김
joojjang Aug 4, 2024
d75ca66
refactor(instance): fetchInstance와 initInstance 병합
joojjang Aug 4, 2024
d19342f
refactor(api/hooks): api 별로 디렉토리 분리
joojjang Aug 4, 2024
8151ffe
feat(order): 주문 api 구현
joojjang Aug 4, 2024
9e457a6
fix(order): 오더 옵션id 없을 수도
joojjang Aug 4, 2024
60b224f
design(order): 오더 페이지 GoodsInfo UI 수정
joojjang Aug 4, 2024
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
3 changes: 3 additions & 0 deletions .babelrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"presets": ["@babel/preset-env", "@babel/preset-react", "@babel/preset-typescript"]
}
59 changes: 59 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
module.exports = {
env: {
browser: true,
es2021: true,
node: true,
},
extends: [
'plugin:@typescript-eslint/recommended',
'airbnb/hooks',
'airbnb-typescript',
'prettier',
'plugin:storybook/recommended',
],
parser: '@typescript-eslint/parser',
parserOptions: {
project: './tsconfig.json',
ecmaFeatures: {
jsx: true,
},
ecmaVersion: 'latest',
sourceType: 'module',
},
plugins: [
'react',
'@typescript-eslint',
'react-hooks',
'json-format',
'simple-import-sort',
'@emotion',
'prettier',
],
rules: {
'react/react-in-jsx-scope': 'off',
'simple-import-sort/imports': 'error',
'simple-import-sort/exports': 'error',
'@typescript-eslint/consistent-type-imports': 'warn',
'@typescript-eslint/no-unused-vars': [
'error',
{
argsIgnorePattern: '^_',
},
],
'import/extensions': ['off'],
'import/no-extraneous-dependencies': ['off'],
'react/jsx-filename-extension': [
'warn',
{
extensions: ['.tsx', '.js', '.jsx'],
},
],
'@typescript-eslint/no-use-before-define': ['off'],
},
ignorePatterns: ['**/build/**/*', '.eslintrc.js', 'craco.config.js'],
settings: {
'import/resolver': {
typescript: {},
},
},
};
27 changes: 27 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.js

# testing
/coverage

# production
/build

# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

npm-debug.log*
yarn-debug.log*
yarn-error.log*

.yaml

.env
3 changes: 3 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
/.vscode
/node_modules

8 changes: 8 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"singleQuote": true,
"semi": true,
"tabWidth": 2,
"trailingComma": "all",
"printWidth": 100,
"arrowParens": "always"
}
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1 @@
# react-deploy
# FE 카카오 선물하기 6주차 과제: 배포 & 협업
27 changes: 27 additions & 0 deletions craco.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
const path = require('path');

module.exports = {
webpack: {
alias: {
'@': path.resolve(__dirname, 'src'),
},
},
jest: {
configure: {
setupFilesAfterEnv: ['<rootDir>/jest.setup.js'],
preset: 'ts-jest',
testEnvironment: 'jsdom',
moduleNameMapper: {
'^@/(.*)$': '<rootDir>/src/$1', // 절대 경로 설정
},
transform: {
'^.+\\.(js|jsx)$': 'babel-jest', // Babel을 사용하여 JS 파일을 변환
'^.+\\.(ts|tsx)$': 'ts-jest',
},
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
transformIgnorePatterns: [
'/node_modules/(?!(axios)/)', // axios 모듈을 변환 대상으로 포함
],
},
},
};
1 change: 1 addition & 0 deletions jest.setup.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
import '@testing-library/jest-dom';
Loading