+
+
Paramètres
+
Configurez votre tablo et gérez les accès
+
+
+ {!isAdmin ? (
+ /* Read-only view for non-admins */
+
+ {/* Tablo Preview */}
+
+
Aperçu
+
+ {tablo.image ? (
+

+ ) : (
+
+
{tablo.name}
+
+ )}
+
+
+
+ {/* Status Display */}
+
+
Statut
+
+ {currentData.status === "todo" && "À faire"}
+ {currentData.status === "in_progress" && "En cours"}
+ {currentData.status === "done" && "Terminé"}
+
+
+
+ {/* Access Level */}
+
+
Votre rôle
+
{tablo.is_admin ? "Administrateur" : "Invité"}
+
+
+ ) : (
+ /* Editable view for admins */
+
+ {/* Name Edit */}
+
+
Nom du tablo
+ {isEditingName ? (
+
setIsEditingName(false)}>
+
+ setEditData((prev) => (prev ? { ...prev, name: e.target.value } : null))
+ }
+ onKeyDown={(e) => {
+ if (e.key === "Enter") {
+ setIsEditingName(false);
+ }
+ }}
+ className="w-full px-3 py-2 text-lg font-medium text-foreground bg-transparent border-b-2 border-primary focus:outline-none focus:border-primary"
+ placeholder="Nom du tablo"
+ />
+
+ ) : (
+
setIsEditingName(true)}
+ >
+ {tablo.name}
+
+ )}
+
+
+ {/* Color/Image Picker */}
+
+
Apparence
+
+
+
+ {/* Status Picker */}
+
+
Statut
+
+ setEditData((prev) => (prev ? { ...prev, status } : null))
+ }
+ />
+
+
+ {/* Invite User Section */}
+
+
Inviter un utilisateur
+
+
setInviteEmail(e.target.value)}
+ placeholder="Email de l'utilisateur à inviter"
+ className="flex-1 px-3 py-2 border border-input rounded-md shadow-sm placeholder-muted-foreground focus:outline-none focus:ring-primary focus:border-primary bg-background text-foreground"
+ />
+ {isInvitingUser ? (
+
+ ) : (
+
+ )}
+
+
+
+ {/* Save Button */}
+
+
+
+
+ )}
+
+ {/* Members List */}
+
+
+ Membres
+ {members && (
+
+ ({members.length})
+
+ )}
+
+
+
+ {members && members.length > 0 ? (
+ members.map((member, index) => (
+
+
+ {member.name.charAt(0).toUpperCase()}
+
+
+ {member.name}
+ {member.is_admin ? (
+
+ {member.id === currentUser?.id ? "(Vous, Admin)" : "(Admin)"}
+
+ ) : (
+
+ {member.id === currentUser?.id ? "(Vous, Invité)" : "(Invité)"}
+
+ )}
+
+
+ ))
+ ) : (
+
Aucun membre trouvé
+ )}
+
+
+
+ );
+};
diff --git a/apps/main/src/lib/routes.tsx b/apps/main/src/lib/routes.tsx
index 92886c1..7f5c9c7 100644
--- a/apps/main/src/lib/routes.tsx
+++ b/apps/main/src/lib/routes.tsx
@@ -20,6 +20,7 @@ import { ResetPasswordPage } from "../pages/reset-password";
import SettingsPage from "../pages/settings";
import { SignUpPage } from "../pages/signup";
import { TabloPage } from "../pages/tablo";
+import { TabloDetailsPage } from "../pages/tablo-details";
import ChatProvider from "../providers/ChatProvider";
export const routes: RouteObject[] = [
@@ -28,6 +29,10 @@ export const routes: RouteObject[] = [
path: "/",
element: