Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
debdcb9
feat: 기본 코드 추가
JunilHwang Sep 26, 2025
82d6cb4
init
piggggggggy Nov 9, 2025
9c02b11
feat(dto): add dto class for DTO type stability
piggggggggy Nov 10, 2025
e2079bd
feat: add components (Home/Detail page)
piggggggggy Nov 10, 2025
fb307f7
feat: apply separated components (main)
piggggggggy Nov 10, 2025
61568d0
feat: add select-limit event & add intersectionObserver API
piggggggggy Nov 10, 2025
5e0f073
feat: add add-cart & add search keyword filter
piggggggggy Nov 10, 2025
45b75f2
feat: add sort-select filter
piggggggggy Nov 10, 2025
ea7025b
build: add gh-pages deploy workflow
piggggggggy Nov 10, 2025
c643fc7
chore: small fix
piggggggggy Nov 10, 2025
0d8d4d1
chore(deploy): small fix
piggggggggy Nov 10, 2025
83a6dfe
chore(deploy): small fix
piggggggggy Nov 10, 2025
8ae3a16
chore(deploy): small fix
piggggggggy Nov 10, 2025
1e5319d
chore(deploy): small fix
piggggggggy Nov 10, 2025
76b29d1
chore: trigger GitHub Actions
piggggggggy Nov 10, 2025
8c6660a
refactor(type): refactor DTOs for API responses & add types
piggggggggy Nov 11, 2025
70d8a6a
feat: add type checking and improves product API
piggggggggy Nov 11, 2025
41f9cb3
feat(category): add Category Filter component and view model
piggggggggy Nov 11, 2025
c74d30f
feat: implement product list page
piggggggggy Nov 11, 2025
fb88d84
chore: solve lint error
piggggggggy Nov 11, 2025
890d64c
chore: improve event handling and adds error handling
piggggggggy Nov 11, 2025
ef13545
feat: enable SPA navigation using data-link attributes
piggggggggy Nov 11, 2025
c80cf3e
feat: create app store (global state)
piggggggggy Nov 11, 2025
7e30515
feat(route): define routes and data loaders for pages
piggggggggy Nov 11, 2025
ee72250
feat: implement single-page application structure (route)
piggggggggy Nov 11, 2025
fc609af
chore: update product link to be absolute
piggggggggy Nov 11, 2025
5af8d46
feat: fetche related products on detail page
piggggggggy Nov 11, 2025
d5bfb95
feat: fetche and displays related products
piggggggggy Nov 11, 2025
ec07b5b
feat(cart): improve cart functionality and UI
piggggggggy Nov 11, 2025
af91f4c
feat: enable browser history navigation
piggggggggy Nov 11, 2025
bcc6bbb
feat(cart-modal): add cart modal component
piggggggggy Nov 11, 2025
b7a3360
feat: add cart modal functionality
piggggggggy Nov 11, 2025
0a6c057
feat: enable cart item quantity modification
piggggggggy Nov 12, 2025
fd97a73
chore: add a toast alert component
piggggggggy Nov 12, 2025
0ab314c
feat: implement toast alert component
piggggggggy Nov 12, 2025
046625a
feat: improve toast alert component and functionality
piggggggggy Nov 12, 2025
8e13fe3
feat: implement cart item removal feature
piggggggggy Nov 12, 2025
abe719a
feat: handle 404 Not Found routes
piggggggggy Nov 12, 2025
852a817
feat(route): implement basic SPA routing
piggggggggy Nov 13, 2025
b514cba
feat: format product prices with commas
piggggggggy Nov 13, 2025
79f88d2
build: configure base URL for production builds
piggggggggy Nov 13, 2025
b290cfe
fix: add loading state during data updates
piggggggggy Nov 13, 2025
97529db
feat(component): create component factory function
piggggggggy Nov 13, 2025
b949337
refactor(component): prevent event handling during rendering
piggggggggy Nov 13, 2025
baf790b
refactor(event): enhance component event handling
piggggggggy Nov 13, 2025
1849fe9
refactor: enhance component rendering and cart updates
piggggggggy Nov 13, 2025
b0e8713
refactor: refactor initial render logic for routes
piggggggggy Nov 13, 2025
8dd2819
refactor(component): refactor components to use createComponent
piggggggggy Nov 13, 2025
d99fd60
chore: enhance cart modal item display
piggggggggy Nov 13, 2025
845d9ff
refactor: refactor DOM manipulation for SPA
piggggggggy Nov 13, 2025
973ac61
refactor: refactor component initial state as a function
piggggggggy Nov 13, 2025
c6231bf
refactor(component): add state subscription to components
piggggggggy Nov 13, 2025
34218e8
refactor(component): allow multiple component instances
piggggggggy Nov 13, 2025
e6181f6
refactor(component): improve component instance ID generation
piggggggggy Nov 13, 2025
bcc160f
feat: add cart item and modal components
piggggggggy Nov 13, 2025
457f617
refactor: refactor rendering logic to use replaceChildren
piggggggggy Nov 13, 2025
57db541
feat: refactor ProductList to use createComponent
piggggggggy Nov 13, 2025
f9cef90
feat: implement filter toolbox component
piggggggggy Nov 13, 2025
04b5839
refactor: refactor product card to a component
piggggggggy Nov 13, 2025
471ffa2
feat: add Header component with navigation
piggggggggy Nov 13, 2025
6bbbb9e
feat: add Home page component
piggggggggy Nov 14, 2025
e6e8394
feat: add component effects
piggggggggy Nov 14, 2025
e279a09
refactor: enable query parameter-based product filtering
piggggggggy Nov 14, 2025
402e1e7
refactor: enable navigation via product categories
piggggggggy Nov 14, 2025
aa53dd7
refactor: define routes for the application
piggggggggy Nov 14, 2025
a82f3b8
refactor: improve main application logic
piggggggggy Nov 14, 2025
827a29f
refactor: add query parameter handling to router
piggggggggy Nov 14, 2025
61c3955
chore: clean up unused code and console logs
piggggggggy Nov 14, 2025
2888305
feat: add effect cleanup functionality
piggggggggy Nov 14, 2025
1a2c099
feat: implement infinite scroll on homepage
piggggggggy Nov 14, 2025
8ea5111
refactor: clean main application logic
piggggggggy Nov 14, 2025
11b697b
chore: implement add to cart functionality.
piggggggggy Nov 14, 2025
f16a285
feat: refactor app store for reactivity
piggggggggy Nov 14, 2025
8bd646c
feat: update header to reflect cart changes
piggggggggy Nov 14, 2025
ee32b92
feat: improve cart modal functionality
piggggggggy Nov 14, 2025
687c0ea
fix: update product list filtering and sorting
piggggggggy Nov 14, 2025
8c5835b
feat: centralize cart state management
piggggggggy Nov 14, 2025
9dad874
feat: persist cart state in local storage
piggggggggy Nov 14, 2025
10a45a0
chore: rename storage key for shopping cart data
piggggggggy Nov 14, 2025
b9963ee
chore: enhance product detail and routing
piggggggggy Nov 14, 2025
63fc85e
chore: use nullish coalescing operator
piggggggggy Nov 14, 2025
167b960
chore: small fix
piggggggggy Nov 14, 2025
d646e67
buile: remove package manager specification.
piggggggggy Nov 14, 2025
2e8002b
chore: remove unused `categories` prop.
piggggggggy Nov 14, 2025
c432713
chore: small fix
piggggggggy Nov 14, 2025
39a9bc7
chore: solve deploy issue with package manager version
piggggggggy Nov 15, 2025
99deb4a
chore: solve package manager issue
piggggggggy Nov 15, 2025
7cc701b
refactor: extract product counter to a component
piggggggggy Nov 15, 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
2 changes: 1 addition & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@

**상품 정렬 기능**

- [ ] 상품을 가격순/이름순으로 오름차순/내림차순 정렬을 할 수 있다.
- [ ] 상품을 가격순/인기순으로 오름차순/내림차순 정렬을 할 수 있다.
- [ ] 드롭다운을 통해 정렬 기준을 선택할 수 있다
- [ ] 정렬 변경 시 즉시 목록에 반영된다

Expand Down
52 changes: 52 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Deploy to GitHub Pages

on:
push:
branches:
- main
- feature-*
workflow_dispatch:

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: "pages"
cancel-in-progress: true

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: latest

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "20"
cache: "pnpm"

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Build
run: pnpm run build

- name: Setup Pages
uses: actions/configure-pages@v4

- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: "./dist"

- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
47 changes: 24 additions & 23 deletions index.html
Original file line number Diff line number Diff line change
@@ -1,26 +1,27 @@
<!doctype html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>상품 쇼핑몰</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="/src/styles.css">
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: "#3b82f6",
secondary: "#6b7280"
}
}
}
};
</script>
</head>
<body class="bg-gray-50">
<div id="root"></div>
<script type="module" src="/src/main.js"></script>
</body>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>상품 쇼핑몰</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="/src/styles.css" />
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: "#3b82f6",
secondary: "#6b7280",
},
},
},
};
</script>
</head>
<body class="bg-gray-50">
<div id="root"></div>
<div id="sentinel"></div>
<script type="module" src="/src/main.js"></script>
</body>
</html>
8 changes: 7 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
"dev": "vite",
"dev:hash": "vite --open ./index.hash.html",
"build": "vite build",
"type-check": "tsc --noEmit",
"type-check:watch": "tsc --noEmit --watch",
"lint:fix": "eslint --fix",
"prettier:write": "prettier --write ./src",
"preview": "vite preview",
Expand All @@ -16,7 +18,9 @@
"test:e2e:ui": "playwright test --ui",
"test:e2e:report": "npx playwright show-report",
"test:generate": "playwright codegen localhost:5173",
"prepare": "husky"
"prepare": "husky",
"deploy": "pnpm run build && gh-pages -d dist",
"predeploy": "pnpm run build"
},
"lint-staged": {
"*.{js,jsx,ts,tsx}": [
Expand All @@ -35,12 +39,14 @@
"eslint": "^9.16.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-prettier": "^5.2.1",
"gh-pages": "^6.3.0",
"globals": "^15.13.0",
"husky": "^9.1.7",
"jsdom": "^25.0.1",
"lint-staged": "^15.2.11",
"msw": "^2.10.2",
"prettier": "^3.4.2",
"typescript": "^5.7.2",
"vite": "npm:rolldown-vite@latest",
"vitest": "latest"
},
Expand Down
Loading
Loading