Refactor API routes and component logic: Remove unused event and user management routes, streamline feedback handling in components, and enhance state management with transitions for improved user experience. Update service layer methods for better organization and maintainability across the application.
All checks were successful
Deploy with Docker Compose / deploy (push) Successful in 2m38s
All checks were successful
Deploy with Docker Compose / deploy (push) Successful in 2m38s
This commit is contained in:
@@ -1,10 +1,14 @@
|
||||
"use client";
|
||||
|
||||
import { useState, useEffect, useMemo, useRef } from "react";
|
||||
import { useState, useEffect, useMemo, useRef, useTransition } from "react";
|
||||
import { useSession } from "next-auth/react";
|
||||
import { useRouter } from "next/navigation";
|
||||
import { calculateEventStatus } from "@/lib/eventStatus";
|
||||
import FeedbackModal from "@/components/FeedbackModal";
|
||||
import {
|
||||
registerForEvent,
|
||||
unregisterFromEvent,
|
||||
} from "@/actions/events/register";
|
||||
|
||||
interface Event {
|
||||
id: string;
|
||||
@@ -526,6 +530,8 @@ export default function EventsPageSection({
|
||||
</div>
|
||||
);
|
||||
|
||||
const [, startTransition] = useTransition();
|
||||
|
||||
const handleRegister = async (eventId: string) => {
|
||||
if (!session?.user?.id) {
|
||||
router.push("/login");
|
||||
@@ -535,53 +541,38 @@ export default function EventsPageSection({
|
||||
setLoading((prev) => ({ ...prev, [eventId]: true }));
|
||||
setError("");
|
||||
|
||||
try {
|
||||
const response = await fetch(`/api/events/${eventId}/register`, {
|
||||
method: "POST",
|
||||
});
|
||||
startTransition(async () => {
|
||||
const result = await registerForEvent(eventId);
|
||||
|
||||
const data = await response.json();
|
||||
|
||||
if (!response.ok) {
|
||||
setError(data.error || "Une erreur est survenue");
|
||||
return;
|
||||
if (result.success) {
|
||||
setRegistrations((prev) => ({
|
||||
...prev,
|
||||
[eventId]: true,
|
||||
}));
|
||||
} else {
|
||||
setError(result.error || "Une erreur est survenue");
|
||||
}
|
||||
|
||||
setRegistrations((prev) => ({
|
||||
...prev,
|
||||
[eventId]: true,
|
||||
}));
|
||||
} catch {
|
||||
setError("Une erreur est survenue");
|
||||
} finally {
|
||||
setLoading((prev) => ({ ...prev, [eventId]: false }));
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
const handleUnregister = async (eventId: string) => {
|
||||
setLoading((prev) => ({ ...prev, [eventId]: true }));
|
||||
setError("");
|
||||
|
||||
try {
|
||||
const response = await fetch(`/api/events/${eventId}/register`, {
|
||||
method: "DELETE",
|
||||
});
|
||||
startTransition(async () => {
|
||||
const result = await unregisterFromEvent(eventId);
|
||||
|
||||
if (!response.ok) {
|
||||
const data = await response.json();
|
||||
setError(data.error || "Une erreur est survenue");
|
||||
return;
|
||||
if (result.success) {
|
||||
setRegistrations((prev) => ({
|
||||
...prev,
|
||||
[eventId]: false,
|
||||
}));
|
||||
} else {
|
||||
setError(result.error || "Une erreur est survenue");
|
||||
}
|
||||
|
||||
setRegistrations((prev) => ({
|
||||
...prev,
|
||||
[eventId]: false,
|
||||
}));
|
||||
} catch {
|
||||
setError("Une erreur est survenue");
|
||||
} finally {
|
||||
setLoading((prev) => ({ ...prev, [eventId]: false }));
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user