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 (
+
+ );
+};