Refactor FeedbackPage component: Simplify props handling and remove unused state and effects related to event and feedback management, streamlining the feedback submission process.
Some checks failed
Deploy with Docker Compose / deploy (push) Failing after 54s

This commit is contained in:
Julien Froidefond
2025-12-12 10:07:15 +01:00
parent ae08ed7793
commit f2805505a1
4 changed files with 24 additions and 260 deletions

View File

@@ -1,6 +1,6 @@
"use client";
import { useState, useEffect } from "react";
import { useState, useEffect, useMemo } from "react";
import ImageSelector from "@/components/ImageSelector";
interface SitePreferences {
@@ -23,11 +23,6 @@ const DEFAULT_IMAGES = {
export default function BackgroundPreferences({
initialPreferences,
}: BackgroundPreferencesProps) {
const [preferences, setPreferences] = useState<SitePreferences | null>(
initialPreferences
);
const [isEditing, setIsEditing] = useState(false);
// Helper pour obtenir la valeur à afficher dans le formulaire
const getFormValue = (
dbValue: string | null | undefined,
@@ -41,25 +36,13 @@ export default function BackgroundPreferences({
return formValue === defaultImage ? "" : formValue;
};
const [formData, setFormData] = useState({
homeBackground: getFormValue(
initialPreferences.homeBackground,
DEFAULT_IMAGES.home
),
eventsBackground: getFormValue(
initialPreferences.eventsBackground,
DEFAULT_IMAGES.events
),
leaderboardBackground: getFormValue(
initialPreferences.leaderboardBackground,
DEFAULT_IMAGES.leaderboard
),
});
const [preferences, setPreferences] = useState<SitePreferences | null>(
initialPreferences
);
const [isEditing, setIsEditing] = useState(false);
// Synchroniser les préférences quand initialPreferences change
useEffect(() => {
setPreferences(initialPreferences);
setFormData({
const computedFormData = useMemo(
() => ({
homeBackground: getFormValue(
initialPreferences.homeBackground,
DEFAULT_IMAGES.home
@@ -72,7 +55,17 @@ export default function BackgroundPreferences({
initialPreferences.leaderboardBackground,
DEFAULT_IMAGES.leaderboard
),
});
}),
[initialPreferences]
);
const [formData, setFormData] = useState(computedFormData);
// Synchroniser les préférences quand initialPreferences change
useEffect(() => {
setPreferences(initialPreferences);
setFormData(computedFormData);
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [initialPreferences]);
const handleEdit = () => {