-
Notifications
You must be signed in to change notification settings - Fork 0
refactor: extract reusable components and add whisky creation menu #10
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
Conversation
- WhiskyDetail: form with React Hook Form + Zod validation - TastingTagList: badge-based tag management with inline editing - Add mock data for whisky (regions, categories, sample data) - Update env scripts for SOPS with new path (application.vite) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Replace inline editing with edit modal dialog - Add delete confirmation modal before removing tag - Add Pencil icon to indicate editable tags Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
… new whisky registration - Add ImageUpload component with drag-and-drop support for presigned URL upload - Add TagSelector component with chip-based UI for selecting/adding tasting tags - Add whisky registration page (/whisky/new) using same component in new mode - Add mock data for whisky ID 7094 (100 파이퍼스) and Scotland region - Move tasting tag section to full-width card at bottom of form - Add @radix-ui/react-popover dependency Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Extract ImageUpload, TagSelector, and DetailPageHeader into common components for reuse - Simplify WhiskyDetail layout from grid to flex-based stacking - Add "위스키 추가" menu item under whisky management navigation - Improve code organization and maintainability Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
4490e75 to
f7126b0
Compare
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR refactors the whisky management interface by extracting reusable UI components and implementing a complete whisky creation/editing form with mock data support.
Changes:
- Extracted three common components (ImageUpload, TagSelector, DetailPageHeader) for reuse across the application
- Implemented a full-featured whisky detail/creation page with form validation using React Hook Form and Zod
- Added a new "위스키 추가" menu item and corresponding route for whisky creation
- Migrated environment variable handling from shx/cp to sops encryption
Reviewed changes
Copilot reviewed 13 out of 14 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| src/routes/index.tsx | Added new route for whisky creation at /whisky/new |
| src/pages/whisky/WhiskyDetail.tsx | Implemented complete whisky form with validation, image upload, and tag selection |
| src/pages/tasting-tags/TastingTagList.tsx | Built tasting tag management with search, edit, and delete functionality |
| src/data/mock/whisky.mock.ts | Added mock data structures for whisky details, regions, and categories |
| src/config/menu.config.ts | Added "위스키 추가" menu item to whisky management section |
| src/components/ui/popover.tsx | Added Radix UI Popover component |
| src/components/common/TagSelector.tsx | Created reusable tag selection component with search and custom tag input |
| src/components/common/ImageUpload.tsx | Created drag-and-drop image upload component with preview |
| src/components/common/DetailPageHeader.tsx | Created reusable detail page header with back button and actions |
| package.json | Updated environment scripts to use sops encryption and added @radix-ui/react-popover dependency |
| git.environment-variables | Updated submodule commit reference |
| CLAUDE.md | Added project coding guidelines and documentation standards |
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Initialize isLoading to false and set to true when async operation starts Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use shadcn/ui AlertDialog for better UX consistency and styling control Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Document the new sops dependency requirement and environment setup process Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
PR 제목 (Title)
변경 사항 (Changes)
변경 이유 (Reason for Changes)
테스트 방법 (Test Procedure)
참고 사항 (Additional Information)