diff --git a/src/pages/BulkMessagePage/BulkMessagePage.tsx b/src/pages/BulkMessagePage/BulkMessagePage.tsx
index 4199538..92ab17e 100644
--- a/src/pages/BulkMessagePage/BulkMessagePage.tsx
+++ b/src/pages/BulkMessagePage/BulkMessagePage.tsx
@@ -766,13 +766,6 @@ const BulkMessagePage = () => {
borderRadius: "20px",
},
}}
- SelectProps={{
- sx: {
- "& .MuiOutlinedInput-notchedOutline": {
- borderRadius: "20px",
- },
- },
- }}
MenuProps={{
PaperProps: {
borderRadius: "20px",
diff --git a/src/pages/MessageTemplatePage/MessageTemplatePage.tsx b/src/pages/MessageTemplatePage/MessageTemplatePage.tsx
index 616f96c..03dbcc1 100644
--- a/src/pages/MessageTemplatePage/MessageTemplatePage.tsx
+++ b/src/pages/MessageTemplatePage/MessageTemplatePage.tsx
@@ -12,7 +12,7 @@ import {
Select,
MenuItem,
} from "@mui/material";
-import { toast } from "react-toastify";
+import DeleteConfirmModal from "@components/DeleteConfirm/DeleteConfirmModal";
import PageHeader from "@components/PageHeader/PageHeader";
import apiClient from "@apis/apiClient";
import useUserStore from "@stores/useUserStore";
@@ -55,6 +55,7 @@ const MessageTemplatePage = () => {
{ id: 3, name: "계약 만료", category: "EXPIRED_NOTI", templates: [] },
]);
const [isLoading, setIsLoading] = useState(false);
+ const [openDeleteDialog, setOpenDeleteDialog] = useState(false);
// 변수 목록 정의
const VARIABLE_LIST = ALLOWED_VARIABLES.map((key) => ({ label: key, key }));
@@ -156,6 +157,44 @@ const MessageTemplatePage = () => {
}
};
+ // 템플릿 삭제 확인 다이얼로그 열기
+ const handleOpenDeleteDialog = () => {
+ setOpenDeleteDialog(true);
+ };
+
+ // 템플릿 삭제 기능
+ const handleDeleteTemplate = async () => {
+ if (!selectedTemplate) return;
+
+ try {
+ setIsLoading(true);
+ const response = await apiClient.delete(
+ `/templates/${selectedTemplate.uid}`
+ );
+
+ if (response.data.success) {
+ fetchTemplates();
+ handleAddNewTemplate(); // 폼 초기화
+ setOpenDeleteDialog(false);
+ showToast({
+ message: "템플릿을 삭제했습니다.",
+ type: "success",
+ });
+ }
+ } catch (error) {
+ console.error("Error deleting template:", error);
+ const err = error as { response?: { data?: { message?: string } } };
+ showToast({
+ message:
+ err?.response?.data?.message ||
+ "템플릿 삭제 중 오류가 발생했습니다. 다시 시도해주세요.",
+ type: "error",
+ });
+ } finally {
+ setIsLoading(false);
+ }
+ };
+
// Move fetchTemplates outside useEffect so it can be reused
const fetchTemplates = async () => {
try {
@@ -604,7 +643,7 @@ const MessageTemplatePage = () => {
sx={{
display: "flex",
justifyContent: "flex-end",
- gap: "28px",
+ gap: "12px",
mt: 2,
}}
>
@@ -624,6 +663,24 @@ const MessageTemplatePage = () => {
취소
)}
+ {/* 일반 템플릿이고 선택된 템플릿이 있을 때만 삭제 버튼 표시 */}
+ {selectedTemplate && selectedTemplate.category === "GENERAL" && (
+
+ )}