Files
vexplor_dev/frontend/components/messenger/MessengerFAB.tsx
syc0123 0fa7b792dd [RAPID-fix] 캡처 이미지 크기 수정: CSS 픽셀 기준 scale factor로 정확한 영역 크롭
[RAPID-fix] 캡처 속도/화질 개선 + 드래그 커서 4방향 화살표로 변경

- 오버레이 마운트 시점에 미리 캡처 시작 → mouseup 즉시 크롭
- scale: max(dpr, 2)로 화질 2배 향상
- 캡처 준비 중 wait 커서 표시
- 메신저 헤더 드래그 커서 cursor-grab → cursor-move (4방향 화살표)

[RAPID-micro] 캡처 버튼 헤더 → 입력창 첨부파일 좌측으로 이동

[RAPID-micro] 채팅방 선택 시 스크롤 하단 이동 수정

[RAPID] 메신저 3가지 수정: 스크롤 버튼, DM 상대방 이름, 캡처 속도 개선

[RAPID-fix] 스크롤/캡처 3가지 수정

- 스크롤 하단 이동: useLayoutEffect → useEffect+rAF (이미지 레이아웃 완료 후 스크롤)
- 스크롤 버튼: 리스너 deps를 room.id로 변경 (room 없을 때 미연결 문제 해결)
- 캡처 속도: domToPng(느림) → getDisplayMedia 네이티브 API(즉시 캡처)

[RAPID-fix] 메신저 3가지 수정

- 최신 메시지 버튼: 스크롤 컨테이너 밖으로 이동, 입력창 위 중앙 고정
- 스크롤 하단: rAF + 600ms 지연 2회 (이미지 비동기 로드 대응)
- 캡처: 버튼 클릭 즉시 오버레이 + domToPng 병렬 실행, mouseup에서 await (font:false 최적화)

[RAPID-micro] 채팅방 열 때 스크롤 점프 제거

[RAPID-fix] 캡처 오버레이 렌더 후 domToPng 시작으로 mousedown 딜레이 개선

[RAPID-fix] 캡처 프리캐싱: 메신저 열릴 때 백그라운드 domToPng → 버튼 클릭 즉시 오버레이

[RAPID-fix] 캡처 worker 추가: 리소스 fetch를 Web Worker로 오프로드

[RAPID-fix] 캡처 방식 변경: domToPng 제거 → getDisplayMedia (즉시 캡처, 프리캐싱 제거)

[RAPID-micro] 화면 캡처 버튼 제거 (Cmd+V 붙여넣기로 대체)
2026-04-01 12:20:42 +09:00

26 lines
904 B
TypeScript

"use client";
import { MessageSquare } from "lucide-react";
import { useMessengerContext } from "@/contexts/MessengerContext";
export function MessengerFAB() {
const { isOpen, openMessenger, unreadCount } = useMessengerContext();
if (isOpen) return null;
return (
<button
onClick={() => openMessenger()}
className="fixed bottom-6 right-6 z-[9999] flex h-14 w-14 items-center justify-center rounded-full bg-primary text-primary-foreground shadow-lg hover:bg-primary/90 transition-colors"
aria-label="메신저 열기"
>
<MessageSquare className="h-6 w-6" />
{unreadCount > 0 && (
<span className="absolute -top-1 -right-1 flex h-5 min-w-5 items-center justify-center rounded-full bg-destructive px-1 text-[11px] font-bold text-destructive-foreground">
{unreadCount > 99 ? "99+" : unreadCount}
</span>
)}
</button>
);
}