feat: move API keys storage to Postgres database instead of localStorage
Build and Deploy / build-and-push (push) Failing after 21s
Build and Deploy / build-and-push (push) Failing after 21s
This commit is contained in:
@@ -2,6 +2,7 @@ import React, { useState, useEffect } from 'react';
|
||||
import { motion, AnimatePresence } from 'framer-motion';
|
||||
import { X, Settings, Key, Sparkles, Image as ImageIcon, Lightbulb, Box } from 'lucide-react';
|
||||
import { cn } from '../lib/utils';
|
||||
import { api } from '../lib/api';
|
||||
|
||||
interface DashboardSettingsProps {
|
||||
isOpen: boolean;
|
||||
@@ -19,25 +20,37 @@ export const DashboardSettings: React.FC<DashboardSettingsProps> = ({ isOpen, on
|
||||
|
||||
useEffect(() => {
|
||||
if (isOpen) {
|
||||
setFalApiKey(localStorage.getItem('FAL_API_KEY') || '');
|
||||
setTripoApiKey(localStorage.getItem('TRIPO_API_KEY') || '');
|
||||
setMeshyApiKey(localStorage.getItem('MESHY_API_KEY') || '');
|
||||
setStabilityApiKey(localStorage.getItem('stability_api_key') || '');
|
||||
setOpenAiKey(localStorage.getItem('openai_api_key') || '');
|
||||
setGeminiApiKey(localStorage.getItem('GEMINI_API_KEY') || '');
|
||||
setNanoBananaApiKey(localStorage.getItem('NANO_BANANA_API_KEY') || '');
|
||||
api.getUserKeys().then(keys => {
|
||||
setFalApiKey(keys.FAL_API_KEY || '');
|
||||
setTripoApiKey(keys.TRIPO_API_KEY || '');
|
||||
setMeshyApiKey(keys.MESHY_API_KEY || '');
|
||||
setStabilityApiKey(keys.stability_api_key || '');
|
||||
setOpenAiKey(keys.openai_api_key || '');
|
||||
setGeminiApiKey(keys.GEMINI_API_KEY || '');
|
||||
setNanoBananaApiKey(keys.NANO_BANANA_API_KEY || '');
|
||||
}).catch(err => {
|
||||
console.error("Failed to load user keys", err);
|
||||
});
|
||||
}
|
||||
}, [isOpen]);
|
||||
|
||||
const saveKeys = () => {
|
||||
localStorage.setItem('FAL_API_KEY', falApiKey);
|
||||
localStorage.setItem('TRIPO_API_KEY', tripoApiKey);
|
||||
localStorage.setItem('MESHY_API_KEY', meshyApiKey);
|
||||
localStorage.setItem('stability_api_key', stabilityApiKey);
|
||||
localStorage.setItem('openai_api_key', openAiKey);
|
||||
localStorage.setItem('GEMINI_API_KEY', geminiApiKey);
|
||||
localStorage.setItem('NANO_BANANA_API_KEY', nanoBananaApiKey);
|
||||
onClose();
|
||||
const saveKeys = async () => {
|
||||
const keys = {
|
||||
FAL_API_KEY: falApiKey,
|
||||
TRIPO_API_KEY: tripoApiKey,
|
||||
MESHY_API_KEY: meshyApiKey,
|
||||
stability_api_key: stabilityApiKey,
|
||||
openai_api_key: openAiKey,
|
||||
GEMINI_API_KEY: geminiApiKey,
|
||||
NANO_BANANA_API_KEY: nanoBananaApiKey
|
||||
};
|
||||
try {
|
||||
await api.saveUserKeys(keys);
|
||||
onClose();
|
||||
} catch (err) {
|
||||
console.error("Failed to save keys", err);
|
||||
alert("Failed to save API keys to database");
|
||||
}
|
||||
};
|
||||
|
||||
if (!isOpen) return null;
|
||||
|
||||
Reference in New Issue
Block a user