diff options
| author | soryu <soryu@soryu.co> | 2026-01-11 04:11:06 +0000 |
|---|---|---|
| committer | soryu <soryu@soryu.co> | 2026-01-11 04:11:06 +0000 |
| commit | 353918e05fb6455600fa2b15b44b2e8fea647760 (patch) | |
| tree | 9c571878674d1d1a68e4534f05a9d26a9f7211ea | |
| parent | 3d15ec753f93babcc1fa0cf3958f1f164e98fea4 (diff) | |
| download | soryu-353918e05fb6455600fa2b15b44b2e8fea647760.tar.gz soryu-353918e05fb6455600fa2b15b44b2e8fea647760.zip | |
Add auth variables by default
| -rw-r--r-- | makima/frontend/prod.env | 3 | ||||
| -rw-r--r-- | makima/frontend/src/contexts/AuthContext.tsx | 27 | ||||
| -rw-r--r-- | makima/frontend/src/lib/supabase.ts | 32 |
3 files changed, 18 insertions, 44 deletions
diff --git a/makima/frontend/prod.env b/makima/frontend/prod.env deleted file mode 100644 index ac420e2..0000000 --- a/makima/frontend/prod.env +++ /dev/null @@ -1,3 +0,0 @@ -# These are all public tokens / config -VITE_SUPABASE_URL=https://jalcdbwvbzvtxrwduwop.supabase.co -VITE_SUPABASE_PUBLISHABLE_DEFAULT_KEY=sb_publishable_7aM3npUD3py5tVei-juGJw_PmdT-hl0 diff --git a/makima/frontend/src/contexts/AuthContext.tsx b/makima/frontend/src/contexts/AuthContext.tsx index ce2724b..809c98a 100644 --- a/makima/frontend/src/contexts/AuthContext.tsx +++ b/makima/frontend/src/contexts/AuthContext.tsx @@ -6,7 +6,7 @@ import { useCallback, type ReactNode, } from "react"; -import { supabase, isAuthConfigured, type Session, type User } from "../lib/supabase"; +import { supabase, isAuthConfigured, SUPABASE_URL, type Session, type User } from "../lib/supabase"; interface AuthState { user: User | null; @@ -42,16 +42,6 @@ export function AuthProvider({ children }: { children: ReactNode }) { // Initialize auth state useEffect(() => { - if (!supabase) { - // Auth not configured - allow unauthenticated access - setState((prev) => ({ - ...prev, - isLoading: false, - isAuthenticated: true, // Allow access when auth is not configured - })); - return; - } - // Get initial session supabase.auth.getSession().then(({ data: { session } }) => { setState({ @@ -84,9 +74,6 @@ export function AuthProvider({ children }: { children: ReactNode }) { const signIn = useCallback( async (email: string, password: string): Promise<{ error: Error | null }> => { - if (!supabase) { - return { error: new Error("Auth not configured") }; - } const { error } = await supabase.auth.signInWithPassword({ email, password }); return { error: error ? new Error(error.message) : null }; }, @@ -95,9 +82,6 @@ export function AuthProvider({ children }: { children: ReactNode }) { const signUp = useCallback( async (email: string, password: string): Promise<{ error: Error | null }> => { - if (!supabase) { - return { error: new Error("Auth not configured") }; - } const { error } = await supabase.auth.signUp({ email, password }); return { error: error ? new Error(error.message) : null }; }, @@ -114,20 +98,15 @@ export function AuthProvider({ children }: { children: ReactNode }) { })); // Clear Supabase storage directly in case signOut API fails - const storageKey = `sb-${import.meta.env.VITE_SUPABASE_URL?.split('//')[1]?.split('.')[0]}-auth-token`; + const storageKey = `sb-${SUPABASE_URL.split('//')[1]?.split('.')[0]}-auth-token`; localStorage.removeItem(storageKey); // Try to call signOut API (may fail if token is invalid, that's OK) - if (supabase) { - await supabase.auth.signOut({ scope: 'local' }).catch(() => {}); - } + await supabase.auth.signOut({ scope: 'local' }).catch(() => {}); }, []); const signInWithOAuth = useCallback( async (provider: "github" | "google"): Promise<{ error: Error | null }> => { - if (!supabase) { - return { error: new Error("Auth not configured") }; - } const { error } = await supabase.auth.signInWithOAuth({ provider, options: { diff --git a/makima/frontend/src/lib/supabase.ts b/makima/frontend/src/lib/supabase.ts index eedff10..2f2528f 100644 --- a/makima/frontend/src/lib/supabase.ts +++ b/makima/frontend/src/lib/supabase.ts @@ -1,26 +1,24 @@ import { createClient, SupabaseClient, Session, User } from "@supabase/supabase-js"; -// Supabase configuration from environment variables -const SUPABASE_URL = import.meta.env.VITE_SUPABASE_URL as string | undefined; -const SUPABASE_ANON_KEY = import.meta.env.VITE_SUPABASE_ANON_KEY as string | undefined; +// Default Supabase configuration (can be overridden by environment variables) +const DEFAULT_SUPABASE_URL = "https://jalcdbwvbzvtxrwduwop.supabase.co"; +const DEFAULT_SUPABASE_ANON_KEY = "sb_publishable_7aM3npUD3py5tVei-juGJw_PmdT-hl0"; -// Only create client if configuration is available -let supabaseClient: SupabaseClient | null = null; +// Use environment variables if set, otherwise fall back to defaults +export const SUPABASE_URL = import.meta.env.VITE_SUPABASE_URL || DEFAULT_SUPABASE_URL; +const SUPABASE_ANON_KEY = import.meta.env.VITE_SUPABASE_ANON_KEY || DEFAULT_SUPABASE_ANON_KEY; -if (SUPABASE_URL && SUPABASE_ANON_KEY) { - supabaseClient = createClient(SUPABASE_URL, SUPABASE_ANON_KEY, { - auth: { - autoRefreshToken: true, - persistSession: true, - detectSessionInUrl: true, - }, - }); -} - -export const supabase = supabaseClient; +// Create Supabase client with default or overridden configuration +export const supabase: SupabaseClient = createClient(SUPABASE_URL, SUPABASE_ANON_KEY, { + auth: { + autoRefreshToken: true, + persistSession: true, + detectSessionInUrl: true, + }, +}); export function isAuthConfigured(): boolean { - return supabaseClient !== null; + return true; } export type { Session, User }; |
