1import{H,W as Q,q as V,r,s as G,j as e,G as J,B as U,Y as Z,t as B}from"./index-CqGqwWKp.js";import{B as ee}from"./badge-CajhVRbo.js";import{M as ae}from"./Map-BElKnxci.js";import{i as se,g as te,a as re}from"./trackingGuard-Bochp0Er.js";import{W as le}from"./WeatherAirWidget-BOMDzfI-.js";import{t as ie}from"./subscriptionPlans-BhNHOzcV.js";import{C as ce}from"./chevron-left-BVmVB8Vs.js";import{M as $}from"./map-pin-DifvMV2M.js";import{C as oe}from"./clock-Sbq_3bEj.js";import{M as ne}from"./mountain-D3M_wSpQ.js";import{I as de}from"./info-BAYaVzoF.js";import{P as ge}from"./play-Hbmy7Cz5.js";import"./usePersistFn-DaDCSoQ3.js";const _={easy:"ì¬ì",moderate:"ë³´íµ",hard:"ì´ë ¤ì"},me={easy:"bg-green-100 text-green-700",moderate:"bg-yellow-100 text-yellow-700",hard:"bg-red-100 text-red-700"};function xe(n){const g=Math.floor(n/60),m=n%60;return g===0?`${m}ë¶`:m===0?`${g}ìê°`:`${g}ìê° ${m}ë¶`}async function ue(n,g){const m=`/api/proxy-gpx?url=${encodeURIComponent(n)}`,x=await fetch(m,{signal:g});if(!x.ok)throw new Error("GPX ë¡ë ì¤í¨");const S=await x.text(),v=new DOMParser().parseFromString(S,"application/xml").querySelectorAll("trkseg"),p=[];return v.forEach(D=>{const f=Array.from(D.querySelectorAll("trkpt")).map(i=>({lat:parseFloat(i.getAttribute("lat")??"0"),lng:parseFloat(i.getAttribute("lon")??"0")})).filter(i=>i.lat!==0&&i.lng!==0);f.length>0&&p.push(f)}),p}function Pe(){const[,n]=H(),g=Q(),{user:m}=V(),x=r.useRef(null),S=r.useRef(!1),[u,T]=r.useState([]),[v,p]=r.useState(!1),[D,f]=r.useState(null),i=r.useRef([]),E=r.useRef([]);E.current=u;const o=new URLSearchParams(g),O=o.get("id")??"",C=o.get("name")??"",t=o.get("gpxUrl")??"",M=o.get("distanceKm")?parseFloat(o.get("distanceKm")):null,R=o.get("durationMin")?parseInt(o.get("durationMin")):null,h=o.get("difficulty")??"",L=o.get("description")??"",b=o.get("returnPath")??"/saramgil",j=Number(O),A=Number.isInteger(j)&&j>0,W=b.includes("seoul-dulegil"),{data:N,isLoading:K,isError:I}=G.saramgil.getTrack.useQuery({id:j},{enabled:!t&&A,staleTime:300*1e3}),k=!!t||!!N?.points?.length;r.useEffect(()=>{if(!t&&!N?.points?.length)return;const s=new AbortController;let l=!1;return p(!0),f(null),(t?ue(t,s.signal):Promise.resolve([N.points.map(a=>({lat:a.lat,lng:a.lng}))])).then(a=>{l||(T(a),p(!1))}).catch(a=>{l||a instanceof DOMException&&a.name==="AbortError"||(f("GPX íì¼ì ë¶ë¬ì¤ì§ 못íìµëë¤."),p(!1))}),()=>{l=!0,s.abort()}},[t,N]),r.useEffect(()=>{!t&&I&&(p(!1),f("ê³µì í¸ë ì¢í를 ë¶ë¬ì¤ì§ 못íìµëë¤."))},[t,I]);const y=r.useCallback((s,l)=>{if(i.current.forEach(c=>{try{c.setMap(null)}catch{}}),i.current=[],l.length===0)return;const d=window.google?.maps;if(!d)return;const a=[];if(l.forEach(c=>{const w=c.map(F=>new d.LatLng(F.lat,F.lng));a.push(...w);const Y=new d.Polyline({path:w,geodesic:!0,strokeColor:"#10b981",strokeOpacity:.9,strokeWeight:4,map:s});i.current.push(Y)}),a.length>0){const c=new d.LatLngBounds;a.forEach(w=>c.extend(w)),s.fitBounds(c,{top:40,bottom:40,left:40,right:40})}},[]),X=r.useCallback(s=>{x.current=s,S.current=!0;const l=E.current;l.length>0&&setTimeout(()=>y(s,l),100)},[y]);r.useEffect(()=>{if(!S.current||!x.current||u.length===0)return;const s=x.current,l=setTimeout(()=>{y(s,u)},100);return()=>clearTimeout(l)},[u,y]),r.useEffect(()=>()=>{i.current.forEach(s=>{try{s.setMap(null)}catch{}}),i.current=[],x.current=null,S.current=!1},[]);const{data:q}=G.subscription.myStatus.useQuery(void 0,{enabled:!!m});q?.planTier;const P=u.flat()[0],z=async()=>{if(!t&&!A)return;if(se()){B.error(`íì¬ '${te()}' ê¸°ë¡ ì¤ì
ëë¤. 먼ì í¸ëí¹ì ì¢
ë£í´ 주ì¸ì.`,{duration:4e3});return}const s=u.flat();if(s.length>0){const c=await re(s);if(c.tooFar){B.error(`íì¬ ìì¹ê° í´ë¹ ì½ì¤ì ì½ ${c.distKm}km ë¨ì´ì ¸ ììµëë¤. í´ë¹ ì§ììì ë°ë¼ê°ê¸°ë¥¼ ììí´ ì£¼ì¸ì.`,{duration:5e3});return}}const d=[["seoul-dulegil","seoul-dulegil"],["ganghwa","ganghwa-nadeulgil"],["seongnam","seongnam-nubigil"],["korea-dulegil","korea-dulegil"],["forest50","forest50-stamp"]].find(([c])=>b.includes(c))?.[1],a=new URLSearchParams({courseName:C,returnPath:b});t?a.set("externalGpxUrl",t):a.set("saramgilTrailId",String(j)),d&&a.set("trailTag",d),n(`/track?${a.toString()}`)};return e.jsxs("div",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:226",className:"min-h-screen bg-gray-50",children:[e.jsx("div",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:228",className:"bg-white border-b sticky top-0 z-10",children:e.jsxs("div",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:229",className:"flex items-center gap-3 px-4 py-3",children:[e.jsx("button",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:230",onClick:()=>n(b),className:"p-1 rounded-full hover:bg-gray-100",children:e.jsx(ce,{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:234",className:"w-5 h-5 text-gray-600"})}),e.jsxs("div",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:236",className:"flex-1 min-w-0",children:[e.jsx("h1",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:237",className:"text-base font-bold text-gray-900 truncate",children:C||"ì½ì¤ ìì¸"}),e.jsx("p",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:238",className:"text-xs text-gray-500",children:"ì¬ë길 í¸ëí¹"})]}),h&&e.jsx(ee,{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:241",className:`text-xs ${me[h]??""}`,variant:"secondary",children:_[h]??h}
1)]})}),e.jsx("div",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:252",className:"relative bg-gray-200",style:{height:"280px"},children:k?e.jsxs(e.Fragment,{children:[e.jsx(ae,{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:255",onMapReady:X,className:"w-full h-full",gestureHandling:"greedy"}),v&&e.jsx("div",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:261",className:"absolute inset-0 flex items-center justify-center bg-white/60",children:e.jsx("div",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:262",className:"text-sm text-gray-500 animate-pulse",children:"ê²½ë¡ ë¶ë¬ì¤ë ì¤..."})}),D&&e.jsx("div",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:266",className:"absolute bottom-3 left-1/2 -translate-x-1/2 bg-red-50 border border-red-200 rounded-lg px-4 py-2 text-xs text-red-600",children:D})]}):e.jsx("div",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:272",className:"flex items-center justify-center h-full",children:e.jsxs("div",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:273",className:"text-center text-gray-400",children:[e.jsx($,{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:274",className:"w-10 h-10 mx-auto mb-2 opacity-40"}),e.jsx("p",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:275",className:"text-sm",children:"GPX íì¼ì´ ììµëë¤"})]})})}),e.jsxs("div",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:282",className:"px-4 py-4 space-y-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:284",className:"bg-white rounded-xl border border-gray-100 shadow-sm p-4",children:[e.jsx("h2",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:285",className:"font-bold text-gray-900 text-base mb-3",children:C}),e.jsxs("div",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:286",className:"flex flex-wrap gap-4 text-sm text-gray-600",children:[M!==null&&e.jsxs("div",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:288",className:"flex items-center gap-1.5",children:[e.jsx($,{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:289",className:"w-4 h-4 text-emerald-500"}),e.jsxs("span",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:290",className:"font-medium",children:[M.toFixed(1)," km"]})]}),R!==null&&e.jsxs("div",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:294",className:"flex items-center gap-1.5",children:[e.jsx(oe,{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:295",className:"w-4 h-4 text-blue-500"}),e.jsx("span",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:296",className:"font-medium",children:xe(R)})]}),h&&e.jsxs("div",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:300",className:"flex items-center gap-1.5",children:[e.jsx(ne,{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:301",className:"w-4 h-4 text-orange-400"}),e.jsx("span",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:302",className:"font-medium",children:_[h]??h})]})]})]}),L&&e.jsxs("div",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:310",className:"bg-white rounded-xl border border-gray-100 shadow-sm p-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:311",className:"flex items-center gap-2 mb-2",children:[e.jsx(de,{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:312",className:"w-4 h-4 text-emerald-600"}),e.jsx("h3",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:313",className:"font-semibold text-gray-800 text-sm",children:"ì½ì¤ ìê°"})]}),e.jsx("p",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:315",className:"text-sm text-gray-600 leading-relaxed whitespace-pre-line",children:L})]}),W&&e.jsx("div",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:322",className:"rounded-xl border border-emerald-200 bg-emerald-50 p-4",children:e.jsxs("div",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:323",className:"flex items-start gap-2.5",children:[e.jsx("div",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:324",className:"mt-0.5 rounded-lg bg-emerald-100 p-2 text-emerald-700",children:e.jsx(J,{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:325",className:"h-4 w-4"})}),e.jsxs("div",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:327",className:"min-w-0",children:[e.jsx("h3",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:328",className:"text-sm font-bold text-emerald-900",children:"ìì¸ëë 길 ì¤í¬í ì¸ì¦ ìë´"}),e.jsxs("ol",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:329",className:"mt-2 space-y-1 text-xs leading-relaxed text-emerald-800",children:[e.jsxs("li",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:330",children:[e.jsx("strong",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:330",children:"1."})," ì´ ì½ì¤ìì ",e.jsx("strong",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:330",children:"ë°ë¼ê°ê¸°"}),"를 ììí©ëë¤."]}),e.jsxs("li",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:331",children:[e.jsx("strong",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:331",children:"2."})," ì¤í¬í ìì¹ ë°ê²½ì ë¤ì´ì¤ë©´ ì§ë·ìì±ì¼ë¡ ìì¹ ìë´ê° ëíë©ëë¤."]}),e.jsxs("li",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:332",children:[e.jsx("strong",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:332",children:"3."})," ìë´ íì
ì ",e.jsx("strong",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:332",children:"ì¤í¬íë¶ ë°ë¡ê°ê¸°"}
1),"ìì GPS ìì¹ë¥¼ íì¸í´ ëì¥ì ì°ìµëë¤."]})]}),e.jsx("p",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:334",className:"mt-2 text-[11px] leading-relaxed text-emerald-700",children:"ìì¹ ìë´ë§ì¼ë¡ë ì¤í¬íê° ìë ì ì¥ëì§ ìì¼ë©°, ì¤í¬íë¶ìì ì§ì íì¸í´ì¼ 기ë¡ë©ëë¤."}),e.jsx("button",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:335",type:"button",onClick:()=>n("/stamp-book/seoul-dulegil"),className:"mt-3 inline-flex items-center gap-1 text-xs font-semibold text-emerald-800 underline underline-offset-2",children:"ì¤í¬íë¶ ì´ê¸°"})]})]})}),P&&e.jsx("div",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:349",children:ie()?e.jsx(le,{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:351",lat:P.lat,lng:P.lng,locationLabel:C,showWeekly:!0}):e.jsxs("div",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:358",className:"bg-white rounded-xl border border-gray-100 shadow-sm p-4 flex items-center gap-3",children:[e.jsx("span",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:359",className:"text-2xl",children:"ð"}),e.jsxs("div",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:360",children:[e.jsx("p",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:361",className:"text-sm font-semibold text-gray-800",children:"ë ì¨ Â· ê³µê¸°ì§ Â· ì£¼ê° ìë³´"}),e.jsx("p",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:362",className:"text-xs text-gray-500 mt-0.5",children:"í리미ì ì´ì 구ë
ì ì´ì© ê°ë¥í©ëë¤"})]})]})}),e.jsxs("div",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:370",className:"flex gap-3 pb-6",children:[e.jsxs(U,{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:371",onClick:z,disabled:!k,className:"flex-1 bg-emerald-600 hover:bg-emerald-700 text-white font-semibold",size:"lg",children:[e.jsx(ge,{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:377",className:"w-4 h-4 mr-2"}),k?"ë°ë¼ê°ê¸°":K?"ê²½ë¡ ë¶ë¬ì¤ë ì¤":"GPX ì¤ë¹ ì¤"]}),t&&e.jsx(U,{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:381",asChild:!0,variant:"outline",size:"lg",className:"shrink-0 border-emerald-200 text-emerald-700 hover:bg-emerald-50",children:e.jsx("a",{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:387",href:t,download:`${C}.gpx`,target:"_blank",rel:"noopener noreferrer",children:e.jsx(Z,{"data-loc":"client/src/pages/SaramgilCourseDetail.tsx:393",className:"w-4 h-4"})})})]})]})]})}export{Pe 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.