Untitled

 avatar
unknown
plain_text
a year ago
618 B
6
Indexable
import { useState, useEffect } from "react";
import { User } from "firebase/auth";
import { auth } from "@/services/firebase";

interface AuthState {
  isSignedIn: boolean;
  isPending: boolean;
  user: User | null;
}

export function useAuth() {
  const [authState, setAuthState] = useState<AuthState>({
    isSignedIn: false,
    isPending: true,
    user: null,
  });

  useEffect(() => {
    const unregisterAuthObserver = auth.onAuthStateChanged((user) =>
      setAuthState({ user, isPending: false, isSignedIn: !!user })
    );
    return () => unregisterAuthObserver();
  }, []);

  return { ...authState };
}
Editor is loading...
Leave a Comment