import { useState } from "react"; import { Button } from "@/components/ui/button"; import { Switch } from "@/components/ui/switch"; import { Label } from "@/components/ui/label"; // We might need a Supabase icon here, but for now, let's use a generic one or text. // import { Supabase } from "lucide-react"; // Placeholder import { DatabaseZap } from "lucide-react"; // Using DatabaseZap as a placeholder import { useSettings } from "@/hooks/useSettings"; import { showSuccess, showError } from "@/lib/toast"; export function SupabaseIntegration() { const { settings, updateSettings } = useSettings(); const [isDisconnecting, setIsDisconnecting] = useState(false); const handleDisconnectFromSupabase = async () => { setIsDisconnecting(true); try { // Clear the entire supabase object in settings const result = await updateSettings({ supabase: undefined, // Also disable the migration setting on disconnect enableSupabaseWriteSqlMigration: false, }); if (result) { showSuccess("Successfully disconnected from Supabase"); } else { showError("Failed to disconnect from Supabase"); } } catch (err: any) { showError( err.message || "An error occurred while disconnecting from Supabase", ); } finally { setIsDisconnecting(false); } }; const handleMigrationSettingChange = async (enabled: boolean) => { try { await updateSettings({ enableSupabaseWriteSqlMigration: enabled, }); showSuccess("Setting updated"); } catch (err: any) { showError(err.message || "Failed to update setting"); } }; // Check if there's any Supabase accessToken to determine connection status const isConnected = !!settings?.supabase?.accessToken; if (!isConnected) { return null; } return (
Your account is connected to Supabase.
Generate SQL migration files when modifying your Supabase schema. This helps you track database changes in version control, though these files aren't used for chat context, which uses the live schema.