Skip to content
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
c6698ac
init
piggggggggy Dec 2, 2025
bd5aa51
refactor: configure Prettier for code formatting
piggggggggy Dec 2, 2025
4ad1058
build: add GitHub Pages deployment workflow
piggggggggy Dec 2, 2025
7935da6
refactor(product-page): separate App component (Product Page)
piggggggggy Dec 2, 2025
d0f8576
refactor(admin-dashboard-page): separate App component (AdminDashboa…
piggggggggy Dec 3, 2025
a5aceb0
feat: add KRW price formatting utility
piggggggggy Dec 3, 2025
644bf7f
refactor: refactor price formatting to use shared utility
piggggggggy Dec 3, 2025
faf8e12
fix: lift cart state to App component
piggggggggy Dec 3, 2025
5558a38
refactor: extract ProductCard component
piggggggggy Dec 3, 2025
b2c58ea
refactor: extract cart list item to own component
piggggggggy Dec 3, 2025
bac3f4d
chore: add eslint-config-prettier and prettier
piggggggggy Dec 3, 2025
aad0750
chore: move ProductCard to product feature folder
piggggggggy Dec 3, 2025
ffda53a
refactor: centralize notification logic
piggggggggy Dec 4, 2025
14779ec
refactor: lift cart item calculations to parent
piggggggggy Dec 4, 2025
91c847e
refactor: refactor product page (separation)
piggggggggy Dec 4, 2025
5077067
refactor: move files to feature folders
piggggggggy Dec 4, 2025
7e2cd43
refactor: refactor cart logic into entities
piggggggggy Dec 4, 2025
4001f26
chore: update product and admin page imports
piggggggggy Dec 4, 2025
4ceabfd
refactor: extract product page sections into a separate component
piggggggggy Dec 4, 2025
fae67e5
refactor(product-section): refactor product filtering to its own module
piggggggggy Dec 4, 2025
e5ce97a
refactor: restructure client-side components
piggggggggy Dec 4, 2025
afd34e8
refactor: refactor application structure for better scalability
piggggggggy Dec 4, 2025
fd6be2c
refactor(admin): extract product tab into separate module
piggggggggy Dec 4, 2025
8afde5f
refactor(admin): extract coupon tab into separate module
piggggggggy Dec 4, 2025
3685bfb
refactor(product): extract CRUD operations to utility functions
piggggggggy Dec 4, 2025
c91270e
refactor(product-tab): extract ProductForm and ProductListRowItem
piggggggggy Dec 4, 2025
4688550
refactor(product-form): extract DiscountForm and reorganize handlers
piggggggggy Dec 4, 2025
2ec2de1
refactor(coupon-tab): extract CouponForm and CouponItem components
piggggggggy Dec 4, 2025
a0716d3
refactor(coupon): extract validation to utility function
piggggggggy Dec 4, 2025
ad5f56c
refactor(coupon): lift selectedCoupon state to App level
piggggggggy Dec 4, 2025
1f067da
refactor(coupon-form): extract form event handlers
piggggggggy Dec 4, 2025
eb09235
refactor(entities): add domain-specific storage hooks
piggggggggy Dec 4, 2025
fd68573
refactor(components): extract Header component from App
piggggggggy Dec 4, 2025
0748914
refactor(app): remove redundant localStorage sync effects
piggggggggy Dec 4, 2025
c5dfe15
refactor(hooks): add generic useDebounce hook
piggggggggy Dec 4, 2025
ccee482
refactor(notification): extract components and hook
piggggggggy Dec 4, 2025
7f17da2
refactor(product): extract stock display logic to utilities
piggggggggy Dec 4, 2025
8f2422d
refactor(notification): move empty check into Notification component
piggggggggy Dec 4, 2025
29eb142
refactor: extract magic numbers and improve testability
piggggggggy Dec 4, 2025
325cb92
refactor: relocate types to entities and update imports
piggggggggy Dec 4, 2025
ac515ff
refactor(entities): add barrel exports and simplify imports
piggggggggy Dec 4, 2025
a653dab
refactor(types): use Dispatch<SetStateAction<T>> for setters
piggggggggy Dec 4, 2025
e2dbf93
chore: remove unnecessary key prop from ProductCard
piggggggggy Dec 4, 2025
8a4c9e9
refactor(advanced): apply modular structure from basic
piggggggggy Dec 4, 2025
79f69eb
refactor(advanced): introduce ProductContext for state management
piggggggggy Dec 4, 2025
5409879
refactor(advanced): introduce CouponContext for state management
piggggggggy Dec 4, 2025
bc77299
refactor(advanced): extract AppProvider for cleaner testing
piggggggggy Dec 4, 2025
412523d
refactor(advanced): introduce CartContext for state management
piggggggggy Dec 4, 2025
2dfdbf0
builf: rename advanced entry point to default
piggggggggy Dec 5, 2025
be4f2f9
refactor(advanced): move contexts to providers directory
piggggggggy Dec 5, 2025
25b4172
chore: refactor to use provider contexts
piggggggggy Dec 5, 2025
d105f64
refactor(utils): add centralized ID generator
piggggggggy Dec 5, 2025
68940d1
refactor(product): extract initial form state constant
piggggggggy Dec 5, 2025
742911e
refactor(cart): extract total calculation utilities
piggggggggy Dec 5, 2025
4daa357
chore: update cart context import path
piggggggggy Dec 5, 2025
3874704
build: set base URL for production environment
piggggggggy Dec 5, 2025
227149d
chore: URL typo
piggggggggy Dec 5, 2025
df0aac8
refactor(notification): migrate useNotification to context provider
piggggggggy Dec 5, 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
1 change: 1 addition & 0 deletions .eslintrc.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ module.exports = {
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:react-hooks/recommended',
'prettier',
],
ignorePatterns: ['dist', '.eslintrc.cjs'],
parser: '@typescript-eslint/parser',
Expand Down
57 changes: 57 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: Deploy to GitHub Pages

on:
push:
branches:
- main
- feature-*
workflow_dispatch:
inputs:
branch:
description: "Branch to deploy"
required: true
default: "main"

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
10 changes: 10 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"semi": true,
"singleQuote": true,
"tabWidth": 2,
"trailingComma": "es5",
"printWidth": 100,
"bracketSpacing": true,
"arrowParens": "avoid",
"endOfLine": "lf"
}
File renamed without changes.
7 changes: 5 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,14 @@
"scripts": {
"dev:origin": "vite --open ./index.origin.html",
"dev:basic": "vite --open ./index.basic.html",
"dev:advanced": "vite --open ./index.advanced.html",
"dev:advanced": "vite --open ./index.html",
"preview:advanced": "vite preview ./dist",
"test": "vitest",
"test:origin": "vitest src/origin",
"test:basic": "vitest src/basic",
"test:advanced": "vitest src/advanced",
"test:ui": "vitest --ui",
"build": "tsc -b && vite build",
"build": "vite build",
"lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0"
},
"dependencies": {
Expand All @@ -30,9 +31,11 @@
"@vitejs/plugin-react-swc": "^3.11.0",
"@vitest/ui": "^3.2.4",
"eslint": "^9.32.0",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-react-refresh": "^0.4.20",
"jsdom": "^26.1.0",
"prettier": "^3.7.3",
"typescript": "^5.9.2",
"vite": "^7.0.6",
"vitest": "^3.2.4"
Expand Down
23 changes: 23 additions & 0 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading