공고 목록 탭에 📅 캘린더 토글 버튼 추가.
캘린더 모드: 월간 그리드, 접수 시작일 기준 도트 표시 (상태별 색상).
날짜 클릭 시 해당일 공고 목록 패널 표시, 항목 클릭 시 상세 뷰로 전환.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- AnnouncementDetail: 5축(지역/유형/면적/가격/자격) progress bar 추가
- MatchesTab: 카드마다 미니 5축 비례 바 추가 (색상 구분)
- ProfileTab: 마운트 시 dashboard도 함께 fetch → pass_count 취득
- NotificationSettings: passCount prop → "현재 N건 대상" 인라인 표시
- Subscription.css: .ns-pass-count 스타일 추가
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
preferred_districts 문서 형태를 백엔드 실제 구조(tier-keyed Dict[str, List[str]])로 수정.
onDragLeave가 자식 요소로 커서 이동 시 flicker 발생하던 문제 수정(relatedTarget 체크).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
LogoLoop 무한 캐러셀이 항목 수가 적은 카테고리에서 반복돼 시각적으로 산만한
문제. 카테고리별로 단순 flex-wrap 줄로 정적 표시. SkillLogoNode와 fallback
로직은 유지. LogoLoop 컴포넌트 자체는 다른 페이지에서 재사용 여지를 위해 보존.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
LogoLoop 컴포넌트를 추가해 카테고리별(언어/프레임워크/인프라/도구) 4줄
가로 스크롤 캐러셀로 skill 로고를 표시. simpleicons CDN을 사용하며
매칭 안 되는 항목(APScheduler, KIS Open API)은 텍스트 칩으로 자동 fallback.
편집 모드에서는 기존 칩 UI를 유지해 편집·삭제 가능.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Home → Portfolio → Blog → Travel → Lotto → Stock → Music → Realestate
→ Blog Lab → Todo → Agent Office → Lab 순으로 navLinks 재정렬.
BottomNav도 동일 source를 사용해 모바일 더보기 패널까지 함께 반영됨.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
PUT /api/profile/profile 등 인증 헤더를 함께 보내는 요청에서 Content-Type이
빠져 FastAPI가 body를 JSON으로 파싱하지 못해 422를 반환하던 문제. spread 순서를
뒤집어 options 펼친 뒤 headers를 마지막에 머지하도록 수정.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- /api/profile/public에서 프로필·기술스택 동적 로드
- 서비스 미가동 시 하드코딩 폴백 유지
- "프로필 수정" → "포트폴리오 보기" Link로 교체
- 타임라인 섹션 제거 (포트폴리오 페이지에서 관리)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 3탭 구조: 프로필&경력, 프로젝트, 자기소개
- 비밀번호 인증 → 편집 모드
- 클립보드 복사, PDF 내보내기 (window.print)
- 사이버펑크 테마 CSS, 모바일 반응형
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 카드 액션 버튼 36px→44px + 아이콘+텍스트 라벨 (모바일)
- 날짜 필터/입력 터치 타겟 36px min-height로 확대
- 빈 상태 메시지 모바일 적절하게 변경 ("드래그하여 이동"→"아직 항목이 없습니다")
- 완료 비우기 MobileSheet 확인 다이얼로그 (모바일)
- 완료 탭 내 "비우기" 버튼 추가
- SwipeableView 활성 탭 하단 인디케이터 + 44px 높이
- 폼 라벨 14px, 입력 16px (iOS 줌 방지)
- 모바일 컬럼/패널 배경·보더 제거로 공간 절약
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Pathfinder.setBlocked: remove blocked.clear() to preserve wall tiles set by setWalls()
- Pathfinder.findPath: fix dead-code goal exception — remove redundant isBlocked check, keep goal-tile exception in single guard
- OfficeRenderer: track mouseDownPos/_wasDragging; expose wasDragging() method for click-after-drag suppression
- OfficeRenderer._render: track _lastDpr to detect monitor DPR changes; use setTransform instead of scale to avoid accumulation
- TileMap.render: use clientWidth/clientHeight for viewport culling (CSS space, not buffer pixels)
- TaskTab: wrap JSON.parse in try/catch to prevent crash on malformed result_data
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
지역 변경 직후뿐 아니라, 앨범의 지역이 좌표 미지정 커스텀
지역이면 헤더에 핀 버튼을 상시 노출. 기존 좌표가 있으면
RegionPinPicker에 초기값으로 전달.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
MiniMap에 Point geometry 핀 마커 렌더링, 앨범 지역 변경 후
"위치 지정" 버튼으로 RegionPinPicker 모달을 열어 좌표 저장.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>