import { useState } from 'react'; import { useSettingsStore } from '../../stores/settings.store'; import './SettingsPanel.css'; export function SettingsPanel() { const { aiProvider, openRouterApiKey, ollamaBaseUrl, openRouterModel, ollamaModel, theme, fontSize, tabSize, wordWrap, setAIProvider, setOpenRouterApiKey, setOllamaBaseUrl, setOpenRouterModel, setOllamaModel, setTheme, setFontSize, setTabSize, setWordWrap, clearApiKeys, } = useSettingsStore(); const [showApiKey, setShowApiKey] = useState(false); return (

⚙️ Settings

{/* AI Provider Section */}

AI Provider

{aiProvider === 'webllm' && '🌐 Runs entirely in your browser using WebGPU. No API key needed.'} {aiProvider === 'openrouter' && '☁️ Cloud-based API with access to multiple models. Requires API key.'} {aiProvider === 'ollama' && '🏠 Local API server. Run models on your own machine.'}

{/* OpenRouter Settings */} {aiProvider === 'openrouter' && ( <>
setOpenRouterApiKey(e.target.value)} placeholder="sk-or-v1-..." />

Get your API key from openrouter.ai/keys

)} {/* Ollama Settings */} {aiProvider === 'ollama' && ( <>
setOllamaBaseUrl(e.target.value)} placeholder="http://localhost:11434" />

Make sure Ollama is running locally. Download Ollama

setOllamaModel(e.target.value)} placeholder="llama3.2" />

Model name from ollama list

)}
{/* Appearance Section */}

Appearance

{/* Editor Section */}

Editor

setFontSize(Number(e.target.value))} />
setTabSize(Number(e.target.value))} />
{/* Danger Zone */}

⚠️ Danger Zone

This will remove all stored API keys from your browser.

); } // Made with Bob