replace alerts with toasts
This commit is contained in:
@@ -5,6 +5,7 @@ import { ThemeProvider } from "next-themes";
|
|||||||
import { ModeToggle } from "@/components/mode-toggle";
|
import { ModeToggle } from "@/components/mode-toggle";
|
||||||
import SignIn from "@/components/sign-in";
|
import SignIn from "@/components/sign-in";
|
||||||
import AuthSessionProvider from "@/components/SessionProvider";
|
import AuthSessionProvider from "@/components/SessionProvider";
|
||||||
|
import { Toaster } from "@/components/ui/sonner";
|
||||||
import Link from "next/link"
|
import Link from "next/link"
|
||||||
|
|
||||||
const geist = Geist({ subsets: ['latin', 'cyrillic'], variable: "--font-geist-sans" })
|
const geist = Geist({ subsets: ['latin', 'cyrillic'], variable: "--font-geist-sans" })
|
||||||
@@ -46,6 +47,7 @@ export default function RootLayout({
|
|||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
<main className="flex-1 p-4">{children}</main>
|
<main className="flex-1 p-4">{children}</main>
|
||||||
|
<Toaster closeButton richColors />
|
||||||
</ThemeProvider>
|
</ThemeProvider>
|
||||||
</AuthSessionProvider>
|
</AuthSessionProvider>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import { parseICS, generateICS } from '@/lib/ical'
|
|||||||
import type { CalendarEvent } from '@/lib/types'
|
import type { CalendarEvent } from '@/lib/types'
|
||||||
import { Textarea } from '@/components/ui/textarea'
|
import { Textarea } from '@/components/ui/textarea'
|
||||||
import { useSession } from 'next-auth/react'
|
import { useSession } from 'next-auth/react'
|
||||||
|
import { toast } from 'sonner'
|
||||||
|
|
||||||
export default function HomePage() {
|
export default function HomePage() {
|
||||||
const [events, setEvents] = useState<CalendarEvent[]>([])
|
const [events, setEvents] = useState<CalendarEvent[]>([])
|
||||||
@@ -128,7 +129,7 @@ export default function HomePage() {
|
|||||||
if (file.name.endsWith('.ics')) {
|
if (file.name.endsWith('.ics')) {
|
||||||
handleImport(file)
|
handleImport(file)
|
||||||
} else {
|
} else {
|
||||||
alert('Please drop an .ics file')
|
toast.warning('Please drop an .ics file')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -145,7 +146,7 @@ export default function HomePage() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
if (res.status === 401) {
|
if (res.status === 401) {
|
||||||
alert('Please sign in to use AI features.')
|
toast.info('Please sign in to use AI features.')
|
||||||
setAiLoading(false)
|
setAiLoading(false)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -185,11 +186,11 @@ export default function HomePage() {
|
|||||||
setSummaryUpdated(new Date().toLocaleString())
|
setSummaryUpdated(new Date().toLocaleString())
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
alert('AI did not return event data.')
|
toast.error('AI did not return event data.')
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error(err)
|
console.error(err)
|
||||||
alert('Error from AI service.')
|
toast.error('Error from AI service.')
|
||||||
} finally {
|
} finally {
|
||||||
setAiLoading(false)
|
setAiLoading(false)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user