Fichier: /app/settings/SettingsClient.tsx
✅ Fonctionnalités:
- Bouton pour passer d'Apprenant à Créateur
- Bouton pour passer de Créateur à Apprenant
- Mise à jour en temps réel dans Supabase
- Redirection automatique vers le bon dashboard
- Badge "Actif" sur le rôle actuel
- Messages de succès/erreur
✅ Flow:
1. Allez sur /settings
2. Section "Rôle sur la plateforme"
3. Cliquez sur le rôle souhaité
4. ✅ Confirmation "Rôle changé avec succès !"
5. ✅ Redirection automatique vers le nouveau dashboard
✅ Pages avec bouton retour:
/profile/edit→ Retour au profil/settings→ Retour au profil/my-courses→ Retour au dashboard/verify-email→ (Gère la redirection auto)
✅ Header Universel:
- Présent sur toutes les pages
- Menu dropdown avec navigation
- Liens contextuels selon le rôle
- Bouton de déconnexion
1. Utilisateur connecté en tant qu'Apprenant
Dashboard: /dashboard
2. Clic sur profil (header) → Paramètres
URL: /settings
3. Section "Rôle sur la plateforme"
- Apprenant (Actif)
- Créateur (Cliquer ici)
4. Clic sur "Créateur"
- Message: "Rôle changé avec succès !"
- Mise à jour Supabase: role = 'creator'
5. Redirection automatique
URL: /creator/dashboard
6. ✅ Nouveau rôle actif
- Header affiche "Créateur"
- Menu adapté (Mes cours créateur)
- Stats créateur
1. Utilisateur connecté en tant que Créateur
Dashboard: /creator/dashboard
2. Paramètres → Changement de rôle
3. Clic sur "Apprenant"
- Message: "Rôle changé avec succès !"
- Mise à jour Supabase: role = 'learner'
4. Redirection automatique
URL: /dashboard
5. ✅ Nouveau rôle actif
- Header affiche "Apprenant"
- Menu adapté (Mes cours)
- Stats apprenant
Header (toujours visible)
├── Logo → /
├── Cours → /courses
├── Dashboard → /dashboard
├── Mes cours → /my-courses
└── Profil (dropdown)
├── Profil → /profile
├── Paramètres → /settings
└── Déconnexion → /
Dashboard (/dashboard)
├── Stats personnelles
├── Cours recommandés → /courses/[id]
├── Explorer les cours → /courses
└── Parcourir par catégorie → /categories
Mes Cours (/my-courses)
├── [Retour au dashboard]
├── Recherche
├── Filtres
└── Liste des cours → /learn/[id]
Profil (/profile)
├── Informations personnelles
├── Stats
├── Modifier le profil → /profile/edit
└── (Badges si apprenant)
Édition Profil (/profile/edit)
├── [Retour au profil]
├── Photo de profil
├── Informations personnelles
├── Réseaux sociaux
└── Sauvegarder → /profile
Paramètres (/settings)
├── [Retour au profil]
├── Changement de rôle (Apprenant ↔ Créateur)
├── Notifications
├── Sécurité
├── Abonnement → /pricing
├── Préférences
└── Zone de danger
Header (toujours visible)
├── Logo → /
├── Cours → /courses
├── Dashboard → /creator/dashboard
├── Mes cours → /creator/courses
└── Profil (dropdown)
├── Profil → /profile
├── Mes cours → /creator/courses
├── Paramètres → /settings
└── Déconnexion → /
Dashboard Créateur (/creator/dashboard)
├── Stats créateur
├── Créer un cours → /creator/courses/new
├── Gérer les cours → /creator/courses
└── Analytics → /creator/analytics
Mes Cours Créateur (/creator/courses)
├── [Retour au dashboard]
├── Liste des cours créés
├── Créer un cours → /creator/courses/new
└── Éditer un cours → /creator/courses/[id]/edit
Profil (/profile)
├── Badge "👨🏫 Créateur"
├── Stats créateur (Cours créés, Étudiants, Contenu)
├── Modifier le profil → /profile/edit
└── Vos cours → /creator/courses
Paramètres (/settings)
├── [Retour au profil]
├── Changement de rôle (Créateur ↔ Apprenant)
├── Notifications
├── Sécurité
├── Abonnement → /pricing
├── Préférences
└── Zone de danger
-
/profile/edit→ Retour au profil -
/settings→ Retour au profil -
/my-courses→ Retour au dashboard -
/forgot-password→ Retour à l'accueil (déjà présent) -
/verify-email→ Gestion auto
- Logo cliquable → /
- Navigation adaptée au rôle
- Menu dropdown avec profil
- Bouton de déconnexion
- Avatar avec initiales
- Bouton Apprenant → Créateur
- Bouton Créateur → Apprenant
- Mise à jour Supabase
- Redirection automatique
- Messages de succès/erreur
- Badge "Actif" sur rôle actuel
- Dashboard vérifie l'auth
- Profil vérifie l'auth
- Settings vérifie l'auth
- Redirection si non connecté
1. Connectez-vous en tant qu'apprenant
2. Testez chaque lien du header
3. Vérifiez les boutons retour sur chaque page
4. ✅ Toutes les pages doivent être accessibles
5. ✅ Tous les boutons retour doivent fonctionner1. Connectez-vous en tant qu'apprenant
2. Allez sur /settings
3. Cliquez sur "Créateur"
4. ✅ Vérifiez le message de succès
5. ✅ Vérifiez la redirection vers /creator/dashboard
6. ✅ Vérifiez que le header affiche "Créateur"
7. ✅ Vérifiez les liens du menu (Mes cours créateur)1. En tant que créateur, allez sur /settings
2. Cliquez sur "Apprenant"
3. ✅ Vérifiez le message de succès
4. ✅ Vérifiez la redirection vers /dashboard
5. ✅ Vérifiez que le header affiche "Apprenant"
6. ✅ Vérifiez les liens du menu (Mes cours)1. Changez de rôle (Apprenant → Créateur)
2. Déconnectez-vous
3. Reconnectez-vous
4. ✅ Vérifiez que vous êtes toujours Créateur
5. ✅ Vérifiez la redirection vers /creator/dashboard1. Allez sur /profile/edit
✅ Cliquez "Retour au profil" → /profile
2. Allez sur /settings
✅ Cliquez "Retour au profil" → /profile
3. Allez sur /my-courses
✅ Cliquez "Retour au dashboard" → /dashboard{
"role": "learner" | "creator",
"onboarding_completed": true,
"first_name": "John",
"last_name": "Doe",
"full_name": "John Doe",
"bio": "...",
"website": "...",
"github": "...",
"linkedin": "...",
"twitter": "..."
}// Mise à jour dans Supabase
await supabase.auth.updateUser({
data: {
role: 'creator', // ou 'learner'
},
});
// Redirection selon le nouveau rôle
if (newRole === 'creator') {
router.push('/creator/dashboard');
} else {
router.push('/dashboard');
}┌─────────────────────────────────────────────┐
│ 👥 Rôle sur la plateforme │
│ │
│ Vous pouvez changer de rôle à tout moment │
│ │
│ ┌─────────────────────────────────────┐ │
│ │ 🎓 Apprenant [Actif] │ │
│ │ Suivre des cours et développer... │ │
│ └─────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────┐ │
│ │ 👨🏫 Créateur │ │
│ │ Créer des cours et partager... │ │
│ └─────────────────────────────────────┘ │
└─────────────────────────────────────────────┘
- ✅ Succès: "Rôle changé avec succès ! Redirection vers votre nouveau dashboard..."
- ❌ Erreur: "Vous avez déjà ce rôle"
- ❌ Erreur: Message d'erreur Supabase si échec
- ✅ Flexibilité totale (changer de rôle quand il veut)
- ✅ Navigation claire et intuitive
- ✅ Boutons retour sur toutes les pages
- ✅ Pas besoin de créer 2 comptes
- ✅ Données conservées lors du changement
- ✅ Code propre et réutilisable
- ✅ Header universel
- ✅ Gestion d'état centralisée
- ✅ Protection des routes
- ✅ Facile à étendre
Navigation et changement de rôle 100% fonctionnels !
✅ Changement de rôle:
- Apprenant ↔ Créateur en 1 clic
- Mise à jour Supabase
- Redirection automatique
- Messages clairs
✅ Navigation:
- Header universel sur toutes les pages
- Boutons retour partout
- Menu dropdown avec profil
- Liens contextuels selon le rôle
✅ Protection:
- Routes protégées
- Vérification auth
- Redirection si non connecté
Tout est prêt pour passer au catalogue de cours ! 🎉