feat: redesigned add-event modal with calendar selector (Даниил/Света)
Some checks failed
Deploy / deploy (push) Has been cancelled

This commit is contained in:
Cosmo
2026-04-22 19:33:38 +00:00
parent d29deedc90
commit 868d35ba3e
2 changed files with 141 additions and 57 deletions

View File

@@ -105,7 +105,7 @@ export async function GET(req: Request) {
export async function POST(req: Request) {
const body = await req.json()
const { title, date, startTime, endTime, allDay } = body
const { title, date, startTime, endTime, allDay, owner } = body
const auth = getAuth(false)
if (!auth) return NextResponse.json({ error: 'not_configured' }, { status: 500 })
@@ -113,6 +113,15 @@ export async function POST(req: Request) {
const calendarClient = google.calendar({ version: 'v3', auth: auth as any })
const daniilCalendarId = process.env.DANIIL_CALENDAR_ID || 'daniilklimov25@gmail.com'
const svetaCalendarId = process.env.SVETA_CALENDAR_ID || ''
const calendars: Record<string, { id: string; name: string; color: string }> = {
daniil: { id: daniilCalendarId, name: 'Даниил', color: '#6366f1' },
...(svetaCalendarId ? { sveta: { id: svetaCalendarId, name: 'Света', color: '#ec4899' } } : {}),
}
const selectedOwner = owner && calendars[owner] ? owner : 'daniil'
const cal = calendars[selectedOwner]
let start: any, end: any
if (allDay) {
@@ -125,7 +134,7 @@ export async function POST(req: Request) {
try {
const res = await calendarClient.events.insert({
calendarId: daniilCalendarId,
calendarId: cal.id,
requestBody: { summary: title, start, end },
})
const e = res.data
@@ -136,9 +145,9 @@ export async function POST(req: Request) {
start: e.start?.dateTime || e.start?.date,
end: e.end?.dateTime || e.end?.date,
allDay: !e.start?.dateTime,
owner: 'daniil',
ownerName: 'Даниил',
color: '#6366f1',
owner: selectedOwner,
ownerName: cal.name,
color: cal.color,
}
})
} catch (err: any) {