import { createBrowserClient } from "@supabase/ssr"

declare global {
  interface Window {
    __supabase_client__?: ReturnType<typeof createBrowserClient>
  }
}

export function createClient() {
  if (typeof window === "undefined") {
    return null as any
  }

  // Return existing singleton from window
  if (window.__supabase_client__) {
    return window.__supabase_client__
  }

  const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL
  const supabaseAnonKey = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY

  if (!supabaseUrl || !supabaseAnonKey) {
    return null
  }

  window.__supabase_client__ = createBrowserClient(supabaseUrl, supabaseAnonKey)

  return window.__supabase_client__
}

export { createClient as createBrowserClient }
