하수관로 편집 세션 UI 및 토글 동작 개선

This commit is contained in:
kiminchan
2026-07-15 15:54:15 +09:00
parent d4c5787360
commit d9febf8010
4 changed files with 36 additions and 3 deletions
+8 -3
View File
@@ -2703,7 +2703,7 @@ const Map = () => {
() => gisEdit.changes.filter(isVisibleGisEditSessionChange),
[gisEdit.changes],
);
const shouldShowGisEditSession = gisEdit.isEditMode || gisEditVisibleSessionChanges.length > 0;
const shouldShowGisEditSession = gisEdit.isEditMode;
const isGisEditSessionInlineVisible = shouldShowGisEditSession && gisEditSessionView === "inline";
const gisEditSessionSnapshot = useMemo<GisEditSessionSnapshot>(() => ({
isEditMode: gisEdit.isEditMode,
@@ -3022,7 +3022,7 @@ const Map = () => {
}, [gisEdit.isEditMode, gisEditDetailChange, gisEditDetailChangeId]);
useEffect(() => {
if (!(gisEdit.isEditMode || gisEditVisibleSessionChanges.length > 0)) return;
if (!gisEdit.isEditMode) return;
syncGisEditSessionPopup();
}, [gisEdit.isEditMode, gisEditVisibleSessionChanges.length, syncGisEditSessionPopup]);
@@ -5883,9 +5883,14 @@ const Map = () => {
// GIS 편집 진입 시에는 화면 안 인라인 세션을 우선 표시하고, 윈도우 팝업은 사용자가 명시적으로 연다.
const handleToggleGisEdit = useCallback(() => {
if (gisEdit.isEditMode) {
closeGisEditSessionPopup();
} else {
setGisEditSessionView("inline");
}
gisEdit.toggleEditMode();
setIsOpen(false);
}, [gisEdit]);
}, [closeGisEditSessionPopup, gisEdit]);
const handleOpenGisEditSessionPopup = useCallback(() => {
const popup = openGisEditSessionPopup();
@@ -232,3 +232,10 @@
- 세션 확장과 팝업 전환에도 도구바 좌표가 유지되는지 확인한다.
4. 팝업 왕복
- 팝업 열기 시 인라인 숨김, `화면에서 보기`와 직접 닫기 시 인라인 복원을 재확인한다.
## 11. 2026-07-15 GIS 편집 토글 종료 회귀 검증
1. 변경분이 있는 상태에서 분석도구 `GIS 편집`을 두 번째 클릭한다.
2. 하단 GIS 편집 바와 인라인 편집 세션이 함께 사라지는지 확인한다.
3. 팝업 뷰 상태에서 GIS 편집을 끄면 팝업도 닫히는지 확인한다.
4. GIS 편집을 다시 켜면 기존 변경분이 인라인 세션에 복원되는지 확인한다.
@@ -746,3 +746,16 @@
- 인라인·윈도우 팝업 상호 전환
- 변경 카드 제목/선택 표시 한 줄 노출 및 안내 문구 가독성
- 결론: SFR-012-003 프론트 유지보수 수동 검증 완료.
### 2.30 2026-07-15 GIS 편집 토글 종료 보정 결과
- 인라인 세션 표시와 팝업 sync가 `gisEdit.isEditMode`를 기준으로 동작하는 것을 정적으로 확인했다.
- 편집 종료 시 팝업 닫기, 재진입 시 inline 복원 처리를 확인했다.
- 변경분 배열을 비우지 않아 재진입 복원 계약이 유지된다.
- `git diff --check` 통과. 실제 지도에서 11절 시나리오 수동 검증이 필요하다.
### 2.31 2026-07-15 GIS 편집 토글 종료 사용자 수동 검증 완료
- 사용자가 실제 지도에서 GIS 편집 두 번째 클릭 시 하단 도구바와 인라인 세션이 함께 사라지는 것을 확인했다.
- 다시 GIS 편집 진입 시 기존 변경분과 인라인 세션이 복원되는 것을 확인했다.
- 결론: 추가 회귀 보정까지 사용자 수동 검증 완료.
@@ -480,3 +480,11 @@
- `getChangeSummary()`의 완료형 문구를 짧은 행동 안내형으로 변경했다.
- 추가 위치 확인, 이동 위치 조정, 점 이동/선분 추가, 삭제 대상 확인, 상세정보 확인을 한 줄 길이로 제공한다.
- 카드 레이아웃과 원본 `change.summary` 데이터는 변경하지 않았다.
### 4.31 2026-07-15 GIS 편집 종료 시 세션 UI 동시 숨김
- `map/page.tsx`의 `shouldShowGisEditSession`을 변경분 존재 여부가 아닌 `gisEdit.isEditMode`만 사용하도록 변경했다.
- 편집 종료 시 `closeGisEditSessionPopup()`을 호출해 열린 세션 팝업도 닫는다.
- 편집 재진입 시 `gisEditSessionView`를 `inline`으로 복원한다.
- 팝업 sync effect도 편집 모드가 꺼져 있으면 실행하지 않는다.
- `useGisEdit`의 변경분 배열은 유지하므로 다시 진입하면 기존 변경 카드가 복원된다.