import { useState, useEffect } from 'react'; import { toast } from 'sonner'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { Button } from '@/components/ui/button'; import { useClient } from 'hooks/useClient'; type ApifyConfigData = { apiToken: string; }; type ApifyStatus = { configured: boolean; }; export const ApifyConfig = () => { const client = useClient(); const [isLoading, setIsLoading] = useState(true); const [isSaving, setIsSaving] = useState(false); const [apiToken, setApiToken] = useState(''); const [status, setStatus] = useState(null); useEffect(() => { Promise.all([ client.get('/integrations/apify/config').then((data) => { if (data?.apiToken) setApiToken(data.apiToken); }), client.get('/integrations/apify/status').then(setStatus), ]) .catch(() => {}) .finally(() => setIsLoading(false)); }, []); const handleSave = async () => { if (isSaving) return; setIsSaving(true); try { await client.put('/integrations/apify/config', { apiToken: apiToken.trim() }); toast.success('Apify API token saved'); setStatus({ configured: !!apiToken.trim() }); } catch { toast.error('Failed to save Apify API token'); } finally { setIsSaving(false); } }; if (isLoading) return null; return (
{status && (
{status.configured ? 'API token configured' : 'Not configured'}
)}
); };