dm: 수요처 등록 수정 중

This commit is contained in:
2026-05-06 16:29:47 +09:00
parent ab170a2b92
commit a644e80191
8 changed files with 30 additions and 15 deletions
+9 -2
View File
@@ -38,6 +38,7 @@ export default function PostcodeModal({ open, onClose, onSelect }: Props) {
const [total, setTotal] = useState(0);
const [loading, setLoading] = useState(false);
const [searchMessage, setSearchMessage] = useState("");
const [isInputFocused, setIsInputFocused] = useState(false);
const inputRef = useRef<HTMLInputElement | null>(null);
@@ -51,6 +52,7 @@ export default function PostcodeModal({ open, onClose, onSelect }: Props) {
setTotal(0);
setLoading(false);
setSearchMessage("");
setIsInputFocused(false);
}, [open]);
useEffect(() => {
@@ -59,7 +61,7 @@ export default function PostcodeModal({ open, onClose, onSelect }: Props) {
const prevOverflow = document.body.style.overflow;
document.body.style.overflow = "hidden";
setTimeout(() => inputRef.current?.focus(), 50);
setTimeout(() => inputRef.current?.focus(), 50); // 주소입력란에 focus()
const onKeyDown = (e: KeyboardEvent) => {
if (e.key === "Escape") onClose();
@@ -149,7 +151,7 @@ export default function PostcodeModal({ open, onClose, onSelect }: Props) {
};
}, [dq, open]);
const showSuggest = open && q.trim().length >= 1 && suggestions.length > 0;
const showSuggest = open && isInputFocused && q.trim().length >= 1 && suggestions.length > 0;
if (!mounted || !open) return null;
@@ -190,6 +192,10 @@ export default function PostcodeModal({ open, onClose, onSelect }: Props) {
ref={inputRef}
value={q}
onChange={(e) => setQ(e.target.value)}
onFocus={() => setIsInputFocused(true)}
onBlur={() => {
setTimeout(() => setIsInputFocused(false), 100);
}}
placeholder="예) 테헤란로 152-1"
className={[
"w-full rounded-md border px-4 py-3 pr-12 text-[14px] outline-none",
@@ -226,6 +232,7 @@ export default function PostcodeModal({ open, onClose, onSelect }: Props) {
key={s}
type="button"
className="flex w-full items-center justify-between px-4 py-3 text-left text-[14px] hover:bg-slate-50"
onMouseDown={(e) => e.preventDefault()}
onClick={() => {
// ✅ 추천 클릭 → 입력값 채우고 드롭다운 닫기 + 포커스 유지
setQ(s);