feat: 버튼 컴포넌트의 성공 메시지 표시 로직 개선

- 성공 메시지를 표시하는 액션을 'save', 'delete', 'submit'으로 제한하여 불필요한 토스트 메시지를 방지하도록 수정하였습니다.
- 조용히 처리되는 액션에 대한 주석을 업데이트하여 코드 가독성을 향상시켰습니다.
This commit is contained in:
kjs 2026-02-04 09:40:02 +09:00
parent b2cb7922c2
commit dff27c522f
2 changed files with 9 additions and 14 deletions

View File

@ -641,19 +641,17 @@ export const ButtonPrimaryComponent: React.FC<ButtonPrimaryComponentProps> = ({
} }
// 성공한 경우에만 성공 토스트 표시 // 성공한 경우에만 성공 토스트 표시
// edit, modal, navigate, excel_upload, barcode_scan 액션은 조용히 처리 // save, delete, submit 액션에서만 성공 메시지 표시
// (UI 전환만 하거나 모달 내부에서 자체적으로 메시지 표시) // 그 외 액션은 조용히 처리 (불필요한 "완료되었습니다" 토스트 방지)
const silentSuccessActions = ["edit", "modal", "navigate", "excel_upload", "barcode_scan"]; const successToastActions = ["save", "delete", "submit"];
if (!silentSuccessActions.includes(actionConfig.type)) { if (successToastActions.includes(actionConfig.type)) {
// 기본 성공 메시지 결정 // 기본 성공 메시지 결정
const defaultSuccessMessage = const defaultSuccessMessage =
actionConfig.type === "save" actionConfig.type === "save"
? "저장되었습니다." ? "저장되었습니다."
: actionConfig.type === "delete" : actionConfig.type === "delete"
? "삭제되었습니다." ? "삭제되었습니다."
: actionConfig.type === "submit" : "제출되었습니다.";
? "제출되었습니다."
: "완료되었습니다.";
// 커스텀 메시지 사용 조건: // 커스텀 메시지 사용 조건:
// 1. 커스텀 메시지가 있고 // 1. 커스텀 메시지가 있고

View File

@ -3063,10 +3063,8 @@ export class ButtonActionExecutor {
window.dispatchEvent(modalEvent); window.dispatchEvent(modalEvent);
// 성공 메시지 (autoDetectDataSource 모드에서만) // 모달 열기는 UI 전환이므로 성공 토스트를 표시하지 않음
if (autoDetectDataSource && config.successMessage) { // (저장 등 실제 액션 완료 시에만 토스트 표시)
toast.success(config.successMessage);
}
return true; return true;
} }
@ -3255,8 +3253,7 @@ export class ButtonActionExecutor {
window.dispatchEvent(modalEvent); window.dispatchEvent(modalEvent);
// 성공 메시지 (간단하게) // 모달 열기는 UI 전환이므로 성공 토스트를 표시하지 않음
toast.success(config.successMessage || "다음 단계로 진행합니다.");
return true; return true;
} else { } else {
@ -7122,7 +7119,7 @@ export const DEFAULT_BUTTON_ACTIONS: Record<ButtonActionType, Partial<ButtonActi
modalSize: "md", modalSize: "md",
passSelectedData: true, passSelectedData: true,
autoDetectDataSource: true, autoDetectDataSource: true,
successMessage: "다음 단계로 진행합니다.", // 모달 열기는 UI 전환이므로 successMessage 제거
}, },
modal: { modal: {
type: "modal", type: "modal",