diff --git a/src/pages/SettingsPage.tsx b/src/pages/SettingsPage.tsx index 7849207..99a14ed 100644 --- a/src/pages/SettingsPage.tsx +++ b/src/pages/SettingsPage.tsx @@ -5,7 +5,16 @@ import { Input } from "@/components/ui/input"; import { Card, CardContent } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Separator } from "@/components/ui/separator"; -import { Save, Eye, EyeOff, CloudUpload, CheckCircle2, XCircle, RefreshCw } from "lucide-react"; +import { + Settings as SettingsIcon, + Save, + Eye, + EyeOff, + CloudUpload, + CheckCircle2, + XCircle, + RefreshCw, +} from "lucide-react"; export function SettingsPage() { const { settings, loading, saving, save, testConnection, testResult, triggerSync, syncing } = @@ -13,7 +22,7 @@ export function SettingsPage() { if (loading || !settings) { return ( -
Loading settings...
+
Loading settings...
); } @@ -80,154 +89,169 @@ function SettingsForm({ }; return ( -
-

Settings

- - {/* Pocket API Key */} - - +
+
+ {/* Header */} +
-

Pocket API Key

-

- Required to sync recordings.{" "} - - Get your key - +

+ + Settings +

+

+ Configure your Pocket API key and optional S3 backup

-
- { - markDirty(setApiKey)(e.target.value); - setApiKeyEdited(true); - }} - placeholder="pk_your_api_key_here" - className="font-mono text-sm" - /> +
+ {saved && Saved}
- - +
- {/* S3 Backup */} - - -
-

S3 Backup

+ {/* Pocket API Key */} +
+

Pocket API Key

+ + +

+ Required to sync recordings.{" "} + + Get your key + +

+
+ { + markDirty(setApiKey)(e.target.value); + setApiKeyEdited(true); + }} + placeholder="pk_your_api_key_here" + className="font-mono text-sm" + /> + +
+
+
+
+ + {/* S3 Backup */} +
+
+

S3 Backup

Optional
-

- Automatically sync your data to an S3 bucket after every change. Works with any - S3-compatible store (AWS, MinIO, R2, etc.). -

- - - -
-
- - markDirty(setBucket)(e.target.value)} - placeholder="my-seam-backup" - className="mt-1" - /> -
-
- - markDirty(setPrefix)(e.target.value)} - placeholder="seam/" - className="mt-1" - /> -

- Key prefix for all objects (e.g. "seam/") -

-
-
- - markDirty(setProfile)(e.target.value)} - placeholder="default" - className="mt-1" - /> -

- For SSO or named profile users. Leave blank for default credential chain. + + +

+ Automatically sync your data to an S3 bucket after every change. Works with any + S3-compatible store (AWS, MinIO, R2, etc.).

-
-
- + -
- - - {testResult && !testResult.ok && testResult.error && ( - {testResult.error} - )} -
- - +
+
+ + markDirty(setBucket)(e.target.value)} + placeholder="my-seam-backup" + /> +
+
+ + markDirty(setPrefix)(e.target.value)} + placeholder="seam/" + /> +

+ Key prefix for all objects (e.g. "seam/") +

+
+
+ + markDirty(setProfile)(e.target.value)} + placeholder="default" + /> +

+ For SSO or named profile users. Leave blank for default credential chain. +

+
+
+ + - {/* Save */} -
- - {saved && Settings saved} +
+ + + {testResult && !testResult.ok && testResult.error && ( + {testResult.error} + )} +
+ + +
);