diff --git a/frontend/src/app/dashboard/settings/page.tsx b/frontend/src/app/dashboard/settings/page.tsx index 969f499..ee8be9f 100644 --- a/frontend/src/app/dashboard/settings/page.tsx +++ b/frontend/src/app/dashboard/settings/page.tsx @@ -141,10 +141,53 @@ export default function SettingsPage() { } const schemas: any = { - stripe: { label: "Stripe", fields: [{ key: "secretKey", label: "Secret Key", type: "password" }, { key: "webhookSecret", label: "Webhook Secret", type: "password" }] }, - storage: { label: "S3 Storage", fields: [{ key: "endpoint", label: "Endpoint" }, { key: "bucket", label: "Bucket" }, { key: "accessKey", label: "Access Key" }, { key: "secretKey", label: "Secret Key", type: "password" }] }, - cloudflare_config: { label: "Cloudflare", fields: [{ key: "apiToken", label: "API Token", type: "password" }, { key: "zoneId", label: "Zone ID" }] }, - smtp: { label: "SMTP Email", fields: [{ key: "host", label: "Host" }, { key: "port", label: "Port", type: "number" }, { key: "username", label: "Username" }, { key: "password", label: "Password", type: "password" }] }, + stripe: { + label: "Stripe", + fields: [ + { key: "secretKey", label: "Secret Key", type: "password" }, + { key: "webhookSecret", label: "Webhook Secret", type: "password" } + ] + }, + storage: { + label: "S3 Storage (Civo/AWS)", + fields: [ + { key: "endpoint", label: "Endpoint (ex: https://objectstore...)" }, + { key: "bucket", label: "Bucket Name" }, + { key: "accessKey", label: "Access Key" }, + { key: "secretKey", label: "Secret Key", type: "password" } + ] + }, + cloudflare_config: { + label: "Cloudflare", + fields: [ + { key: "apiToken", label: "API Token", type: "password" }, + { key: "zoneId", label: "Zone ID" } + ] + }, + smtp: { + label: "SMTP Email", + fields: [ + { key: "host", label: "Host" }, + { key: "port", label: "Port", type: "number" }, + { key: "username", label: "Username" }, + { key: "password", label: "Password", type: "password" }, + { key: "fromEmail", label: "Sender Email (From)" } + ] + }, + fcm_service_account: { + label: "Firebase Admin (FCM)", + fields: [ + { key: "serviceAccountJson", label: "Service Account JSON Content", type: "textarea" } + ] + }, + appwrite: { + label: "Appwrite (Chat & Realtime)", + fields: [ + { key: "endpoint", label: "API Endpoint" }, + { key: "projectId", label: "Project ID" }, + { key: "apiKey", label: "API Key (Standard)", type: "password" } + ] + } } const configuredMap = new Map(credentials.map((svc) => [svc.service_name, svc])) @@ -326,7 +369,20 @@ export default function SettingsPage() { {selectedService && schemas[selectedService]?.fields.map((field: any) => (
- setCredentialPayload({ ...credentialPayload, [field.key]: e.target.value })} /> + {field.type === "textarea" ? ( +