diff --git a/routes/openrouter.routes.js b/routes/openrouter.routes.js
index f890818..42a43e8 100644
--- a/routes/openrouter.routes.js
+++ b/routes/openrouter.routes.js
@@ -14,7 +14,7 @@ const CACHE_DURATION = 60 * 60 * 1000; // 1 heure
* GET /api/openrouter/models
* Récupérer la liste des modèles disponibles depuis OpenRouter
*/
-router.get('/models', authenticateToken, requireAdmin, async (req, res) => {
+router.get('/models', authenticateToken, async (req, res) => {
try {
// Vérifier le cache
const now = Date.now();
diff --git a/src/pages/Index.tsx b/src/pages/Index.tsx
index 8321da5..8980b93 100644
--- a/src/pages/Index.tsx
+++ b/src/pages/Index.tsx
@@ -223,7 +223,7 @@ const Index = () => {
};
const loadOpenRouterModels = async () => {
- if (user?.is_admin && settings.openrouter_api_key) {
+ if (settings.openrouter_api_key) {
setLoadingModels(true);
try {
const models = await OpenRouterService.getModels();
@@ -528,6 +528,13 @@ const Index = () => {
chatEndRef.current?.scrollIntoView({ behavior: 'smooth' });
}, [chatMessages]);
+ // Load models when chatbox opens
+ useEffect(() => {
+ if (chatOpen && openRouterModels.length === 0) {
+ loadOpenRouterModels();
+ }
+ }, [chatOpen]);
+
// Set default model when models are loaded
useEffect(() => {
if (openRouterModels.length > 0 && !selectedModel) {
@@ -2329,9 +2336,11 @@ const Index = () => {
value={selectedModel}
onChange={(e) => setSelectedModel(e.target.value)}
className="w-full text-xs px-2 py-1.5 border border-input rounded-md bg-background"
- disabled={chatLoading}
+ disabled={chatLoading || loadingModels}
>
- {openRouterModels.length === 0 ? (
+ {loadingModels ? (
+
+ ) : openRouterModels.length === 0 ? (
) : (
openRouterModels.map(model => (