diff --git a/apps/sn/src/features/dredging/ui/dredging-detail-popup-page.tsx b/apps/sn/src/features/dredging/ui/dredging-detail-popup-page.tsx index 9bad04c3a..73558eab8 100644 --- a/apps/sn/src/features/dredging/ui/dredging-detail-popup-page.tsx +++ b/apps/sn/src/features/dredging/ui/dredging-detail-popup-page.tsx @@ -1,4 +1,5 @@ "use client"; +import { DredgingRegistrationModeSelector } from "./dredging-registration-mode-selector"; import { DREDGING_EXTERNAL_MODE } from "../model/disclosure"; import dynamic from "next/dynamic"; @@ -607,34 +608,16 @@ const DredgingDetailPopupPage = ({ className="card card-border !m-0 flex !min-h-[40rem] flex-1 flex-col overflow-hidden !p-0" data-testid="dredging-detail-photo-panel" > -
+

준설 사진

{editable ? ( - <> - - - + void changeRegistrationMode(mode)} + testIdPrefix="dredging-edit" + /> ) : null} {totalPhotoCount}/5장 diff --git a/apps/sn/src/features/dredging/ui/dredging-registration-body.tsx b/apps/sn/src/features/dredging/ui/dredging-registration-body.tsx index fa6956697..f970b5ce0 100644 --- a/apps/sn/src/features/dredging/ui/dredging-registration-body.tsx +++ b/apps/sn/src/features/dredging/ui/dredging-registration-body.tsx @@ -1,5 +1,6 @@ "use client"; +import { DredgingRegistrationModeSelector } from "./dredging-registration-mode-selector"; import { DREDGING_EXTERNAL_MODE } from "../model/disclosure"; import type { ComponentType } from "react"; import { FileUpload } from "@common/business_components/ui/file-upload"; @@ -239,38 +240,12 @@ export const DredgingRegistrationBody = ({ 촬영일과 GPS 정보를 확인합니다.

-
- - -
+ void changeRegistrationMode(activeGroup.id, mode)} + testIdPrefix="dredging-register" + />
{activeGroup.registrationMode === "PHOTO" ? ( diff --git a/apps/sn/src/features/dredging/ui/dredging-registration-mode-selector.tsx b/apps/sn/src/features/dredging/ui/dredging-registration-mode-selector.tsx new file mode 100644 index 000000000..758fff42c --- /dev/null +++ b/apps/sn/src/features/dredging/ui/dredging-registration-mode-selector.tsx @@ -0,0 +1,38 @@ +"use client"; + +import { useId } from "react"; +import type { DredgingRegistrationMode } from "../model/types"; + +type Props = { + value: DredgingRegistrationMode; + labels: Record; + onChange: (mode: DredgingRegistrationMode) => void; + testIdPrefix: string; +}; + +/** 업로드 실행 버튼과 구분되는 등록 방식 선택. 기존 전환 처리는 호출 화면이 담당한다. */ +export const DredgingRegistrationModeSelector = ({ + value, labels, onChange, testIdPrefix, +}: Props) => { + const name = useId(); + + return ( +
+ 등록 방식 + {(["PHOTO", "MANUAL"] as const).map((mode) => ( + + ))} +
+ ); +};