AvanzaCast/.next/static/chunks/app/studio/page-a8eab73b4f623172.js

1 line
11 KiB
JavaScript

(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[558],{5881:(e,a,t)=>{"use strict";t.d(a,{As:()=>m,gn:()=>x,fJ:()=>h});var s=t(2115);let i={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"},r=[{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:r.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:r,viewerCount:0,maxViewers:0,chatEnabled:!0,isPrivate:!1,tags:["webinar","trends","business"]}],c=[{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"}}],l=[{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}],o={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,a)=>({timestamp:new Date(Date.now()-(19-a)*3e5).toISOString(),viewers:Math.floor(200*Math.random())+50,chatRate:Math.floor(10*Math.random())+1}))},d=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:500;return new Promise(a=>setTimeout(a,e))};class u{static async login(e,a){return(await d(),e===i.email&&"password"===a)?{success:!0,data:i,message:"Inicio de sesi\xf3n exitoso"}:{success:!1,error:"Credenciales inv\xe1lidas"}}static async register(e){return await d(),{success:!0,data:{...i,id:Date.now().toString(),name:e.name||"",email:e.email||"",createdAt:new Date().toISOString()},message:"Usuario creado exitosamente"}}static async getStreams(e){return await d(),{success:!0,data:n}}static async createStream(e){var a,t;return await d(),{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==(a=e.chatEnabled)||a,isPrivate:null!=(t=e.isPrivate)&&t,tags:e.tags||[]},message:"Transmisi\xf3n creada exitosamente"}}static async goLive(e){await d();let a=n.find(a=>a.id===e);return a?{success:!0,data:{...a,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 d(),{success:!0,data:r}}static async connectPlatform(e){await d();let a=r.find(a=>a.id===e);return a?{success:!0,data:{...a,isConnected:!0,accountName:"Cuenta de ".concat(a.displayName)},message:"Plataforma conectada exitosamente"}:{success:!1,error:"Plataforma no encontrada"}}static async getScenes(){return await d(),{success:!0,data:c}}static async setActiveScene(e){await d();let a=c.find(a=>a.id===e);return a?(c.forEach(e=>e.isActive=!1),a.isActive=!0,{success:!0,data:a,message:"Escena activada"}):{success:!1,error:"Escena no encontrada"}}static async getChatMessages(e){return await d(),{success:!0,data:l.filter(a=>a.streamId===e)}}static async getAnalytics(e){return await d(),{success:!0,data:o}}}function m(){let[e,a]=(0,s.useState)(null),[t,i]=(0,s.useState)(!1),[r,n]=(0,s.useState)(!1),c=async(e,t)=>{i(!0);try{let s=await u.login(e,t);return s.success&&s.data&&(a(s.data),n(!0),localStorage.setItem("user",JSON.stringify(s.data))),s}finally{i(!1)}},l=async e=>{i(!0);try{let t=await u.register(e);return t.success&&t.data&&(a(t.data),n(!0),localStorage.setItem("user",JSON.stringify(t.data))),t}finally{i(!1)}};return(0,s.useEffect)(()=>{let e=localStorage.getItem("user");if(e)try{let t=JSON.parse(e);a(t),n(!0)}catch(e){localStorage.removeItem("user")}},[]),{user:e,isAuthenticated:r,isLoading:t,login:c,register:l,logout:()=>{a(null),n(!1),localStorage.removeItem("user")}}}function h(){let[e,a]=(0,s.useState)([]),[t,i]=(0,s.useState)(null),[r,n]=(0,s.useState)(!1),c=async()=>{n(!0);try{let e=await u.getStreams();e.success&&e.data&&a(e.data)}finally{n(!1)}},l=async e=>{let t=await u.createStream(e);return t.success&&t.data&&a(e=>[...e,t.data]),t},o=async e=>{let t=await u.goLive(e);return t.success&&t.data&&(i(t.data),a(a=>a.map(a=>a.id===e?t.data:a))),t};return(0,s.useEffect)(()=>{c()},[]),{streams:e,currentStream:t,isLoading:r,fetchStreams:c,createStream:l,goLive:o,setCurrentStream:i}}function x(){let[e,a]=(0,s.useState)([]),[t,i]=(0,s.useState)(!1),r=async()=>{i(!0);try{let e=await u.getPlatforms();e.success&&e.data&&a(e.data)}finally{i(!1)}},n=async e=>{let t=await u.connectPlatform(e);return t.success&&t.data&&a(a=>a.map(a=>a.id===e?t.data:a)),t};return(0,s.useEffect)(()=>{r()},[]),{platforms:e,isLoading:t,fetchPlatforms:r,connectPlatform:n}}},7606:(e,a,t)=>{"use strict";t.r(a),t.d(a,{default:()=>n});var s=t(5155),i=t(2115),r=t(5881);function n(){let{user:e,isAuthenticated:a,isLoading:t}=(0,r.As)(),[n,c]=(0,i.useState)(""),[l,o]=(0,i.useState)(!1);return((0,i.useEffect)(()=>{if(null==e?void 0:e.id){let a=Date.now();c("stream-".concat(e.id,"-").concat(a))}},[e]),t)?(0,s.jsx)("div",{className:"flex items-center justify-center h-screen bg-gray-900",children:(0,s.jsx)("div",{className:"animate-spin rounded-full h-32 w-32 border-b-2 border-blue-500"})}):a&&e?l?(0,s.jsxs)("div",{className:"h-screen bg-gray-900 relative",children:[(0,s.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,s.jsxs)("div",{className:"text-center text-white",children:[(0,s.jsx)("div",{className:"w-24 h-24 bg-red-600 rounded-full flex items-center justify-center mx-auto mb-4 animate-pulse",children:(0,s.jsx)("svg",{className:"w-12 h-12 text-white",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z"})})}),(0,s.jsx)("h2",{className:"text-3xl font-bold mb-2",children:"\uD83D\uDD34 LIVE"}),(0,s.jsxs)("p",{className:"text-gray-300 mb-6",children:["Broadcasting: ",n]}),(0,s.jsx)("button",{onClick:()=>{if(o(!1),null==e?void 0:e.id){let a=Date.now();c("stream-".concat(e.id,"-").concat(a))}},className:"bg-red-600 hover:bg-red-700 text-white px-6 py-3 rounded-lg transition-colors",children:"End Stream"})]})}),(0,s.jsx)("div",{className:"absolute top-4 left-4 z-50",children:(0,s.jsx)("div",{className:"bg-black/50 backdrop-blur-sm rounded-lg p-4 space-y-3",children:(0,s.jsxs)("div",{className:"text-white",children:[(0,s.jsx)("h3",{className:"font-medium",children:"Live Studio"}),(0,s.jsxs)("p",{className:"text-sm text-gray-300",children:["Room: ",n]}),(0,s.jsx)("p",{className:"text-sm text-gray-300",children:"Status: Broadcasting"})]})})})]}):(0,s.jsx)("div",{className:"min-h-screen bg-gradient-to-br from-gray-900 to-blue-900 flex items-center justify-center p-6",children:(0,s.jsx)("div",{className:"max-w-2xl w-full",children:(0,s.jsxs)("div",{className:"bg-white/10 backdrop-blur-sm rounded-2xl p-8 text-center",children:[(0,s.jsx)("div",{className:"w-24 h-24 bg-gradient-to-br from-blue-500 to-purple-600 rounded-full flex items-center justify-center mx-auto mb-6",children:(0,s.jsx)("svg",{className:"w-12 h-12 text-white",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z"})})}),(0,s.jsx)("h1",{className:"text-4xl font-bold text-white mb-4",children:"Estudio Virtual"}),(0,s.jsx)("p",{className:"text-gray-300 text-lg mb-8",children:"Bienvenido al estudio de streaming profesional de AvanzaCast. Transmite en vivo con calidad profesional."}),(0,s.jsx)("div",{className:"space-y-4 mb-8",children:(0,s.jsxs)("div",{className:"text-left bg-white/5 rounded-lg p-4",children:[(0,s.jsx)("h3",{className:"text-white font-medium mb-2",children:"Stream Information"}),(0,s.jsxs)("div",{className:"space-y-2 text-sm text-gray-300",children:[(0,s.jsxs)("p",{children:[(0,s.jsx)("span",{className:"font-medium",children:"Host:"})," ",e.name]}),(0,s.jsxs)("p",{children:[(0,s.jsx)("span",{className:"font-medium",children:"Room ID:"})," ",n]}),(0,s.jsxs)("p",{children:[(0,s.jsx)("span",{className:"font-medium",children:"Quality:"})," HD 1080p"]})]})]})}),(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)("button",{onClick:()=>{o(!0)},className:"w-full bg-gradient-to-r from-blue-600 to-purple-600 hover:from-blue-700 hover:to-purple-700 text-white font-bold py-4 px-8 rounded-xl transition-all duration-200 transform hover:scale-105 text-lg",children:"\uD83C\uDFA5 Comenzar Transmisi\xf3n"}),(0,s.jsx)("p",{className:"text-gray-400 text-sm",children:"Al comenzar la transmisi\xf3n, se crear\xe1 una sala privada donde podr\xe1s invitar a otros participantes."})]})]})})}):(0,s.jsx)("div",{className:"flex items-center justify-center h-screen bg-gray-900",children:(0,s.jsxs)("div",{className:"text-center",children:[(0,s.jsx)("h2",{className:"text-white text-2xl mb-4",children:"Authentication Required"}),(0,s.jsx)("p",{className:"text-gray-400 mb-6",children:"Please log in to access the studio."}),(0,s.jsx)("button",{onClick:()=>window.location.href="/auth/login",className:"bg-blue-600 hover:bg-blue-700 text-white px-6 py-3 rounded-lg transition-colors",children:"Go to Login"})]})})}},9501:(e,a,t)=>{Promise.resolve().then(t.bind(t,7606))}},e=>{e.O(0,[441,255,358],()=>e(e.s=9501)),_N_E=e.O()}]);