"use client"; import { useEffect, useState } from "react"; import { supabase } from "@/lib/supabase"; import { Card, CardContent } from "@/components/ui/layout/Card"; import { Button } from "@/components/ui/forms/Button"; import { useAuth } from "@/contexts/AuthContext"; export default function DiagnosticsPage() { const [results, setResults] = useState({}); const [isRunning, setIsRunning] = useState(false); const { user, userDetails } = useAuth(); const runDiagnostics = async () => { setIsRunning(true); const diagnosticResults: any = { timestamp: new Date().toISOString(), auth: { user, userDetails }, }; try { // Test general permissions const { data: authTest, error: authError } = await supabase.auth.getUser(); diagnosticResults.authTest = { data: authTest, error: authError }; // Test websites table access - select const { data: selectTest, error: selectError } = await supabase .from("websites") .select("*") .limit(5); diagnosticResults.selectTest = { data: selectTest, error: selectError }; // Test organizations table access const { data: orgTest, error: orgError } = await supabase .from("organizations") .select("*") .limit(5); diagnosticResults.orgTest = { data: orgTest, error: orgError }; // Test insert (with immediate deletion to avoid clutter) const testName = `Test Website ${new Date().toISOString()}`; const { data: insertTest, error: insertError } = await supabase .from("websites") .insert([ { name: testName, base_url: "https://example.com/test", organization_id: userDetails?.organization_id, is_active: true, }, ]) .select(); diagnosticResults.insertTest = { data: insertTest, error: insertError }; // If insert succeeded, delete the test website if (insertTest && insertTest.length > 0) { const { data: deleteTest, error: deleteError } = await supabase .from("websites") .delete() .eq("id", insertTest[0].id); diagnosticResults.deleteTest = { data: deleteTest, error: deleteError }; } setResults(diagnosticResults); } catch (error) { diagnosticResults.error = String(error); setResults(diagnosticResults); } finally { setIsRunning(false); } }; return (

Database Diagnostics

Results:

              {JSON.stringify(results, null, 2)}
            
); }