PageSourceSearch

https://nguyentudo.me/assets/HomePage-CmJsbrtc.js

js nguyentudo.me collected 2026-10-04 14:33:04 UTC 17,101 bytes, 1 lines download raw bytes

1import{a as F,b as $,ar as q,r as z,j as e,B as p,a0 as P,aq as Z,g as n,A as c,w as D,ai as E,at as R,Q as V,e as j,t as T,Z as G,C as O}from"./index-CyZ-pQAp.js";import{u as Q,a as U}from"./useCourses-BXVwGexB.js";import{u as W}from"./useMyCourseAccessSet-CBPjIjnx.js";import{P as v}from"./play-pP6pK1RW.js";import{T as M}from"./target-DJoMdBMW.js";const J=1,Y="946f15aa-9e93-46fe-8a3a-f1cb69c53c95",ee="c17d49cd-c56a-4393-aa8c-7e4e3aead706",se="/__l5e/assets-v1/946f15aa-9e93-46fe-8a3a-f1cb69c53c95/nguyen-avatar.jpg",re="a/v1/c17d49cd-c56a-4393-aa8c-7e4e3aead706/946f15aa-9e93-46fe-8a3a-f1cb69c53c95/nguyen-avatar.jpg",ne="nguyen-avatar.jpg",te=123170,ae="image/jpeg",oe="2026-06-30T09:54:38Z",le={version:J,asset_id:Y,project_id:ee,url:se,r2_key:re,original_filename:ne,size:te,content_type:ae,created_at:oe},ie=new Intl.NumberFormat("vi-VN");function ge(){var _,C;const{user:l}=F(),{data:b}=$(),{data:i,isLoading:L}=Q(),{data:t}=U(),{has:d}=W(),N=q(),S=N.hasCompanion,y=N.hasCoachingMax,g=(i??[]).filter(s=>d(s.id)),w=(i??[]).find(s=>s.standalone_slug==="solo-trainer-automation"),X=w?d(w.id):!1,B=y?"coaching_max":S?"companion":"solo_trainer",{totalLessons:H,completedLessons:I,nextLesson:m}=z.useMemo(()=>{if(!i)return{totalLessons:0,completedLessons:0,nextLesson:null};let s=0,f=0,r=null;for(const a of i){if(!d(a.id))continue;const u=[...a.course_modules||[]].sort((o,h)=>(o.order??0)-(h.order??0));for(const o of u){const h=[...o.lessons||[]].sort((x,A)=>(x.order??0)-(A.order??0));for(const x of h)s++,t!=null&&t.has(x.id)?f++:r||(r={courseId:a.id,courseTitle:a.title,lessonTitle:x.title,lessonId:x.id})}}return{totalLessons:s,completedLessons:f,nextLesson:r}},[i,t,d]),k=(i??[]).filter(s=>!d(s.id)&&s.is_standalone_sellable&&s.standalone_price).slice(0,6),K=(b==null?void 0:b.display_name)||((_=l==null?void 0:l.user_metadata)==null?void 0:_.full_name)||((C=l==null?void 0:l.email)==null?void 0:C.split("@")[0])||"bạn";return e.jsxs("div",{className:"px-4 md:px-6 py-6 md:py-8 space-y-8 max-w-7xl mx-auto",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium text-muted-foreground",children:[e.jsx(p,{className:"h-4 w-4"}),e.jsx("span",{children:"Hướng dẫn học"})]}),e.jsx("section",{className:"rounded-2xl border border-primary/30 bg-gradient-to-br from-primary/15 via-card to-card overflow-hidden",children:e.jsxs("div",{className:"p-6 md:p-8",children:[e.jsxs("div",{className:"text-xs font-bold uppercase tracking-wider text-primary mb-2 flex items-center gap-1.5",children:[e.jsx(P,{className:"h-3 w-3"})," Hướng dẫn học"]}),e.jsxs("h1",{className:"text-2xl md:text-4xl font-extrabold tracking-tight mb-3",children:["Xin chào, ",e.jsx("span",{className:"text-primary",children:K}),"! 👋"]}),e.jsx("p",{className:"text-sm md:text-base text-muted-foreground max-w-2xl mb-5",children:"Khóa học của bạn không chết vì dở — nó chỉ đang bị bán sai cách. Mỗi bài học dưới đây là một bước đưa nó sống lại và ra đơn đầu tiên."}),e.jsxs("div",{className:"inline-flex items-center gap-3 rounded-xl border border-border bg-background/40 px-4 py-3 mb-5",children:[e.jsx(p,{className:"h-4 w-4 text-primary"}),L?e.jsx(Z,{className:"h-5 w-24"}):e.jsxs("div",{className:"text-sm",children:[e.jsxs("b",{className:"text-primary text-base",children:[I,"/",H||0]}),e.jsx("span",{className:"text-muted-foreground ml-1.5",children:"bài học đã hoàn thành"})]})]}),e.jsxs("div",{className:"flex flex-wrap gap-3",children:[e.jsxs(n,{to:"/app/courses",className:"inline-flex items-center gap-2 rounded-xl bg-primary hover:bg-primary/90 text-primary-foreground px-5 py-2.5 text-sm font-bold transition-colors",children:[e.jsx(v,{className:"h-4 w-4"})," Vào khoá học đã mua ",e.jsx(c,{className:"h-4 w-4"})]}),e.jsxs("a",{href:"https://zalo.me/0373742601",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 rounded-xl border border-border hover:bg-card px-5 py-2.5 text-sm font-medium transition-colors",children:[e.jsx(M,{className:"h-4 w-4"})," Kết bạn với Nguyên"]})]})]})}),e.jsxs("section",{className:"rounded-2xl border border-border bg-card p-6 md:p-8",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-bold mb-5",children:[e.jsx(D,{className:"h-4 w-4 text-primary"}),e.jsx("span",{children:"Đôi lời từ Nguyên — gửi học viên mới"})]}),e.jsxs("div",{className:"flex items-start gap-4 p-4 rounded-xl bg-background/50 border border-border mb-5",children:[e.jsx("div",{className:"h-14 w-14 roun
1ded-full overflow-hidden ring-2 ring-primary/40 flex-shrink-0",children:e.jsx("img",{src:le.url,alt:"Nguyên - Founder Solo Business Club",className:"h-full w-full object-cover"})}),e.jsxs("div",{children:[e.jsxs("div",{className:"font-bold flex items-center gap-1.5",children:["Nguyên — Nguyên Tự Do",e.jsx(E,{className:"h-3.5 w-3.5 text-red-400"})]}),e.jsx("div",{className:"text-xs text-muted-foreground",children:"Founder Solo Business Club · Solo Founder · Đã đóng gói & vận hành nhiều sản phẩm số"})]})]}),e.jsxs("div",{className:"space-y-3 text-sm leading-relaxed text-foreground/85 max-w-3xl",children:[e.jsxs("p",{children:["Chào ",e.jsx("b",{className:"text-foreground",children:"bạn"}),". Nếu bạn đang ở đây, nhiều khả năng bạn có một khóa học tâm huyết — nhưng nó đang nằm im. Không phải vì bạn thiếu chuyên môn. Nguyên đã gặp đủ nhiều trainer giỏi mà khóa vẫn ế, để nói chắc một điều: vấn đề gần như luôn nằm ở cách bán, không nằm ở nội dung."]}),e.jsx("p",{children:"Chính Nguyên cũng từng đổ hàng trăm giờ vào sản phẩm rồi ngồi nhìn nó không ra đơn. Tự bỏ tiền học, tự sai, tự sửa, tự đóng gói lại. Hệ thống bạn đang cầm trên tay là bản chắt lọc của quá trình đó — và nhiệm vụ của nó rất cụ thể: không dạy bạn làm khóa mới. Nó hồi sinh khóa bạn ĐÃ CÓ, cho đến khi bạn thấy đơn đầu tiên nổ."}),e.jsx("p",{children:"Trong quá trình học, nếu bạn gặp vấn đề về tài khoản hoặc truy cập bài học, nhắn Zalo cho Nguyên. Nguyên vận hành mọi thứ một mình, không có team support — nên khi nhắn, bạn hãy hỏi ngắn gọn, rõ ràng, kèm ảnh chụp màn hình để Nguyên xử lý nhanh nhất cho bạn. (Còn phần chữa bài — soi salepage, soi phễu của bạn — sẽ có không gian riêng ở Chặng 2, Nguyên nói rõ trong bản đồ bên dưới.)"}),e.jsxs("p",{className:"font-medium text-foreground",children:["Còn dưới đây là ",e.jsx("b",{className:"text-primary",children:"bản đồ 3 chặng"}),"  — Hồi sinh khóa ế - bán tự động hóa   - đột phá doanh thu. Bạn chỉ việc đi theo thứ tự. 👇"]})]})]}),e.jsx(R,{currentStageKey:B}),e.jsxs("section",{className:"grid md:grid-cols-3 gap-4",children:[e.jsxs("div",{className:"md:col-span-2 rounded-2xl border border-border bg-card p-5",children:[e.jsxs("div",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground mb-3 flex items-center gap-1.5",children:[e.jsx(v,{className:"h-3 w-3 text-primary"})," Tiếp tục học"]}),m?e.jsxs(n,{to:`/app/courses/${m.courseId}?lesson=${m.lessonId}`,className:"group flex items-center justify-between gap-4 rounded-xl border border-border bg-background/40 hover:border-primary/40 hover:bg-primary/5 p-4 transition-all",children:[e.jsxs("div",{className:"flex items-center gap-3 min-w-0",children:[e.jsx("div",{className:"h-10 w-10 rounded-lg bg-primary/15 border border-primary/30 flex items-center justify-center flex-shrink-0",children:e.jsx(v,{className:"h-4 w-4 text-primary",fill:"currentColor"})}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"font-bold text-sm truncate group-hover:text-primary transition-colors",children:m.lessonTitle}),e.jsx("div",{className:"text-xs text-muted-foreground truncate",children:m.courseTitle})]})]}),e.jsx(c,{className:"h-4 w-4 text-muted-foreground group-hover:text-primary group-hover:translate-x-1 transition-all flex-shrink-0"})]}):X||g.length>0?e.jsxs("div",{className:"rounded-xl border border-emerald-500/30 bg-emerald-500/5 p-4 flex items-center gap-3",children:[e.jsx(V,{className:"h-5 w-5 text-emerald-400 flex-shrink-0"}),e.jsxs("div",{className:"text-sm",children:["Bạn đã hoàn thành hết bài học hiện có. ",e.jsx(n,{to:"/app/courses",className:"text-primary font-bold hover:underline",children:"Xem tất cả khoá học →"})]})]}):e.jsxs("div",{className:"rounded-xl border border-border bg-background/40 p-4 flex items-center gap-3",children:[e.jsx(j,{className:"h-5 w-5 text-muted-foreground flex-shrink-0"}),e.jsxs("div",{className:"text-sm text-muted-foreground",children:["Bạn chưa mua khoá học nào. ",e.jsx(n,{to:"/app/courses",className:"text-primary font-bold hover:underline",children:"Xem khoá học →"})]})]})]}),e.jsxs("div",{className:"rounded-2xl border border-notion-yellow/30 bg-notion-yellow/5 p-5",children:[e.jsxs("div",{className:"text-xs font-bold uppercase tracking-wider text-notion-yellow mb
1-3 flex items-center gap-1.5",children:[e.jsx(M,{className:"h-3 w-3"})," Mục tiêu hôm nay"]}),e.jsx("div",{className:"font-bold text-base mb-1",children:"Xem ít nhất 1 bài học"}),e.jsx("div",{className:"text-xs text-muted-foreground",children:"Đều đặn mỗi ngày — chậm mà chắc, đó là cách Solo Founder thắng cuộc."})]})]}),k.length>0&&e.jsxs("section",{children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(j,{className:"h-4 w-4 text-muted-foreground"}),e.jsx("h2",{className:"text-lg font-extrabold",children:"Khoá học chưa mở khoá"})]}),e.jsxs(n,{to:"/app/courses",className:"text-xs font-bold text-primary hover:underline inline-flex items-center gap-1",children:["Xem tất cả ",e.jsx(c,{className:"h-3 w-3"})]})]}),e.jsx("div",{className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-4",children:k.map(s=>e.jsxs(n,{to:s.standalone_slug?`/${s.standalone_slug}`:`/app/courses/${s.id}`,className:"group relative rounded-2xl border border-border bg-card overflow-hidden hover:border-primary/40 hover:-translate-y-0.5 transition-all",children:[s.cover_url&&e.jsxs("div",{className:"relative aspect-video bg-muted overflow-hidden",children:[e.jsx("img",{src:s.cover_url,alt:s.title,loading:"lazy",className:"h-full w-full object-cover grayscale group-hover:grayscale-0 transition-all duration-500"}),e.jsx("div",{className:"absolute inset-0 bg-background/40 group-hover:bg-background/20 transition-colors"}),e.jsx("div",{className:"absolute inset-0 flex items-center justify-center",children:e.jsx("div",{className:"h-10 w-10 rounded-full bg-background/80 border border-border flex items-center justify-center backdrop-blur",children:e.jsx(j,{className:"h-4 w-4"})})}),e.jsxs("div",{className:"absolute top-2 right-2 px-2 py-0.5 rounded-md bg-primary text-primary-foreground text-[10px] font-bold uppercase tracking-wider",children:[ie.format(s.standalone_price),"đ"]})]}),e.jsxs("div",{className:"p-4",children:[e.jsx("div",{className:"font-bold text-sm mb-1 line-clamp-1 group-hover:text-primary transition-colors",children:s.title}),e.jsx("div",{className:"text-xs text-muted-foreground line-clamp-2 mb-3",children:s.for_who||s.outcome||"Khoá học mở rộng cho hệ Solo Business."}),e.jsxs("div",{className:"inline-flex items-center gap-1.5 text-xs font-bold text-primary",children:["Mở khoá ngay ",e.jsx(c,{className:"h-3 w-3 group-hover:translate-x-0.5 transition-transform"})]})]})]},s.id))})]}),!y&&e.jsxs("section",{className:"relative overflow-hidden rounded-3xl border-2 border-notion-yellow/60 bg-gradient-to-br from-orange-600/30 via-amber-500/15 to-rose-600/25 p-6 md:p-10 shadow-[0_0_60px_-15px_rgba(251,191,36,0.45)]",children:[e.jsx("div",{className:"pointer-events-none absolute -top-20 -right-16 h-72 w-72 rounded-full bg-notion-yellow/30 blur-3xl animate-pulse"}),e.jsx("div",{className:"pointer-events-none absolute -bottom-24 -left-16 h-72 w-72 rounded-full bg-rose-500/25 blur-3xl"}),e.jsx("div",{className:"pointer-events-none absolute inset-0 bg-[linear-gradient(115deg,transparent_40%,rgba(255,255,255,0.08)_50%,transparent_60%)]"}),e.jsxs("div",{className:"relative grid md:grid-cols-[1fr_auto] gap-6 items-center",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"inline-flex items-center gap-2 px-3 py-1.5 rounded-full bg-notion-yellow text-black text-[11px] font-extrabold uppercase tracking-[0.18em] mb-4 shadow-lg shadow-notion-yellow/40",children:[e.jsx(T,{className:"h-3.5 w-3.5"})," Coaching Max 1:1 · Done-with-you",e.jsx("span",{className:"ml-1 px-1.5 py-0.5 rounded bg-black/20 text-[10px]",children:"CHỈ 3 SUẤT/THÁNG"})]}),e.jsxs("h2",{className:"text-2xl md:text-4xl font-black leading-tight mb-3 bg-gradient-to-r from-notion-yellow via-amber-200 to-orange-300 bg-clip-text text-transparent",children:["Để Nguyên đích thân dí deadline",e.jsx("br",{className:"hidden md:block"})," tới khi bạn kiếm được số tiền X2 học phí."]}
1),e.jsxs("p",{className:"text-sm md:text-base text-foreground/80 max-w-xl mb-5",children:["Mentor 1:1 qua Zoom, làm hộ salepage + funnel + automation. ",e.jsx("b",{className:"text-notion-yellow",children:"Cam kết X2 học phí"})," hoặc kèm tới khi ra kết quả."]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[e.jsxs(n,{to:"/coaching-max",className:"group inline-flex items-center gap-2 rounded-xl bg-notion-yellow hover:bg-amber-300 text-black px-6 py-3.5 text-sm md:text-base font-extrabold transition-all hover:scale-[1.02] shadow-lg shadow-notion-yellow/30",children:[e.jsx(G,{className:"h-4 w-4"})," Xem chi tiết Coaching Max",e.jsx(c,{className:"h-4 w-4 group-hover:translate-x-1 transition-transform"})]}),e.jsxs("div",{className:"text-xs text-foreground/70",children:[e.jsx("span",{className:"line-through opacity-60",children:"30tr"})," ",e.jsx("b",{className:"text-notion-yellow text-base",children:"15.000.000đ"})," · trả góp 0%"]})]})]}),e.jsx("div",{className:"hidden md:flex h-32 w-32 rounded-3xl bg-gradient-to-br from-notion-yellow to-orange-500 items-center justify-center shadow-2xl shadow-orange-500/40 rotate-[6deg]",children:e.jsx(T,{className:"h-16 w-16 text-black",strokeWidth:2.5})})]})]}),g.length>0&&e.jsxs("section",{children:[e.jsxs("div",{className:"flex items-end justify-between mb-4",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"text-xs font-bold uppercase tracking-wider text-primary mb-1 flex items-center gap-1.5",children:[e.jsx(p,{className:"h-3 w-3"})," Thư viện của bạn"]}),e.jsx("h2",{className:"text-xl md:text-2xl font-extrabold",children:"Khoá học của bạn"}),e.jsxs("p",{className:"text-sm text-muted-foreground mt-1",children:[g.length," khoá đã mở khoá · học vĩnh viễn"]})]}),e.jsxs(n,{to:"/app/courses",className:"text-xs font-bold text-primary hover:underline inline-flex items-center gap-1",children:["Xem tất cả ",e.jsx(c,{className:"h-3 w-3"})]})]}),e.jsx("div",{className:"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4",children:g.map(s=>{const r=(s.course_modules||[]).flatMap(o=>(o.lessons||[]).map(h=>h.id)),a=r.filter(o=>t==null?void 0:t.has(o)).length,u=r.length?Math.round(a/r.length*100):0;return e.jsxs(n,{to:`/app/courses/${s.id}`,className:"group rounded-xl overflow-hidden border border-border bg-card hover:border-primary/50 hover:shadow-lg hover:shadow-primary/10 transition-all",children:[e.jsxs("div",{className:"aspect-video bg-gradient-to-br from-primary/20 to-card relative overflow-hidden",children:[s.cover_url?e.jsx("img",{src:s.cover_url,alt:s.title,loading:"lazy",className:"h-full w-full object-cover transition-transform duration-300 group-hover:scale-105"}):e.jsx("div",{className:"h-full w-full flex items-center justify-center",children:e.jsx(p,{className:"h-10 w-10 text-primary/50"})}),e.jsxs("div",{className:"absolute top-2 left-2 px-2 py-0.5 rounded-md bg-emerald-500/90 text-white text-[10px] font-bold uppercase tracking-wider flex items-center gap-1",children:[e.jsx(O,{className:"h-3 w-3"})," Đã mua"]})]}),e.jsxs("div",{className:"p-3.5",children:[e.jsx("div",{className:"font-bold text-sm mb-2 line-clamp-2 group-hover:text-primary transition-colors min-h-[2.5rem]",children:s.title}),r.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"h-1.5 rounded-full bg-muted overflow-hidden mb-1.5",children:e.jsx("div",{className:"h-full bg-gradient-to-r from-primary to-emerald-400 transition-all",style:{width:`${u}%`}})}),e.jsxs("div",{className:"flex items-center justify-between text-[11px] text-muted-foreground",children:[e.jsxs("span",{children:[a,"/",r.length," bài"]}),e.jsxs("span",{className:"font-bold text-primary",children:[u,"%"]})]})]})]})]},s.id)})})]})]})}export{ge 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.