-
Notifications
You must be signed in to change notification settings - Fork 3
[#121] feat(window): 윈도우 최소화/최대화 기능 추가 #146
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
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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 implements window minimize, maximize, and restore functionality for the window management system, including integration with the taskbar for restoring minimized windows.
- New window state management (minimized, maximized, restore positions) added to the window store
- Window variants system for state-based UI styling with responsive behavior
- TitleBar buttons now functional with proper event handling and accessibility labels
Reviewed Changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| src/types/database.types.ts | Removes unused graphql_public schema definitions (appears to be unrelated cleanup) |
| src/stores/useWindowStore.ts | Adds minimize/maximize/restore state management and associated action methods |
| src/os/Window/variants.ts | New file defining CSS variants for window states (minimized, maximized, active, centered) |
| src/os/Window/Window.tsx | Integrates minimize/maximize functionality with proper state handling and drag behavior |
| src/os/TitleBar/TitleBar.tsx | Implements event handlers for minimize/maximize/close buttons with proper event propagation control |
| src/os/Taskbar/Taskbar.tsx | Adds logic to restore minimized windows when clicking taskbar tabs and updates focus state display |
Comments suppressed due to low confidence (1)
src/stores/useWindowStore.ts:39
- The
clearWindowsByCategoryhelper function deletes windows but doesn't clean up the associated state inminimizedWindows,maximizedWindows, andrestorePositions. This could lead to memory leaks and stale state when windows of the same category are reopened. Consider cleaning up these related states for each deleted window ID, similar to what's done in thecloseWindowmethod.
const clearWindowsByCategory = (
windows: Partial<Record<WindowAppId, WindowInstance>>,
category: WindowCategory
) => {
const idsToDelete = Object.values(windows)
.filter((window) => window?.category === category)
.map((window) => window.id);
idsToDelete.forEach((id) => {
if (id) {
delete windows[id];
}
});
};
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- 최소화/최대화/복원 기능 구현 - Taskbar에서 최소화된 윈도우 복원 기능 추가 - TitleBar 버튼 로직 업데이트 - Window 레이아웃 및 상태 반영 스타일 구현 - useWindowStore에 상태 및 동작 관련 새로운 slice 추가 - windowVariants로 상태 기반 UI 스타일링 지원
2f64640 to
06036ba
Compare
RumPumpumpum
left a comment
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.
구현확인했습니다.
고생하셨습니다~
📖 개요
윈도우 최소화/최대화 기능 추가
✅ 관련 이슈
🛠️ 상세 작업 내용
📸 스크린샷
N/A
N/A
👥 리뷰 확인 사항
N/A