PageSourceSearch

https://app.nexport.ai/assets/Upload-BWYuB4mb.js

js nexport.ai collected 2026-10-05 13:54:35 UTC 5,281 bytes, 1 lines download raw bytes

1import{u as w,g as k,r,j as e}from"./index--1RmYx0j.js";import{u as S}from"./api-BFn9oq1l.js";function _(){const b=w(),[j]=k(),p=j.get("caseId")||void 0,m=r.useRef(null),[a,N]=r.useState([]),[l,n]=r.useState(""),[d,U]=r.useState(""),[x,o]=r.useState(null),[g,i]=r.useState(null),u=s=>{var h;const t=Array.from(s??[]).filter(f=>!/(^|\/)(\.DS_Store|Thumbs\.db)$/.test(f.webkitRelativePath||f.name));N(t);const c=(h=t[0])==null?void 0:h.webkitRelativePath;c&&!l?n(c.split("/")[0]):t.length===1&&!l&&n(t[0].name.replace(/\.[^.]+$/,""))},v=async()=>{if(!a.length)return i("올릴 파일이 없습니다. 폴더나 압축 파일을 고르세요.");i(null),o("올리는 중 0/"+a.length);try{const s=await S(a,l,(t,c)=>o(`올리는 중 ${t}/${c}`),p,d?Number(d):void 0);b(`/cases/${s}`)}catch(s){i(s instanceof Error?s.message:String(s)),o(null)}},y=a.reduce((s,t)=>s+t.size,0);return e.jsxs("div",{className:"mx-auto max-w-2xl space-y-4","data-sc-src":"src/dream/pages/Upload.tsx:55",children:[e.jsx("h1",{className:"text-xl font-semibold tracking-tight","data-sc-src":"src/dream/pages/Upload.tsx:56",children:p?"이 건에 서류 추가":"업체 서류 폴더 올리기"}),e.jsxs("p",{className:"text-sm text-slate-500","data-sc-src":"src/dream/pages/Upload.tsx:59",children:["포털에서 내려받은 ",e.jsx("b",{"data-sc-src":"src/dream/pages/Upload.tsx:60",children:"업체 한 곳의 폴더"}),"를 통째로 올립니다. 압축 안의 압축까지 서버가 끝까지 풉니다. 올라간 파일은 압축을 풀어 보관합니다. 서류 종류 판정과 대조는 ê±´ 화면의 «분석 시작» 한 번으로 함께 합니다."]}),e.jsxs("div",{className:"space-y-4 rounded-2xl bg-white p-5 ring-1 ring-slate-200/80 shadow-[0_1px_2px_rgba(15,23,42,0.04)]","data-sc-src":"src/dream/pages/Upload.tsx:64",children:[e.jsxs("div",{className:"flex flex-wrap gap-2","data-sc-src":"src/dream/pages/Upload.tsx:65",children:[e.jsx("button",{type:"button",className:"rounded-lg px-3 py-2 text-sm font-medium text-slate-700 ring-1 ring-slate-200 ring-inset transition-colors hover:bg-slate-50",onClick:()=>{var s;return(s=m.current)==null?void 0:s.click()},"data-sc-src":"src/dream/pages/Upload.tsx:66",children:"폴더 선택"}),e.jsxs("label",{className:"cursor-pointer rounded-lg px-3 py-2 text-sm font-medium text-slate-700 ring-1 ring-slate-200 ring-inset transition-colors hover:bg-slate-50","data-sc-src":"src/dream/pages/Upload.tsx:73",children:["압축·파일 선택",e.jsx("input",{type:"file",multiple:!0,className:"hidden",onChange:s=>u(s.target.files),"data-sc-src":"src/dream/pages/Upload.tsx:75"})]}),e.jsx("input",{ref:s=>{m.current=s,s&&s.setAttribute("webkitdirectory","")},type:"file",multiple:!0,className:"hidden",onChange:s=>u(s.target.files),"data-sc-src":"src/dream/pages/Upload.tsx:83"})]}),e.jsxs("label",{className:"block text-sm font-medium text-slate-700","data-sc-src":"src/dream/pages/Upload.tsx:94",children:["ê±´ 이름(폴더명)",e.jsx("input",{className:"mt-1.5 w-full rounded-lg bg-slate-50 px-3 py-2 ring-1 ring-slate-200 ring-inset outline-none focus:bg-white focus:ring-2 focus:ring-slate-900",value:l,onChange:s=>n(s.target.value),placeholder:"예: 2025-19-037_업체명","data-sc-src":"src/dream/pages/Upload.tsx:96"})]}),e.jsxs("label",{className:"block text-sm font-medium text-slate-700","data-sc-src":"src/dream/pages/Upload.tsx:103",children:["차수"," ",e.jsx("span",{className:"font-normal text-slate-400","data-sc-src":"src/dream/pages/Upload.tsx:105",children:"(비우면 결과보고서에서 읽는다 · 12 = 중동특화)"}),e.jsx("input",{className:"mt-1.5 w-32 rounded-lg bg-slate-50 px-3 py-2 tabular-nums ring-1 ring-slate-200 ring-inset outline-none focus:bg-white focus:ring-2 focus:ring-slate-900",value:d,onChange:s=>U(s.target.value.replace(/\D/g,"")),placeholder:"19","data-sc-src":"src/dream/pages/Upload.tsx:108"})]}),a.length>0&&e.jsxs("div",{className:"rounded-xl bg-slate-50 p-3 text-xs text-slate-600 ring-1 ring-slate-200/70 ring-inset","data-sc-src":"src/dream/pages/Upload.tsx:116",children:[e.jsxs("div",{className:"mb-1 font-medium","data-sc-src":"src/dream/pages/Upload.tsx:117",children:[a.length,"개 파일 · ",(y/1024/1024).toFixed(1)," MB"]}),e.jsxs("ul",{className:"max-h-40 space-y-0.5 overflow-auto font-mono","data-sc-src":"src/dream/pages/Upload.tsx:120",children:[a.slice(0,200).map((s,t)=>e.jsx("li",{"data-sc-src":"src/dream/pages/Upload.tsx:122",children:s.webkitRelativePath||s.name},t)),a.length>200&&e.jsxs("li",{"data-sc-src":"src/dream/pages/Upload.tsx:127",children:["… 외 ",a.length-200,"개"]})]})]}),g&&e.jsx("p",{className:"text-sm text-rose-600","data-sc-src":"src/dream/pages/Upload.tsx:131",children:g}),e.jsx("button",{type:"button",onClick:()=>void v(),className:"rounded-lg bg-slate-900 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-slate-700 disabled:opacity-60",disabled:!!x,title:a.length?void 0:"먼저 폴더나 파일ì
1„ 고르세요","data-sc-src":"src/dream/pages/Upload.tsx:132",children:x??"올리기"}),!a.length&&e.jsx("p",{className:"text-xs text-slate-400","data-sc-src":"src/dream/pages/Upload.tsx:142",children:"버튼은 파일을 고른 뒤 눌립니다 — 지금은 올릴 것이 없어서입니다."})]})]})}export{_ as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.