Refactor management components to remove loading state: Eliminate unused loading state and related conditional rendering from ChallengeManagement, EventManagement, FeedbackManagement, HouseManagement, and UserManagement components, simplifying the code and improving readability.
All checks were successful
Deploy with Docker Compose / deploy (push) Successful in 3m43s

This commit is contained in:
Julien Froidefond
2025-12-22 08:56:37 +01:00
parent 9bcafe54d3
commit 0c47bf916c
6 changed files with 6 additions and 37 deletions

View File

@@ -1,6 +1,6 @@
"use client";
import { useEffect, useState, useTransition } from "react";
import { useState, useTransition } from "react";
import {
validateChallenge,
rejectChallenge,
@@ -48,7 +48,6 @@ interface ChallengeManagementProps {
export default function ChallengeManagement({ initialChallenges }: ChallengeManagementProps) {
const [challenges, setChallenges] = useState<Challenge[]>(initialChallenges);
const [loading, setLoading] = useState(false);
const [selectedChallenge, setSelectedChallenge] = useState<Challenge | null>(
null
);
@@ -260,12 +259,6 @@ export default function ChallengeManagement({ initialChallenges }: ChallengeMana
});
};
if (loading) {
return (
<div className="text-center text-pixel-gold py-8">Chargement...</div>
);
}
if (challenges.length === 0) {
return <div className="text-center text-gray-400 py-8">Aucun défi</div>;
}

View File

@@ -1,6 +1,6 @@
"use client";
import { useState, useEffect, useTransition } from "react";
import { useState, useTransition } from "react";
import { calculateEventStatus } from "@/lib/eventStatus";
import { createEvent, updateEvent, deleteEvent } from "@/actions/admin/events";
import {
@@ -98,7 +98,6 @@ interface EventManagementProps {
export default function EventManagement({ initialEvents }: EventManagementProps) {
const [events, setEvents] = useState<Event[]>(initialEvents);
const [loading, setLoading] = useState(false);
const [editingEvent, setEditingEvent] = useState<Event | null>(null);
const [isCreating, setIsCreating] = useState(false);
const [saving, setSaving] = useState(false);
@@ -304,10 +303,6 @@ export default function EventManagement({ initialEvents }: EventManagementProps)
});
};
if (loading) {
return <div className="text-center text-gray-400 py-8">Chargement...</div>;
}
return (
<div className="space-y-4">
<div className="flex flex-col sm:flex-row sm:justify-between sm:items-center gap-3 mb-4">

View File

@@ -1,6 +1,6 @@
"use client";
import { useState, useEffect } from "react";
import { useState } from "react";
import {
addFeedbackBonusPoints,
markFeedbackAsRead,
@@ -49,7 +49,6 @@ export default function FeedbackManagement({
}: FeedbackManagementProps) {
const [feedbacks, setFeedbacks] = useState<Feedback[]>(initialFeedbacks);
const [statistics, setStatistics] = useState<EventStatistics[]>(initialStatistics);
const [loading, setLoading] = useState(false);
const [error, setError] = useState("");
const [selectedEvent, setSelectedEvent] = useState<string | null>(null);
const [addingPoints, setAddingPoints] = useState<Record<string, boolean>>(
@@ -161,14 +160,6 @@ export default function FeedbackManagement({
);
});
if (loading) {
return (
<div className="bg-black/60 border border-pixel-gold/30 rounded-lg p-4 sm:p-8">
<p className="text-gray-400 text-center text-sm">Chargement...</p>
</div>
);
}
return (
<div className="space-y-4 sm:space-y-6">
{/* Statistiques par événement */}

View File

@@ -1,6 +1,6 @@
"use client";
import { useState, useEffect, useTransition } from "react";
import { useState, useTransition } from "react";
import {
Input,
Textarea,
@@ -77,7 +77,6 @@ interface HouseManagementProps {
export default function HouseManagement({ initialHouses }: HouseManagementProps) {
const [houses, setHouses] = useState<House[]>(initialHouses);
const [loading, setLoading] = useState(false);
const [editingHouse, setEditingHouse] = useState<House | null>(null);
const [saving, setSaving] = useState(false);
const [deletingHouseId, setDeletingHouseId] = useState<string | null>(null);
@@ -216,10 +215,6 @@ export default function HouseManagement({ initialHouses }: HouseManagementProps)
return num.toLocaleString("en-US");
};
if (loading) {
return <div className="text-center text-gray-400 py-8">Chargement...</div>;
}
return (
<div className="space-y-4">
<div className="flex flex-col sm:flex-row sm:justify-between sm:items-center gap-3 mb-4">

View File

@@ -1,6 +1,6 @@
"use client";
import { useState, useEffect, useTransition } from "react";
import { useState, useTransition } from "react";
import {
Avatar,
Input,
@@ -43,7 +43,6 @@ interface UserManagementProps {
export default function UserManagement({ initialUsers }: UserManagementProps) {
const [users, setUsers] = useState<User[]>(initialUsers);
const [loading, setLoading] = useState(false);
const [editingUser, setEditingUser] = useState<EditingUser | null>(null);
const [saving, setSaving] = useState(false);
const [deletingUserId, setDeletingUserId] = useState<string | null>(null);
@@ -183,10 +182,6 @@ export default function UserManagement({ initialUsers }: UserManagementProps) {
? Math.max(0, currentEditingUserData.xp + editingUser.xpDelta)
: 0;
if (loading) {
return <div className="text-center text-gray-400 py-8">Chargement...</div>;
}
return (
<div className="space-y-4">
{users.length === 0 ? (

View File

@@ -1,6 +1,6 @@
"use client";
import { ButtonHTMLAttributes, ReactNode, ElementType, AnchorHTMLAttributes } from "react";
import { ButtonHTMLAttributes, ReactNode, ElementType } from "react";
import Link from "next/link";
type ButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {