Pages corrections widget
This commit is contained in:
parent
d1e34c5081
commit
8f5a63042c
@ -27,7 +27,10 @@ export function Calendar() {
|
|||||||
const { data: session, status } = useSession();
|
const { data: session, status } = useSession();
|
||||||
|
|
||||||
const fetchEvents = async (forceRefresh: boolean = false) => {
|
const fetchEvents = async (forceRefresh: boolean = false) => {
|
||||||
|
// Only show loading spinner on initial load or manual refresh, not on auto-refresh
|
||||||
|
if (forceRefresh || events.length === 0) {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
const url = forceRefresh ? '/api/calendars?refresh=true' : '/api/calendars';
|
const url = forceRefresh ? '/api/calendars?refresh=true' : '/api/calendars';
|
||||||
const response = await fetch(url);
|
const response = await fetch(url);
|
||||||
@ -152,8 +155,11 @@ export function Calendar() {
|
|||||||
console.error('Error fetching events:', err);
|
console.error('Error fetching events:', err);
|
||||||
setError('Failed to load events');
|
setError('Failed to load events');
|
||||||
} finally {
|
} finally {
|
||||||
|
// Only hide loading if we showed it
|
||||||
|
if (forceRefresh || events.length === 0) {
|
||||||
setLoading(false);
|
setLoading(false);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Initial fetch on mount
|
// Initial fetch on mount
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
import { useEffect, useState, useMemo, useRef } from "react";
|
import { useEffect, useState, useMemo, useRef } from "react";
|
||||||
import { useSession } from "next-auth/react";
|
import { useSession } from "next-auth/react";
|
||||||
|
import { useRouter } from "next/navigation";
|
||||||
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
|
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
|
||||||
import { Button } from "@/components/ui/button";
|
import { Button } from "@/components/ui/button";
|
||||||
import { RefreshCw, MessageSquare, Mail, MailOpen, Loader2 } from "lucide-react";
|
import { RefreshCw, MessageSquare, Mail, MailOpen, Loader2 } from "lucide-react";
|
||||||
@ -30,6 +31,7 @@ interface EmailResponse {
|
|||||||
|
|
||||||
export function Email() {
|
export function Email() {
|
||||||
const { data: session, status } = useSession();
|
const { data: session, status } = useSession();
|
||||||
|
const router = useRouter();
|
||||||
const [emails, setEmails] = useState<Email[]>([]);
|
const [emails, setEmails] = useState<Email[]>([]);
|
||||||
const [loading, setLoading] = useState(false);
|
const [loading, setLoading] = useState(false);
|
||||||
const [refreshing, setRefreshing] = useState(false);
|
const [refreshing, setRefreshing] = useState(false);
|
||||||
@ -353,7 +355,23 @@ export function Email() {
|
|||||||
</Button>
|
</Button>
|
||||||
</CardHeader>
|
</CardHeader>
|
||||||
<CardContent className="p-4">
|
<CardContent className="p-4">
|
||||||
{error ? (
|
{accounts.length === 0 ? (
|
||||||
|
<div className="text-center py-6 flex flex-col items-center gap-3">
|
||||||
|
<Mail className="h-8 w-8 text-gray-400" />
|
||||||
|
<div>
|
||||||
|
<p className="text-gray-700 text-sm font-medium mb-1">Aucun compte email configuré</p>
|
||||||
|
<p className="text-gray-500 text-xs mb-3">Configurez votre compte email pour voir vos messages</p>
|
||||||
|
<Button
|
||||||
|
variant="default"
|
||||||
|
size="sm"
|
||||||
|
onClick={() => router.push('/courrier')}
|
||||||
|
className="bg-blue-600 hover:bg-blue-700 text-white"
|
||||||
|
>
|
||||||
|
Configurer un compte
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
) : error ? (
|
||||||
<div className="text-center py-4">
|
<div className="text-center py-4">
|
||||||
<p className="text-red-500 text-sm mb-2">{error}</p>
|
<p className="text-red-500 text-sm mb-2">{error}</p>
|
||||||
{Object.keys(accountErrors).length > 0 && (
|
{Object.keys(accountErrors).length > 0 && (
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user