- 최신 메시지 버튼: 스크롤 컨테이너 밖으로 이동, 입력창 위 중앙 고정
- 스크롤 하단: rAF + 600ms 지연 2회 (이미지 비동기 로드 대응)
- 캡처: 버튼 클릭 즉시 오버레이 + domToPng 병렬 실행, mouseup에서 await (font:false 최적화)
- modern-screenshot 패키지 추가
- ScreenCapture: 전체화면 오버레이 + 드래그 영역 선택 + DOM 캡처
- MessengerModal: 캡처 버튼(Scissors) 추가, 캡처 중 모달 숨김
- MessageInput: forwardRef로 addFiles 메서드 외부 노출
- ChatPanel: messageInputRef prop 추가 및 전달
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- socketManager.ts 모듈 생성 (io 전역 공유)
- sendMessage 컨트롤러에서 io.to(room).emit('new_message') broadcast
- 상대방 말풍선 너비 고정 수정 (items-start 추가)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- 방 생성 후 자동 입장 + 커서 포커스
- DM 헤더 상대방 이름, 그룹 "이름1, 이름2 외 N명" 표시
- 채팅방 이름 인라인 수정 기능 추가
- Socket.IO join_rooms 누락 수정 → 실시간 메시지 수신 정상화
- new_message 이벤트 수신 시 React Query 캐시 무효화
- 토스트 알림 stale closure 수정 (ref 패턴 적용)
- 타이핑 이벤트명 백엔드 일치 (user_typing/user_stop_typing)
- 메시지 순서 역전 수정 (.reverse())
- unread queryKey 불일치 수정
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- useRooms/useMessages/useCompanyUsers 훅에서 DB 응답 camelCase 변환
- Socket.IO 기본 연결 URL 3001 → 8080 수정
- runMigration.ts 마이그레이션 파일 경로 수정 (../../ → ../../../)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- IMAP 계정 등록/수정/삭제/연결테스트
- SSE 스트리밍으로 메일 목록 로드 (폴더별 지원)
- 메일 상세 조회, 읽음 처리, 삭제(휴지통 이동), 폴더 이동
- 첨부파일 다운로드 (ReadableStream 진행바)
- SMTP 발송, 답장, 전달
- imapConnectionPool, mailCache 서비스
- encryptionService Node 22+ 호환 수정
- authMiddleware query token 지원 추가
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Update the logic for retrieving and processing customer item prices.
- Replace the previous price mapping with a grouping mechanism based on item_id and today's date.
- Enhance the handling of customer item codes and names to ensure proper aggregation.
- Improve overall readability and maintainability of the code.
This commit enhances the functionality of the customer management page by ensuring accurate price data is displayed based on the current date, improving user experience in managing customer items.
- receivingController: 헤더-디테일 JOIN 구조로 변경, 검색/조회 로직 개선
- materialStatusController: work_instruction 테이블 기반으로 쿼리 수정
- analyticsReportController: 구매 리포트 company_code 필터링 로직 개선
- material-status 페이지: COMPANY_29/COMPANY_7 프론트엔드 업데이트
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add pagination state management for source data in OutboundPage and ReceivingPage.
- Introduce pagination controls with navigation buttons for better user experience.
- Update data loading functions to accommodate pagination parameters.
- Enhance SalesItemPage to include isDefault property in category options.
This commit improves the usability of logistics and sales item management by allowing users to navigate through large sets of data more efficiently.
- 부서 등록 시 부서코드 자동 생성 로직 수정
- 고객 관리 페이지에서 거래처 담당자 및 사내 담당자 컬럼 추가
- 고객 관리 페이지에서 사원 목록 로드 기능 추가
- 다중 선택 기능을 위한 포털 구현 및 외부 클릭 시 저장 기능 추가
- 테이블 컴포넌트에서 다중 선택 컬럼 자동 감지 기능 추가
이 커밋은 부서 및 고객 관리 기능을 개선하고, 사용자 경험을 향상시키기 위한 여러 변경 사항을 포함합니다.
- 부서 등록 시 자동 생성 부서코드 기능 추가
- 사용자 관리에서 부서 필수 입력 검증 추가
- 품목 정보 페이지에서 입력 필드에 placeholder 추가
- 고객 관리 페이지에서 원본 카테고리 코드 보관 및 빈 문자열을 null로 변환하는 로직 추가
- 판매 주문 페이지에서 품목 검색 필터에 관리품목 선택 기능 추가
이 커밋은 부서 및 사용자 관리 기능을 개선하고, 사용자 경험을 향상시키기 위한 여러 변경 사항을 포함합니다.
- Introduced multiple new pages for design management, including change management, design requests, my work, project management, and task management.
- Added session files to track design sessions with relevant details such as session ID, end time, and reason.
- Enhanced the overall structure and organization of the design management features, improving user experience and functionality.
This commit expands the design management capabilities within the application, allowing for better tracking and handling of design-related tasks.
- GroupCompleteButton: !isGroupCompleted 조건 제거 → 모든 그룹에서 항상 표시
- 이미 완료된 그룹에서는 "작업완료됨" 완료 표시 렌더링
- isGroupCompleted prop 추가
- GroupTimerHeader: isGroupStarted 상태(진행 중/일시정지)에 완료 버튼 추가
- GlossyButton green variant, onTimerAction("complete") 호출
- GroupCompleteButton onComplete: 그룹 완료 처리 후 다음 그룹(같은 phase 또는 다음 phase)으로 자동 이동
- 사이드바 phase 라벨 옆 숫자: 완료/전체 체크리스트 수 → 그룹 개수 (n) 형태로 변경
- 사이드바 각 그룹 항목 옆에 해당 그룹의 체크리스트 완료/전체 수 표시 (g.completed/g.total)