PageSourceSearch

https://aidealer360.com/assets/Calendar-COIiseX1.js

js aidealer360.com collected 2026-09-24 12:38:55 UTC 11,309 bytes, 1 lines download raw bytes

1import{j as e}from"./ui-vendor-B12AOeKi.js";import{e as Y,r as c}from"./react-vendor-DZt7wVAJ.js";import{u as J,aV as C,ao as K,o as M,al as Q,a3 as X,B as l,ab as Z,l as i,ad as D,D as U,b as ee,c as se,d as te,L as m,I as h,h as ae,s as _,i as u}from"./index-CUOC2qQu.js";import{T as re}from"./textarea-BsyLd3-L.js";import{G as w}from"./grid-3x3-BsNv7Rx0.js";import{L as le}from"./list-BFLVoG_D.js";import{C as E}from"./chevron-left-CYQT2jJ9.js";import{s as S}from"./subMonths-DOYqzupQ.js";import{s as T}from"./startOfMonth-DRiPT0Kz.js";import{e as O}from"./endOfMonth-BZsPvsvS.js";import{e as z,a as L,i as ie}from"./isSameMonth-JVC-D8fV.js";import{e as $}from"./eachDayOfInterval-BYDEa48-.js";import{i as k}from"./isSameDay-D98FJCfs.js";import"./charts-vendor-B6q1L48j.js";import"./supabase-vendor-dOy44Gxq.js";import"./animation-vendor-BAVy02gd.js";function ye(){const v=Y(),{currentUser:n}=J(),[a,f]=c.useState(new Date),[I,A]=c.useState([]),[ne,F]=c.useState(null),[R,b]=c.useState(!1),[x,N]=c.useState("month"),[t,d]=c.useState({title:"",description:"",location:"",start_time:"",end_time:"",is_all_day:!1,color:"#0078d4",reminder_minutes:15}),y=async()=>{if(n!=null&&n.username)try{const s=T(a),r=O(a),{data:g,error:p}=await _.from("calendar_events").select("*").eq("username",n.username).gte("start_time",s.toISOString()).lte("start_time",r.toISOString()).order("start_time");if(p)throw p;A(g||[])}catch(s){console.error("Error fetching events:",s),u.error("Failed to fetch calendar events")}};c.useEffect(()=>{y()},[a,n==null?void 0:n.username]);const W=async()=>{if(!t.title||!t.start_time||!t.end_time){u.error("Please fill in all required fields");return}try{const{error:s}=await _.from("calendar_events").insert({username:n==null?void 0:n.username,...t});if(s)throw s;u.success("Event created successfully"),b(!1),d({title:"",description:"",location:"",start_time:"",end_time:"",is_all_day:!1,color:"#0078d4",reminder_minutes:15}),y()}catch(s){console.error("Error creating event:",s),u.error("Failed to create event")}},G=T(a),P=O(a),q=C(G),B=z(P),H=$({start:q,end:B}),j=s=>I.filter(r=>k(new Date(r.start_time),s));return e.jsxs("div",{className:"h-screen flex flex-col bg-[#f3f2f1] dark:bg-[#201f1e]",children:[e.jsxs("div",{className:"h-12 bg-[#0078d4] dark:bg-[#106ebe] flex items-center px-4 gap-4 flex-shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("button",{onClick:()=>v("/"),className:"h-8 px-3 rounded hover:bg-white/10 flex items-center gap-2 text-white",children:e.jsx(w,{className:"h-4 w-4"})}),e.jsx("span",{className:"text-white font-semibold text-sm ml-2",children:"Outlook"})]}),e.jsxs("div",{className:"flex items-center gap-2 ml-4",children:[e.jsxs("button",{onClick:()=>v("/mail"),className:"h-8 px-3 rounded hover:bg-white/10 text-white/70 hover:text-white text-sm flex items-center gap-2",children:[e.jsx(K,{className:"h-4 w-4"}),"Mail"]}),e.jsxs("button",{className:"h-8 px-3 rounded hover:bg-white/10 text-white text-sm flex items-center gap-2",children:[e.jsx(M,{className:"h-4 w-4"}),"Calendar"]}),e.jsxs("button",{className:"h-8 px-3 rounded hover:bg-white/10 text-white/70 hover:text-white text-sm flex items-center gap-2",children:[e.jsx(Q,{className:"h-4 w-4"}),"People"]})]}),e.jsx("div",{className:"flex-1 max-w-xl ml-auto",children:e.jsxs("div",{className:"relative",children:[e.jsx(X,{className:"absolute left-2 top-1/2 -translate-y-1/2 h-4 w-4 text-white/70"}),e.jsx("input",{type:"text",placeholder:"Search",className:"w-full h-8 pl-8 pr-3 rounded bg-white/20 text-white placeholder-white/70 text-sm focus:bg-white/30 outline-none"})]})})]}),e.jsxs("div",{className:"bg-white dark:bg-[#292827] border-b border-[#edebe9] dark:border-[#323130] flex items-center px-4 h-11 gap-1 flex-shrink-0",children:[e.jsxs(l,{variant:"ghost",size:"sm",className:"h-8 text-xs font-normal",onClick:()=>v("/"),children:[e.jsx(w,{className:"h-4 w-4 mr-1"}),"Home"]}),e.jsx("div",{className:"h-6 w-px bg-border mx-1"}),e.jsxs(l,{variant:"ghost",size:"sm",className:"h-8 text-xs font-normal",onClick:()=>b(!0),children:[e.jsx(Z,{className:"h-4 w-4 mr-1"}),"New event"]}),e.jsx("div",{className:"h-6 w-px bg-border mx-1"}),e.jsxs(l,{variant:"ghost",size:"sm",className:`h-8 text-xs font-normal ${x==="day"?"bg-[#edebe9] dark:bg-[#323130]":""}`,onClick:()=>N("day"),children:[e.jsx(le,{className:"h-4 w-4 mr-1"}),"Day"]}),e.jsxs(l,{variant:"ghost",size:"sm",className:`h-8 text-xs font-normal ${x==="week"?"bg-[#edebe9] dark:bg-[#323130]":""}`,onClick:()=>N("week"),children:[e.jsx(M,{className:"h-4 w-4 mr-1"}),"Week"]}),e.jsxs(l,{variant:"ghost",size:"sm",className:`h-8 text-xs font-normal ${x==="month"?"bg-[#edebe9] dark:bg-[#323130]":""}`,onClick:()=>N("month"),children:[e.jsx(w,{className:"h-4 w-4 mr-1"}),"Month"]})]}),e.jsxs("div",{className:"flex-1 flex overflow-hidden",children:[e.jsxs("div",{className:"w-64 bg-[#faf9f8] dark:bg-[#292827] border-r border-[#edebe9] dark:border-[#323130] flex-shrink-0 p-4",children:[e.jsx("div",{className:"mb-4",children:e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsx("h2",{className:"font-semibold",children:i(a,"MMMM yyyy")}),e.jsxs("div",{className:"flex gap-1",children:[e.jsx(l,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>f(S(a)),children:e.jsx(E,{className:"h-4 w-4"})}),e.jsx(l,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>f(L(a,1)),children:e.jsx(D,{className:"h-4 w-4"})})]})]})}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("h3",{className:"text-xs font-semibold text-[#605e5c] dark:text-[#a19f9d] mb-2",children:"MY CALENDARS"}),e.jsxs("div",{className:"flex items-center gap-2 px-2 py-1.5 rounded bg-[#edebe9] dark:bg-[#323130]",children:[e.jsx("div",{className:"w-3 h-3 rounded-full bg-[#0078d4]"}),e.jsx("span",{className:"text-sm",children:"Calendar"})]})]})]}),e.jsx("div",{className:"flex-1 bg-white dark:bg-[#292827] p-4",children:e.jsxs("div",{className:"h-full flex flex-col",children:[e.jsx("div",{className:"flex items-center justify-between mb-4",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(l,{variant:"ghost",size:"icon",onClick:()=>f(S(a)),children:e.jsx(E,{className:"h-5 w-5"})}),e.jsx("h1",{className:"text-2xl font-semibold",children:i(a,"MMMM yyyy")}),e.jsx(l,{variant:"ghost",size:"icon",onClick:()=>f(L(a,1)),children:e.jsx(D,{className:"h-5 w-5"})}),e.jsx(l,{variant:"outline",size:"sm",onClick:()=>f(new Date),children:"Today"})]})}),x==="day"&&e.jsxs("div",{className:"flex-1 border border-[#edebe9] dark:border-[#323130] rounded",children:[e.jsx("div",{className:"bg-[#faf9f8] dark:bg-[#292827] p-4 border-b border-[#edebe9] dark:border-[#323130]",children:e.jsx("h2",{className:"text-xl font-semibold",children:i(a,"EEEE, MMMM d, yyyy")})}),e.jsx("div",{className:"p-4 space-y-2",children:j(a).length===0?e.jsx("p",{className:"text-center text-muted-foreground py-8",children:"No events for this day"}):j(a).map(s=>e.jsxs("div",{className:"p-3 rounded border-l-4",style:{borderColor:s.color,backgroundColor:s.color+"10"},children:[e.jsx("div",{className:"font-semibold",children:s.title}),e.jsxs("div",{className:"text-sm text-muted-foreground",children:[i(new Date(s.start_time),"h:mm a")," - ",i(new Date(s.end_time),"h:mm a")]}),s.location&&e.jsx("div",{className:"text-sm",children:s.location}),s.description&&e.jsx("div",{className:"text-sm mt-1",children:s.description})]},s.id))})]}),x==="week"&&e.jsx("div",{className:"flex-1 border border-[#edebe9] dark:border-[#323130] rounded",children:e.jsx("div",{className:"grid grid-cols-7 gap-px bg-[#edebe9] dark:bg-[#323130]",children:$({start:C(a),end:z(a)}).map(s=>e.jsxs("div",{className:"bg-white dark:bg-[#292827]",children:[e.jsxs("div",{className:"bg-[#faf9f8] dark:bg-[#292827] p-2 text-center border-b border-[#edebe9] dark:border-[#323130]",children:[e.jsx("div",{className:"text-xs text-muted-foreground",children:i(s,"EEE")}),e.jsx("div",{className:`text-lg font-semibold ${k(s,new Date)?"text-[#0078d4]":""}`,children:i(s,"d")})]}),e.jsx("div",{className:"p-2 space-y-1 min-h-[200px]",children:j(s).map(r=>e.jsxs("div",{className:"text-xs px-2 py-1 rounded truncate",style:{backgroundColor:r.color+"20",color:r.color,borderLeft:`3px solid ${r.color}`}
1,children:[e.jsx("div",{className:"font-semibold",children:r.title}),e.jsx("div",{children:i(new Date(r.start_time),"h:mm a")})]},r.id))})]},s.toString()))})}),x==="month"&&e.jsxs("div",{className:"grid grid-cols-7 gap-px bg-[#edebe9] dark:bg-[#323130] border border-[#edebe9] dark:border-[#323130] flex-1",children:[["Sun","Mon","Tue","Wed","Thu","Fri","Sat"].map(s=>e.jsx("div",{className:"bg-[#faf9f8] dark:bg-[#292827] p-2 text-center font-semibold text-xs text-[#605e5c] dark:text-[#a19f9d]",children:s},s)),H.map((s,r)=>{const g=j(s),p=ie(s,a),V=k(s,new Date);return e.jsxs("div",{className:`bg-white dark:bg-[#292827] p-2 min-h-[100px] cursor-pointer hover:bg-[#f3f2f1] dark:hover:bg-[#323130] ${p?"":"opacity-40"}`,onClick:()=>{F(s),d(o=>({...o,start_time:i(s,"yyyy-MM-dd'T'09:00"),end_time:i(s,"yyyy-MM-dd'T'10:00")})),b(!0)},children:[e.jsx("div",{className:`text-sm font-medium mb-1 ${V?"bg-[#0078d4] text-white rounded-full w-6 h-6 flex items-center justify-center":""}`,children:i(s,"d")}),e.jsxs("div",{className:"space-y-1",children:[g.slice(0,3).map(o=>e.jsx("div",{className:"text-xs px-1 py-0.5 rounded truncate",style:{backgroundColor:o.color+"20",color:o.color,borderLeft:`3px solid ${o.color}`},children:o.title},o.id)),g.length>3&&e.jsxs("div",{className:"text-xs text-[#605e5c] dark:text-[#a19f9d] px-1",children:["+",g.length-3," more"]})]})]},r)})]})]})})]}),e.jsx(U,{open:R,onOpenChange:b,children:e.jsxs(ee,{className:"",children:[e.jsx(se,{children:e.jsx(te,{children:"New Event"})}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx(m,{children:"Title *"}),e.jsx(h,{value:t.title,onChange:s=>d({...t,title:s.target.value}),placeholder:"Event title"})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{children:[e.jsx(m,{children:"Start Time *"}),e.jsx(h,{type:"datetime-local",value:t.start_time,onChange:s=>d({...t,start_time:s.target.value})})]}),e.jsxs("div",{children:[e.jsx(m,{children:"End Time *"}),e.jsx(h,{type:"datetime-local",value:t.end_time,onChange:s=>d({...t,end_time:s.target.value})})]})]}),e.jsxs("div",{children:[e.jsx(m,{children:"Location"}),e.jsx(h,{value:t.location,onChange:s=>d({...t,location:s.target.value}),placeholder:"Add location"})]}),e.jsxs("div",{children:[e.jsx(m,{children:"Description"}),e.jsx(re,{value:t.description,onChange:s=>d({...t,description:s.target.value}),placeholder:"Add description",rows:3})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{children:[e.jsx(m,{children:"Color"}),e.jsx(h,{type:"color",value:t.color,onChange:s=>d({...t,color:s.target.value})})]}),e.jsxs("div",{children:[e.jsx(m,{children:"Reminder"}),e.jsx(h,{type:"number",value:t.reminder_minutes,onChange:s=>d({...t,reminder_minutes:parseInt(s.target.value)}),placeholder:"Minutes before"})]})]})]}),e.jsxs(ae,{children:[e.jsx(l,{variant:"ghost",onClick:()=>b(!1),children:"Cancel"}),e.jsx(l,{onClick:W,className:"bg-[#0078d4] hover:bg-[#106ebe]",children:"Create Event"})]})]})})]})}export{ye 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.