From a346304c13b600c18bbea3f9ce21b1399b1310e9 Mon Sep 17 00:00:00 2001
From: dujinkim <dujin.kim@dtsolution.co.kr>
Date: Mon, 8 Dec 2025 10:06:45 +0000
Subject: (최겸) 환경변수 변경
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 components/signup/join-form.tsx | 49 ++++++++++++++++++++++++++++++++++++++---
 1 file changed, 46 insertions(+), 3 deletions(-)

(limited to 'components/signup/join-form.tsx')

diff --git a/components/signup/join-form.tsx b/components/signup/join-form.tsx
index 6885279a..c6281b24 100644
--- a/components/signup/join-form.tsx
+++ b/components/signup/join-form.tsx
@@ -910,6 +910,32 @@ function CompleteVendorForm({
 }: VendorStepProps) {
   const [isSubmitting, setIsSubmitting] = useState(false);
   const { toast } = useToast();
+  const effectiveCountry = data.country || accountData.country || "";
+  const isKR = effectiveCountry === "KR";
+
+  useEffect(() => {
+    const handleMessage = (event: MessageEvent) => {
+      if (!event.data || event.data.type !== "JUSO_SELECTED") return;
+      const { zipNo, roadAddrPart1, roadAddrPart2, addrDetail } = event.data.payload || {};
+      const combinedAddress = [roadAddrPart1, roadAddrPart2].filter(Boolean).join(" ").trim();
+      onChange(prev => ({
+        ...prev,
+        postalCode: zipNo || prev.postalCode,
+        address: combinedAddress || prev.address,
+        addressDetail: addrDetail || prev.addressDetail,
+      }));
+    };
+    window.addEventListener("message", handleMessage);
+    return () => window.removeEventListener("message", handleMessage);
+  }, [onChange]);
+
+  const handleJusoSearch = () => {
+    window.open(
+      "/api/juso",
+      "jusoSearch",
+      "width=570,height=420,scrollbars=yes,resizable=yes"
+    );
+  };
 
   // 담당자 관리 함수들
   const addContact = () => {
@@ -1259,13 +1285,28 @@ function CompleteVendorForm({
 
           {/* 주소 */}
           <div>
-            <label className="block text-sm font-medium mb-1">
-              {t('address')} <span className="text-red-500">*</span>
-            </label>
+            <div className="flex items-center justify-between gap-2 mb-1">
+              <label className="block text-sm font-medium">
+                {t('address')} <span className="text-red-500">*</span>
+              </label>
+              {isKR && (
+                <Button
+                  type="button"
+                  variant="secondary"
+                  size="sm"
+                  onClick={handleJusoSearch}
+                  disabled={isSubmitting}
+                >
+                  주소 검색
+                </Button>
+              )}
+            </div>
             <Input
               value={data.address}
               onChange={(e) => handleInputChange('address', e.target.value)}
               disabled={isSubmitting}
+              readOnly={isKR}
+              className={cn(isKR && "bg-muted text-muted-foreground")}
             />
           </div>
 
@@ -1291,6 +1332,8 @@ function CompleteVendorForm({
               value={data.postalCode}
               onChange={(e) => handleInputChange('postalCode', e.target.value)}
               disabled={isSubmitting}
+              readOnly={isKR}
+              className={cn(isKR && "bg-muted text-muted-foreground")}
               placeholder="우편번호를 입력해주세요"
             />
           </div>
-- 
cgit v1.2.3

