1 line
13 KiB
JavaScript

(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[311],{5881:(e,t,a)=>{"use strict";a.d(t,{As:()=>h,gn:()=>x,fJ:()=>u});var s=a(2115);let r={id:"1",name:"C\xe9sar Mend\xedvil",email:"cesar@avanzacast.com",avatar:"",role:"admin",createdAt:"2024-01-15T10:00:00Z",lastLogin:"2024-09-16T08:30:00Z",isActive:!0,plan:"pro"},i=[{id:"1",name:"youtube",displayName:"YouTube",isConnected:!0,accountName:"AvanzaCast Channel",isLive:!1,viewerCount:0},{id:"2",name:"facebook",displayName:"Facebook Live",isConnected:!0,accountName:"AvanzaCast Page",isLive:!1,viewerCount:0},{id:"3",name:"twitch",displayName:"Twitch",isConnected:!1,isLive:!1,viewerCount:0},{id:"4",name:"linkedin",displayName:"LinkedIn Live",isConnected:!1,isLive:!1,viewerCount:0}],n=[{id:"1",title:"Tutorial: C\xf3mo usar AvanzaCast",description:"Aprende a crear transmisiones profesionales",status:"ended",userId:"1",startedAt:"2024-09-15T14:00:00Z",endedAt:"2024-09-15T15:30:00Z",platforms:i.slice(0,2),viewerCount:0,maxViewers:245,duration:90,thumbnailUrl:"",chatEnabled:!0,isPrivate:!1,tags:["tutorial","streaming","tech"]},{id:"2",title:"Webinar: Futuro del Streaming",description:"Tendencias y tecnolog\xedas emergentes",status:"scheduled",userId:"1",scheduledAt:"2024-09-18T16:00:00Z",platforms:i,viewerCount:0,maxViewers:0,chatEnabled:!0,isPrivate:!1,tags:["webinar","trends","business"]}],l=[{id:"1",name:"Escena Principal",type:"camera",isActive:!0,sources:[{id:"1",type:"camera",name:"C\xe1mara Principal",position:{x:0,y:0},size:{width:1280,height:720},isVisible:!0,properties:{deviceId:"default"}}],layout:{width:1280,height:720,backgroundColor:"#000000"}},{id:"2",name:"Presentaci\xf3n",type:"screen",isActive:!1,sources:[{id:"2",type:"screen",name:"Pantalla Compartida",position:{x:0,y:0},size:{width:1280,height:720},isVisible:!0,properties:{displayId:"primary"}}],layout:{width:1280,height:720,backgroundColor:"#1a1a1a"}}],d=[{id:"1",streamId:"1",username:"TechFan123",message:"\xa1Excelente tutorial!",timestamp:"2024-09-15T14:15:00Z",platform:"youtube"},{id:"2",streamId:"1",username:"StreamerPro",message:"\xbfCu\xe1ndo ser\xe1 el pr\xf3ximo stream?",timestamp:"2024-09-15T14:16:00Z",platform:"facebook",isSuper:!0}],c={streamId:"1",totalViews:1250,peakViewers:245,averageWatchTime:67.5,chatMessages:89,likes:156,shares:23,platformBreakdown:{youtube:65,facebook:35},timelineData:Array.from({length:20},(e,t)=>({timestamp:new Date(Date.now()-(19-t)*3e5).toISOString(),viewers:Math.floor(200*Math.random())+50,chatRate:Math.floor(10*Math.random())+1}))},o=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:500;return new Promise(t=>setTimeout(t,e))};class m{static async login(e,t){return(await o(),e===r.email&&"password"===t)?{success:!0,data:r,message:"Inicio de sesi\xf3n exitoso"}:{success:!1,error:"Credenciales inv\xe1lidas"}}static async register(e){return await o(),{success:!0,data:{...r,id:Date.now().toString(),name:e.name||"",email:e.email||"",createdAt:new Date().toISOString()},message:"Usuario creado exitosamente"}}static async getStreams(e){return await o(),{success:!0,data:n}}static async createStream(e){var t,a;return await o(),{success:!0,data:{...n[0],id:Date.now().toString(),title:e.title||"Nueva Transmisi\xf3n",description:e.description||"",status:"draft",userId:e.userId||"1",platforms:e.platforms||[],viewerCount:0,maxViewers:0,chatEnabled:null==(t=e.chatEnabled)||t,isPrivate:null!=(a=e.isPrivate)&&a,tags:e.tags||[]},message:"Transmisi\xf3n creada exitosamente"}}static async goLive(e){await o();let t=n.find(t=>t.id===e);return t?{success:!0,data:{...t,status:"live",startedAt:new Date().toISOString(),viewerCount:Math.floor(50*Math.random())+10},message:"Transmisi\xf3n iniciada"}:{success:!1,error:"Transmisi\xf3n no encontrada"}}static async getPlatforms(){return await o(),{success:!0,data:i}}static async connectPlatform(e){await o();let t=i.find(t=>t.id===e);return t?{success:!0,data:{...t,isConnected:!0,accountName:"Cuenta de ".concat(t.displayName)},message:"Plataforma conectada exitosamente"}:{success:!1,error:"Plataforma no encontrada"}}static async getScenes(){return await o(),{success:!0,data:l}}static async setActiveScene(e){await o();let t=l.find(t=>t.id===e);return t?(l.forEach(e=>e.isActive=!1),t.isActive=!0,{success:!0,data:t,message:"Escena activada"}):{success:!1,error:"Escena no encontrada"}}static async getChatMessages(e){return await o(),{success:!0,data:d.filter(t=>t.streamId===e)}}static async getAnalytics(e){return await o(),{success:!0,data:c}}}function h(){let[e,t]=(0,s.useState)(null),[a,r]=(0,s.useState)(!1),[i,n]=(0,s.useState)(!1),l=async(e,a)=>{r(!0);try{let s=await m.login(e,a);return s.success&&s.data&&(t(s.data),n(!0),localStorage.setItem("user",JSON.stringify(s.data))),s}finally{r(!1)}},d=async e=>{r(!0);try{let a=await m.register(e);return a.success&&a.data&&(t(a.data),n(!0),localStorage.setItem("user",JSON.stringify(a.data))),a}finally{r(!1)}};return(0,s.useEffect)(()=>{let e=localStorage.getItem("user");if(e)try{let a=JSON.parse(e);t(a),n(!0)}catch(e){localStorage.removeItem("user")}},[]),{user:e,isAuthenticated:i,isLoading:a,login:l,register:d,logout:()=>{t(null),n(!1),localStorage.removeItem("user")}}}function u(){let[e,t]=(0,s.useState)([]),[a,r]=(0,s.useState)(null),[i,n]=(0,s.useState)(!1),l=async()=>{n(!0);try{let e=await m.getStreams();e.success&&e.data&&t(e.data)}finally{n(!1)}},d=async e=>{let a=await m.createStream(e);return a.success&&a.data&&t(e=>[...e,a.data]),a},c=async e=>{let a=await m.goLive(e);return a.success&&a.data&&(r(a.data),t(t=>t.map(t=>t.id===e?a.data:t))),a};return(0,s.useEffect)(()=>{l()},[]),{streams:e,currentStream:a,isLoading:i,fetchStreams:l,createStream:d,goLive:c,setCurrentStream:r}}function x(){let[e,t]=(0,s.useState)([]),[a,r]=(0,s.useState)(!1),i=async()=>{r(!0);try{let e=await m.getPlatforms();e.success&&e.data&&t(e.data)}finally{r(!1)}},n=async e=>{let a=await m.connectPlatform(e);return a.success&&a.data&&t(t=>t.map(t=>t.id===e?a.data:t)),a};return(0,s.useEffect)(()=>{i()},[]),{platforms:e,isLoading:a,fetchPlatforms:i,connectPlatform:n}}},6617:(e,t,a)=>{Promise.resolve().then(a.bind(a,7654))},7654:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>d});var s=a(5155),r=a(2115),i=a(2619),n=a.n(i),l=a(5881);function d(){let{user:e}=(0,l.As)(),{streams:t,isLoading:a}=(0,l.fJ)(),{platforms:i}=(0,l.gn)(),[d,c]=(0,r.useState)({totalStreams:0,totalViews:0,liveStreams:0,connectedPlatforms:0});(0,r.useEffect)(()=>{if(t&&i){let e=t.filter(e=>"live"===e.status).length,a=t.reduce((e,t)=>e+t.maxViewers,0),s=i.filter(e=>e.isConnected).length;c({totalStreams:t.length,totalViews:a,liveStreams:e,connectedPlatforms:s})}},[t,i]);let o=e=>new Date(e).toLocaleDateString("es-ES",{day:"numeric",month:"short",hour:"2-digit",minute:"2-digit"});return(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:"mb-6",children:[(0,s.jsxs)("h1",{className:"text-3xl font-bold text-black dark:text-white",children:["\xa1Hola, ",(null==e?void 0:e.name)||"Usuario","! \uD83D\uDC4B"]}),(0,s.jsx)("p",{className:"text-white-dark mt-1",children:"Bienvenido de vuelta a tu estudio de streaming profesional"})]}),(0,s.jsxs)("div",{className:"mb-6 grid gap-6 sm:grid-cols-2 xl:grid-cols-4",children:[(0,s.jsxs)("div",{className:"panel bg-gradient-to-r from-cyan-500 to-cyan-400 text-white",children:[(0,s.jsx)("div",{className:"flex justify-between",children:(0,s.jsx)("div",{className:"text-md font-semibold ltr:mr-1 rtl:ml-1",children:"Total Streams"})}),(0,s.jsx)("div",{className:"mt-5 flex items-center",children:(0,s.jsx)("div",{className:"text-3xl font-bold ltr:mr-3 rtl:ml-3",children:d.totalStreams})}),(0,s.jsx)("div",{className:"mt-5 flex items-center font-semibold",children:"Transmisiones realizadas"})]}),(0,s.jsxs)("div",{className:"panel bg-gradient-to-r from-violet-500 to-violet-400 text-white",children:[(0,s.jsx)("div",{className:"flex justify-between",children:(0,s.jsx)("div",{className:"text-md font-semibold ltr:mr-1 rtl:ml-1",children:"Total Views"})}),(0,s.jsx)("div",{className:"mt-5 flex items-center",children:(0,s.jsx)("div",{className:"text-3xl font-bold ltr:mr-3 rtl:ml-3",children:d.totalViews.toLocaleString()})}),(0,s.jsx)("div",{className:"mt-5 flex items-center font-semibold",children:"Vistas totales acumuladas"})]}),(0,s.jsxs)("div",{className:"panel bg-gradient-to-r from-blue-500 to-blue-400 text-white",children:[(0,s.jsx)("div",{className:"flex justify-between",children:(0,s.jsx)("div",{className:"text-md font-semibold ltr:mr-1 rtl:ml-1",children:"En Vivo Ahora"})}),(0,s.jsx)("div",{className:"mt-5 flex items-center",children:(0,s.jsx)("div",{className:"text-3xl font-bold ltr:mr-3 rtl:ml-3",children:d.liveStreams})}),(0,s.jsxs)("div",{className:"mt-5 flex items-center font-semibold",children:[(0,s.jsx)("div",{className:"h-2 w-2 rounded-full bg-white animate-pulse ltr:mr-2 rtl:ml-2"}),"Transmisiones activas"]})]}),(0,s.jsxs)("div",{className:"panel bg-gradient-to-r from-fuchsia-500 to-fuchsia-400 text-white",children:[(0,s.jsx)("div",{className:"flex justify-between",children:(0,s.jsx)("div",{className:"text-md font-semibold ltr:mr-1 rtl:ml-1",children:"Plataformas"})}),(0,s.jsx)("div",{className:"mt-5 flex items-center",children:(0,s.jsxs)("div",{className:"text-3xl font-bold ltr:mr-3 rtl:ml-3",children:[d.connectedPlatforms,"/4"]})}),(0,s.jsx)("div",{className:"mt-5 flex items-center font-semibold",children:"Conectadas y activas"})]})]}),(0,s.jsxs)("div",{className:"panel mb-6",children:[(0,s.jsx)("div",{className:"mb-5 flex items-center justify-between",children:(0,s.jsx)("h5",{className:"text-lg font-semibold dark:text-white-light",children:"Acciones R\xe1pidas"})}),(0,s.jsxs)("div",{className:"grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-4",children:[(0,s.jsx)(n(),{href:"/studio",children:(0,s.jsxs)("div",{className:"group relative overflow-hidden rounded-lg border border-white-light bg-white p-6 transition hover:border-primary hover:shadow-lg dark:border-[#1b2e4b] dark:bg-[#1b2e4b] dark:hover:border-primary",children:[(0,s.jsx)("h5",{className:"mb-2 text-xl font-semibold text-[#3b3f5c] dark:text-white-light",children:"Ir al Estudio"}),(0,s.jsx)("p",{className:"text-white-dark",children:"Accede al estudio virtual para streaming"})]})}),(0,s.jsx)(n(),{href:"/streams/create",children:(0,s.jsxs)("div",{className:"group relative overflow-hidden rounded-lg border border-white-light bg-white p-6 transition hover:border-success hover:shadow-lg dark:border-[#1b2e4b] dark:bg-[#1b2e4b] dark:hover:border-success",children:[(0,s.jsx)("h5",{className:"mb-2 text-xl font-semibold text-[#3b3f5c] dark:text-white-light",children:"Nueva Transmisi\xf3n"}),(0,s.jsx)("p",{className:"text-white-dark",children:"Crear una nueva transmisi\xf3n programada"})]})}),(0,s.jsx)(n(),{href:"/platforms",children:(0,s.jsxs)("div",{className:"group relative overflow-hidden rounded-lg border border-white-light bg-white p-6 transition hover:border-warning hover:shadow-lg dark:border-[#1b2e4b] dark:bg-[#1b2e4b] dark:hover:border-warning",children:[(0,s.jsx)("h5",{className:"mb-2 text-xl font-semibold text-[#3b3f5c] dark:text-white-light",children:"Conectar Plataformas"}),(0,s.jsx)("p",{className:"text-white-dark",children:"Gestiona tus conexiones de streaming"})]})}),(0,s.jsx)(n(),{href:"/analytics",children:(0,s.jsxs)("div",{className:"group relative overflow-hidden rounded-lg border border-white-light bg-white p-6 transition hover:border-info hover:shadow-lg dark:border-[#1b2e4b] dark:bg-[#1b2e4b] dark:hover:border-info",children:[(0,s.jsx)("h5",{className:"mb-2 text-xl font-semibold text-[#3b3f5c] dark:text-white-light",children:"Ver Analytics"}),(0,s.jsx)("p",{className:"text-white-dark",children:"Analizar el rendimiento de streams"})]})})]})]}),(0,s.jsxs)("div",{className:"panel",children:[(0,s.jsxs)("div",{className:"mb-5 flex items-center justify-between",children:[(0,s.jsx)("h5",{className:"text-lg font-semibold dark:text-white-light",children:"Transmisiones Recientes"}),(0,s.jsx)(n(),{href:"/streams",className:"font-semibold text-primary hover:text-primary/80",children:"Ver Todas"})]}),a?(0,s.jsx)("div",{className:"flex justify-center py-8",children:(0,s.jsx)("div",{className:"h-8 w-8 animate-spin rounded-full border-b-2 border-primary"})}):t&&t.length>0?(0,s.jsx)("div",{className:"table-responsive",children:(0,s.jsxs)("table",{className:"table-striped table-hover",children:[(0,s.jsx)("thead",{children:(0,s.jsxs)("tr",{children:[(0,s.jsx)("th",{children:"Transmisi\xf3n"}),(0,s.jsx)("th",{children:"Fecha"}),(0,s.jsx)("th",{children:"Viewers"}),(0,s.jsx)("th",{children:"Estado"})]})}),(0,s.jsx)("tbody",{children:t.slice(0,5).map(e=>{var t;return(0,s.jsxs)("tr",{children:[(0,s.jsx)("td",{children:(0,s.jsx)("div",{className:"font-semibold",children:e.title})}),(0,s.jsx)("td",{children:(0,s.jsx)("div",{className:"text-white-dark",children:e.startedAt?o(e.startedAt):e.scheduledAt?o(e.scheduledAt):"Borrador"})}),(0,s.jsx)("td",{children:e.maxViewers}),(0,s.jsx)("td",{children:(t=e.status,(0,s.jsx)("span",{className:{live:"badge bg-success text-white",scheduled:"badge bg-warning text-white",ended:"badge bg-secondary text-white",draft:"badge bg-dark text-white"}[t],children:{live:"En Vivo",scheduled:"Programado",ended:"Finalizado",draft:"Borrador"}[t]}))})]},e.id)})})]})}):(0,s.jsxs)("div",{className:"py-12 text-center",children:[(0,s.jsx)("h3",{className:"mb-2 text-lg font-semibold text-black dark:text-white",children:"No hay transmisiones a\xfan"}),(0,s.jsx)("p",{className:"mb-6 text-white-dark",children:"Crea tu primera transmisi\xf3n para comenzar"}),(0,s.jsx)(n(),{href:"/studio",className:"btn btn-primary",children:"Crear Primera Transmisi\xf3n"})]})]})]})}}},e=>{e.O(0,[619,441,255,358],()=>e(e.s=6617)),_N_E=e.O()}]);