Skip to content

Commit 300a219

Browse files
authored
chore(UI): ux model settings (#64)
1 parent 8ade06d commit 300a219

File tree

3 files changed

+25
-27
lines changed

3 files changed

+25
-27
lines changed

resources/icons/icon-plain.svg

Lines changed: 3 additions & 0 deletions
Loading

src/components/settings/ProvidersSettings.tsx

Lines changed: 18 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import { Label } from '@/components/ui/label';
2121
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card';
2222
import { Badge } from '@/components/ui/badge';
2323
import { Separator } from '@/components/ui/separator';
24-
import { Switch } from '@/components/ui/switch';
2524
import { useProviderStore, type ProviderConfig, type ProviderWithKeyInfo } from '@/stores/providers';
2625
import {
2726
PROVIDER_TYPE_INFO,
@@ -41,7 +40,6 @@ export function ProvidersSettings() {
4140
loading,
4241
fetchProviders,
4342
addProvider,
44-
updateProvider,
4543
deleteProvider,
4644
updateProviderWithKey,
4745
setDefaultProvider,
@@ -108,14 +106,6 @@ export function ProvidersSettings() {
108106
}
109107
};
110108

111-
const handleToggleEnabled = async (provider: ProviderWithKeyInfo) => {
112-
try {
113-
await updateProvider(provider.id, { enabled: !provider.enabled });
114-
} catch (error) {
115-
toast.error(`${t('aiProviders.toast.failedUpdate')}: ${error}`);
116-
}
117-
};
118-
119109
return (
120110
<div className="space-y-4">
121111
<div className="flex justify-end">
@@ -155,7 +145,6 @@ export function ProvidersSettings() {
155145
onCancelEdit={() => setEditingProvider(null)}
156146
onDelete={() => handleDeleteProvider(provider.id)}
157147
onSetDefault={() => handleSetDefault(provider.id)}
158-
onToggleEnabled={() => handleToggleEnabled(provider)}
159148
onSaveEdits={async (payload) => {
160149
await updateProviderWithKey(
161150
provider.id,
@@ -191,7 +180,6 @@ interface ProviderCardProps {
191180
onCancelEdit: () => void;
192181
onDelete: () => void;
193182
onSetDefault: () => void;
194-
onToggleEnabled: () => void;
195183
onSaveEdits: (payload: { newApiKey?: string; updates?: Partial<ProviderConfig> }) => Promise<void>;
196184
onValidateKey: (
197185
key: string,
@@ -209,7 +197,6 @@ function ProviderCard({
209197
onCancelEdit,
210198
onDelete,
211199
onSetDefault,
212-
onToggleEnabled,
213200
onSaveEdits,
214201
onValidateKey,
215202
}: ProviderCardProps) {
@@ -291,7 +278,7 @@ function ProviderCard({
291278
return (
292279
<Card className={cn(isDefault && 'ring-2 ring-primary')}>
293280
<CardContent className="p-4">
294-
{/* Top row: icon + name + toggle */}
281+
{/* Top row: icon + name */}
295282
<div className="flex items-center justify-between mb-3">
296283
<div className="flex items-center gap-3">
297284
{getProviderIconUrl(provider.type) ? (
@@ -302,17 +289,10 @@ function ProviderCard({
302289
<div>
303290
<div className="flex items-center gap-2">
304291
<span className="font-semibold">{provider.name}</span>
305-
{isDefault && (
306-
<Badge variant="default" className="text-xs">{t('aiProviders.card.default')}</Badge>
307-
)}
308292
</div>
309293
<span className="text-xs text-muted-foreground capitalize">{provider.type}</span>
310294
</div>
311295
</div>
312-
<Switch
313-
checked={provider.enabled}
314-
onCheckedChange={onToggleEnabled}
315-
/>
316296
</div>
317297

318298
{/* Key row */}
@@ -403,11 +383,23 @@ function ProviderCard({
403383
)}
404384
</div>
405385
<div className="flex gap-0.5 shrink-0 ml-2">
406-
{!isDefault && (
407-
<Button variant="ghost" size="icon" className="h-7 w-7" onClick={onSetDefault} title={t('aiProviders.card.setDefault')}>
408-
<Star className="h-3.5 w-3.5" />
409-
</Button>
410-
)}
386+
<Button
387+
variant="ghost"
388+
size="icon"
389+
className="h-7 w-7"
390+
onClick={isDefault ? undefined : onSetDefault}
391+
title={isDefault ? t('aiProviders.card.default') : t('aiProviders.card.setDefault')}
392+
disabled={isDefault}
393+
>
394+
<Star
395+
className={cn(
396+
'h-3.5 w-3.5 transition-colors',
397+
isDefault
398+
? 'fill-yellow-400 text-yellow-400'
399+
: 'text-muted-foreground'
400+
)}
401+
/>
402+
</Button>
411403
<Button variant="ghost" size="icon" className="h-7 w-7" onClick={onEdit} title={t('aiProviders.card.editKey')}>
412404
<Edit className="h-3.5 w-3.5" />
413405
</Button>

src/pages/Setup/index.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ const defaultSkills: DefaultSkill[] = [
102102
];
103103

104104
import { SETUP_PROVIDERS, type ProviderTypeInfo, getProviderIconUrl, shouldInvertInDark } from '@/lib/providers';
105+
import clawxIcon from '@/assets/logo.svg';
105106

106107
// Use the shared provider registry for setup providers
107108
const providers = SETUP_PROVIDERS;
@@ -314,7 +315,9 @@ function WelcomeContent() {
314315

315316
return (
316317
<div className="text-center space-y-4">
317-
<div className="text-6xl mb-4">🤖</div>
318+
<div className="mb-4 flex justify-center">
319+
<img src={clawxIcon} alt="ClawX" className="h-16 w-16" />
320+
</div>
318321
<h2 className="text-xl font-semibold">{t('welcome.title')}</h2>
319322
<p className="text-muted-foreground">
320323
{t('welcome.description')}

0 commit comments

Comments
 (0)