diff --git a/components/settings/unified/tabs/SiteGeneralTab.tsx b/components/settings/unified/tabs/SiteGeneralTab.tsx index d88c245..eb91777 100644 --- a/components/settings/unified/tabs/SiteGeneralTab.tsx +++ b/components/settings/unified/tabs/SiteGeneralTab.tsx @@ -2,13 +2,14 @@ import { useState, useEffect } from 'react' import { useRouter } from 'next/navigation' -import { Input, Button, Select, toast, Spinner, getAuthErrorMessage } from '@ciphera-net/ui' -import { Copy, CheckCircle } from '@phosphor-icons/react' +import { Input, Button, Select, toast, Spinner, getAuthErrorMessage, CheckIcon, ZapIcon } from '@ciphera-net/ui' import { useSite } from '@/lib/swr/dashboard' import { updateSite, resetSiteData } from '@/lib/api/sites' import { useAuth } from '@/lib/auth/context' import { useUnifiedSettings } from '@/lib/unified-settings-context' import DeleteSiteModal from '@/components/sites/DeleteSiteModal' +import ScriptSetupBlock from '@/components/sites/ScriptSetupBlock' +import VerificationModal from '@/components/sites/VerificationModal' const TIMEZONES = [ { value: 'UTC', label: 'UTC' }, @@ -27,9 +28,6 @@ const TIMEZONES = [ { value: 'Australia/Sydney', label: 'Australia/Sydney (AEST)' }, ] -const API_URL = process.env.NEXT_PUBLIC_API_URL || 'http://localhost:8082' -const APP_URL = process.env.NEXT_PUBLIC_APP_URL || 'http://localhost:3003' - export default function SiteGeneralTab({ siteId }: { siteId: string }) { const router = useRouter() const { user } = useAuth() @@ -38,8 +36,8 @@ export default function SiteGeneralTab({ siteId }: { siteId: string }) { const [name, setName] = useState('') const [timezone, setTimezone] = useState('UTC') const [saving, setSaving] = useState(false) - const [copied, setCopied] = useState(false) const [showDeleteModal, setShowDeleteModal] = useState(false) + const [showVerificationModal, setShowVerificationModal] = useState(false) const canEdit = user?.role === 'owner' || user?.role === 'admin' @@ -74,16 +72,6 @@ export default function SiteGeneralTab({ siteId }: { siteId: string }) { } } - const trackingScript = `` - const frustrationScript = `` - - const copyScript = () => { - navigator.clipboard.writeText(trackingScript + '\n' + frustrationScript) - setCopied(true) - toast.success('Copied to clipboard') - setTimeout(() => setCopied(false), 2000) - } - if (!site) { return (
@@ -129,21 +117,48 @@ export default function SiteGeneralTab({ siteId }: { siteId: string }) {

Tracking Script

-

Add this to your website to start tracking visitors.

+

Add this to your website to start tracking visitors. Choose your framework for setup instructions.

-
-
-            {trackingScript}{'\n'}{frustrationScript}
-          
- -
+ { + try { + await updateSite(siteId, { name: site.name, timezone: site.timezone, script_features: features }) + await mutate() + } catch { + toast.error('Failed to update script features') + } + }} + /> + + {/* Verify Installation */} + +

+ {site.is_verified ? 'Your site is sending data correctly.' : 'Check if your site is sending data correctly.'} +

{/* Save */} @@ -203,6 +218,13 @@ export default function SiteGeneralTab({ siteId }: { siteId: string }) { siteDomain={site?.domain || ''} siteId={siteId} /> + + setShowVerificationModal(false)} + site={site} + onVerified={() => mutate()} + />
) }