임동욱 임동욱 08-25
fix: 금칙어 엑셀등록 팝업이 잘리던 문제
세 가지가 겹쳤다. 파일업로드 칸이 `flex-shrink: 0`이라 좁은 그릇에서 버티고,
모달 안 form이 `align-items: flex-start`에 걸려 폭을 안 채우고, 모달은
`overflow-x: hidden`이라 넘친 만큼 그대로 잘렸다. 400px 모달에서 191px가 잘렸다.

칸은 늘어나지는 않고 줄어들기만 하게 두어 넓은 자리에서는 시안의 320px를 지킨다.
팝업은 md로 올려 그 320px가 그대로 들어간다.

Co-Authored-By: Claude Opus 5 
@bbf16ab74a95d85bbbe2bb44ba74822768b8ff58
@fox/styles/_fox-file-upload.scss
--- @fox/styles/_fox-file-upload.scss
+++ @fox/styles/_fox-file-upload.scss
@@ -56,9 +56,11 @@
     inline-size: 100%;
   }
 
-  // 폭은 prop이 인라인 스타일로 정한다.
+  // 폭은 prop이 인라인 스타일로 정한다. 안 주면 남는 폭을 채우고, 자리가 모자라면 줄어든다
+  // — `flex-shrink: 0`이면 좁은 그릇(모달 등)에서 칸이 그대로 버텨 넘친 만큼 잘린다.
   &__field {
-    flex-shrink: 0;
+    flex-shrink: 1;
+    min-inline-size: 0;
   }
 
 
@fox/styles/_fox-modal.scss
--- @fox/styles/_fox-modal.scss
+++ @fox/styles/_fox-modal.scss
@@ -145,6 +145,13 @@
       inline-size: 100%;
       block-size: auto;
     }
+
+    // form은 내용이 아니라 그릇이다. 폭을 안 잡아 주면 `align-items: flex-start`에 걸려
+    // 자기 내용만큼만 벌어지고, 그 안의 입력칸이 모달을 넘어 잘린다. 폭만 정한다 —
+    // 안쪽 배치는 화면이 자기 모듈로 정하고 있어 여기서 건드리면 그쪽을 덮는다.
+    > form {
+      inline-size: 100%;
+    }
   }
 
   // ── 아래쪽 ────────────────────────────────────────────────────────────────
 
app/(protected)/(basic)/system/banned-words/_components/banned-word-excel-modal.module.scss (added)
+++ app/(protected)/(basic)/system/banned-words/_components/banned-word-excel-modal.module.scss
@@ -0,0 +1,12 @@
+@use "@fox/styles/abstracts" as fox;
+
+// 안내 → 양식 내려받기 → 파일선택 → (오류) 순으로 쌓는다. 모달이 폭만 잡아 주므로
+// 세로 배치는 여기서 정한다.
+.form {
+  display: flex;
+  flex-direction: column;
+  align-items: flex-start;
+  gap: fox.gap(5);
+  inline-size: 100%;
+  min-inline-size: 0;
+}
app/(protected)/(basic)/system/banned-words/_components/banned-word-excel-modal.tsx
--- app/(protected)/(basic)/system/banned-words/_components/banned-word-excel-modal.tsx
+++ app/(protected)/(basic)/system/banned-words/_components/banned-word-excel-modal.tsx
@@ -9,6 +9,7 @@
 import { useFeedback } from '@/app/_hooks/use-feedback';
 import { BANNED_WORD_EXCEL_TEMPLATE_PATH } from '@/lib/domain/banned-word-query';
 import { uploadBannedWordExcelAction } from '../_actions';
+import styles from './banned-word-excel-modal.module.scss';
 
 interface BannedWordExcelModalProps {
   onClose: () => void;
@@ -51,7 +52,7 @@
   return (
     <FoxModal
       open
-      size="sm"
+      size="md"
       title="엑셀등록"
       onClose={onClose}
       actions={
@@ -67,7 +68,7 @@
         </>
       }
     >
-      <form ref={formRef}>
+      <form ref={formRef} className={styles.form}>
         <FoxAlert
           type="information"
           message="양식을 내려받아 금칙어명을 채운 뒤 올려 주세요. 한 줄이라도 형식이 맞지 않으면 전체가 등록되지 않습니다."
Add a comment
List