Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
422aa0f
feat: prettier 설치 및 설정
Legitgoons Aug 5, 2025
20480cb
docs: 주석 작성
Legitgoons Aug 5, 2025
1336baa
feat: 폴더 구조 설정
Legitgoons Aug 6, 2025
d747c51
feat: basic에 주석 작성
Legitgoons Aug 6, 2025
e1f9795
refactor: 장바구니 계산 함수를 순수함수로 분리
Legitgoons Aug 6, 2025
3f3409d
refactor: calculateCartTotal 함수 분리
Legitgoons Aug 6, 2025
483112a
refactor: calculateCartTotal를 순수 함수로 분리
Legitgoons Aug 6, 2025
c0f11aa
feat: prettier 설정
Legitgoons Aug 6, 2025
2cf6941
style: prettier 전체 적용
Legitgoons Aug 6, 2025
f9a2427
refactor: updateQuantity 함수를 순수 함수로 분리
Legitgoons Aug 6, 2025
befef81
feat: gh-pages 설치 및 배포 설정
Legitgoons Aug 6, 2025
a461638
refactor: 초기 data와 type 분리
Legitgoons Aug 6, 2025
06a6c8b
feat: constants 폴더 제거
Legitgoons Aug 6, 2025
4a1c13d
fix: eslint 호환성 문제 해결
Legitgoons Aug 6, 2025
7f542f9
feat: useLocalStorage hook 구현 및 app.tsx에서 사용
Legitgoons Aug 6, 2025
78682fc
refactor: models/cart.ts로 비즈니스 로직 이동
Legitgoons Aug 7, 2025
daf9fde
feat: useCart 훅으로 장바구니 로직 분리
Legitgoons Aug 7, 2025
3825cb5
feat: models/product.ts에 비즈니스 로직 구현
Legitgoons Aug 7, 2025
34b6aa9
feat: useProduct hook 구현 및 app.tsx에 반영
Legitgoons Aug 7, 2025
9da8ee8
feat: useNotification hook 구현 및 적용
Legitgoons Aug 7, 2025
298bde6
feat: models/coupon.ts에 비즈니스 로직 구현
Legitgoons Aug 7, 2025
a3aabcf
feat: useCoupons hook 구현 및 적용
Legitgoons Aug 7, 2025
7086626
feat: useDebounce 구현
Legitgoons Aug 7, 2025
11c60f5
feat: useSearch 구현
Legitgoons Aug 7, 2025
2735eca
feat: useProductSearch 구현 및 적용
Legitgoons Aug 7, 2025
5f8aeec
feat: utils/formatters.ts 구현 및 적용
Legitgoons Aug 7, 2025
165c770
feat: 매직넘버를 대체할 상수 추가
Legitgoons Aug 7, 2025
e7ab743
feat: 매직넘버 상수로 대체
Legitgoons Aug 7, 2025
8f72df2
feat: utils/validators.ts 구현
Legitgoons Aug 7, 2025
bc06f04
feat: validators util 함수 적용
Legitgoons Aug 7, 2025
e55836d
feat: 상수 추가 및 추가 적용
Legitgoons Aug 7, 2025
46d0b21
chore: 커밋 누락된 코드 추가
Legitgoons Aug 7, 2025
935205d
feat: Icon 컴포넌트 구현 및 적용
Legitgoons Aug 7, 2025
3b2e8f1
fix: 할인률 오류 수정
Legitgoons Aug 7, 2025
70a8ac0
feat: Header 컴포넌트 분리
Legitgoons Aug 7, 2025
b638932
feat: setState를 export하는 안티패턴 제거
Legitgoons Aug 7, 2025
ebab832
refactor: CartPage, AdminPage로 분할
Legitgoons Aug 7, 2025
9330b24
feat: setState를 export하는 안티패턴 제거
Legitgoons Aug 7, 2025
df3a906
feat: CartPage에서 직접 model에 접근하지 못하도록 수정
Legitgoons Aug 7, 2025
85a19f4
feat: CartPage 분할
Legitgoons Aug 7, 2025
cf38983
feat: Header에서 SearchBar 컴포넌트 분리
Legitgoons Aug 7, 2025
2998ab2
feat: CouponForm 컴포넌트 및 관련 코드 구현
Legitgoons Aug 7, 2025
fc11a57
feat: CouponList 컴포넌트 구현 및 AdminPage 분할
Legitgoons Aug 7, 2025
9c710fe
feat: ProductForm 컴포넌트 및 관련 코드 구현
Legitgoons Aug 7, 2025
1cc5b95
feat: ProductList 컴포넌트 구현 및 AdminPage 분할
Legitgoons Aug 7, 2025
b3d06e4
feat: UIToast 컴포넌트 구현
Legitgoons Aug 7, 2025
02d897f
feat: App.tsx에서 UIToast 사용하도록 수정
Legitgoons Aug 7, 2025
986bed3
feat: advanced 복사 및 jotai 설치
Legitgoons Aug 7, 2025
19e7925
feat: jotai로 ProductForm 처리
Legitgoons Aug 7, 2025
2c3d236
feat: jotai로 couponForm 처리
Legitgoons Aug 7, 2025
08c3c97
refactor: atoms 폴더 이동
Legitgoons Aug 7, 2025
70b4d05
feat: 기존에 사용되던 hook 제거
Legitgoons Aug 7, 2025
b536c5c
feat: 배포를 위한 gh-pages 설치
Legitgoons Aug 7, 2025
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
18 changes: 0 additions & 18 deletions .eslintrc.cjs

This file was deleted.

33 changes: 33 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Dependencies
node_modules/
pnpm-lock.yaml
package-lock.json

# Build output
dist/
build/

# Logs
*.log

# Coverage
coverage/

# Environment variables
.env
.env.local
.env.production

# IDE
.vscode/
.idea/

# OS
.DS_Store
Thumbs.db

# Git
.git/

# ESLint config
eslint.config.js
6 changes: 6 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"tabWidth": 2,
"semi": true,
"singleQuote": true,
"printWidth": 120
}
28 changes: 28 additions & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import js from '@eslint/js'
import globals from 'globals'
import reactHooks from 'eslint-plugin-react-hooks'
import reactRefresh from 'eslint-plugin-react-refresh'
import tseslint from 'typescript-eslint'

export default tseslint.config(
{ ignores: ['dist', '.eslintrc.cjs', 'eslint.config.js'] },
{
extends: [js.configs.recommended, ...tseslint.configs.recommended],
files: ['**/*.{ts,tsx}'],
languageOptions: {
ecmaVersion: 2020,
globals: globals.browser,
},
plugins: {
'react-hooks': reactHooks,
'react-refresh': reactRefresh,
},
rules: {
...reactHooks.configs.recommended.rules,
'react-refresh/only-export-components': [
'warn',
{ allowConstantExport: true },
],
},
},
)
12 changes: 11 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,19 @@
"test:advanced": "vitest src/advanced",
"test:ui": "vitest --ui",
"build": "tsc -b && vite build",
"lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0"
"lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
"lint:fix": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0 --fix",
"format": "prettier --write \"src/**/*.{ts,tsx,js,jsx,json}\"",
"deploy:advanced": "pnpm run build:advanced && gh-pages -d dist",
"build:advanced": "tsc --noEmit --skipLibCheck && vite build --config vite.config.advanced.ts && cp dist/index.advanced.html dist/index.html"
},
"dependencies": {
"jotai": "^2.13.0",
"react": "^19.1.1",
"react-dom": "^19.1.1"
},
"devDependencies": {
"@eslint/js": "^9.32.0",
"@testing-library/jest-dom": "^6.6.4",
"@testing-library/react": "^16.3.0",
"@testing-library/user-event": "^14.6.1",
Expand All @@ -32,8 +38,12 @@
"eslint": "^9.32.0",
"eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-react-refresh": "^0.4.20",
"gh-pages": "^6.3.0",
"globals": "^16.3.0",
"jsdom": "^26.1.0",
"prettier": "^3.6.2",
"typescript": "^5.9.2",
"typescript-eslint": "^8.39.0",
"vite": "^7.0.6",
"vitest": "^3.2.4"
}
Expand Down
Loading