-
Notifications
You must be signed in to change notification settings - Fork 6
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
[FE] 2.1.0 배포 #624
[FE] 2.1.0 배포 #624
Conversation
* fix: Flex 컴포넌트를 상속받는 로컬 스타일드 컴포넌트 타입 오류 해결 Flex를 상속받은 로컬 스타일드 컴포넌트에 특정 제네릭 prop을 추가하면 Box 컴포넌트까지 타입 검사가 내려간다. 이로 인해 Box 컴포넌트에 Flex 컴포넌트 인터페이스를 찾는 타입 오류가 생겨 이 문제를 Flex와 Box간 상속관계를 끊음으로 해결한다. * refactor: map 인스턴스 전역상태 분리로 각종 hook 리팩토링 * refactor: 지도 타입 추가 * chore: eslint 설정 변경 * refactor: map type 추가 * refactor: mapInstance interface 명 수정 * refactor: 핀 svg 사이즈 일괄 60px로 지정 * refactor: 클러스터 적용으로 인한 map 인터렉션 로직 수정 * fix: drag 디바운스 적용 및 pin 정보 가져오는 로직 오류 수정 * refactor: pinSize 상수화 및 일부 파일 개행 수정 * fix: off 함수 타입 추가 및 클러스터링 중복 요청 오류 해결 * refactor: screen size 에 해당하는 marker만 그리는 로직 이동 * refactor: event 타입 변경 및 sidebar 전역 상태 제거 zoom 일 경우에만 실제 서버에 클러스터 핀 갱신 요청을 보내고 dragEnd 상태에서는 보내지 않도록 한다. sidebarMarkers 는 잠시 사용을 보류한다. * refactor: map 및 markers 의존성 제거 * design: 클러스터된 핀 디자인 변경 * fix: map 드래그 경우 클로저 문제로 인한 핀 갱신 오류 수정 * refactor: 최고 줌인 상태에서 클러스터 핀 상태일 때 infoWindow에 모두 표시하도록 변경 * refactor: 불필요한 import 제거 * refactor: mock 데이터에서 실제 서버 요청으로 변경 * refactor: UI 변경사항 대응
* refactor: 불필요한 인자 제거 * refactor: getDistanceOfPin 훅으로 분리 * refactor: InfoWindow 타입 추가 * refactor: 모아보기 상태에서 클러스터링 및 이벤트 핸들링 적용 * refactor: 사용자에게 노출되는 단어 중 도메인 용어인 토픽을 지도로 변환 * refactor: 혼잡한 dom 구조 및 잘못된 indent 수정 * refactor: 한 토픽에 해당하는 핀이 클러스터링 되었을 땐 무지개색 적용 하지 않기 * refactor: 스크린 사이즈 내 좌표가 아닌 초기 좌표로 모아보기 색 구별하도록 변경 * refactor: 모아보기가 비어있을 때 초기화 하는 로직 함수 분리 * refactor: type 정의 위치 수정
모바일에서 줌인 줌아웃시 지도가 돌아가는 불편함이 있었으며 클러스터링 안정화를 위해 위와 같이 작업한다.
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.
zustand 덕분에 map 인스턴스를 객체로 안넘겨줘도 되서 좋아진것 같네여! 덕분에 클러스터링까지 잘 작동되겠네여 👍 👍
@@ -14,9 +17,34 @@ interface FlexProps extends BoxProps { | |||
$justifyItems?: string; | |||
flex?: string; | |||
$gap?: string; | |||
|
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.
Box 컴포넌트를 다 밀고 여기로 옮겨졌네요?
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.
네넹 그 Flex 인터페이스 타입 못 읽는 에러 때문에 옮겼습니다.
return addedMarkerTypeCoordinates; | ||
}; | ||
|
||
const createElementsInScreenSize = (elementType: ElementType) => { |
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.
👍
let markerType = -1; | ||
let currentTopicId = '-1'; | ||
const createMarkers = () => { | ||
const coordinatesInScreenSize = createElementsInScreenSize('marker'); |
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.
마커 색상 바뀌는 로직까지 분리되서 훨씬 좋네요
pinColors[markerType + 1] | ||
};" >${coordinate.pinName}</div>`, | ||
offset: new Tmapv3.Point(0, -60), | ||
content: getInfoWindowTemplate({ |
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.
html이었을때보다 훨씬 깔끔해졌네여
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.
프로그래밍 언어?
@@ -0,0 +1,26 @@ | |||
import { PIN_SIZE } from '../constants'; | |||
|
|||
const useRealDistanceOfPin = () => { |
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.
클러스터링에 사용되는 부분 훅으로 분리해서 좋네요
} | ||
}; | ||
|
||
const adjustMapDirection = () => { |
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.
이 부분이 어떤역할인지 잘 모르겠네여
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.
맵 회전하거나 기울이고 난 뒤에 다시 지도 조작하면 초기값으로 초기화해주는 역할입니다.
지도가 돌아가고 원래대로 다시 맞추는게 귀찮다는 분들이 많았습니다. 또한 클러스터링이 불안정해지는 이슈도 있어서 위와같이 수정했습니다.
pinName: clusterOrPin.pins[0].name, | ||
latitude: clusterOrPin.latitude, | ||
longitude: clusterOrPin.longitude, | ||
pins: clusterOrPin.pins, | ||
}); | ||
}); | ||
|
||
setCoordinates(newCoordinates); |
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.
클러스터링에도 cordinates context가 쓰이다니 기쁘네여
작업 대상
📄 작업 내용