woohoo sign in flow working!!!!
This commit is contained in:
@@ -12,13 +12,12 @@ import {
|
|||||||
setPersistence,
|
setPersistence,
|
||||||
browserLocalPersistence,
|
browserLocalPersistence,
|
||||||
User as FirebaseUser,
|
User as FirebaseUser,
|
||||||
|
onAuthStateChanged,
|
||||||
|
updateCurrentUser,
|
||||||
|
getAuth,
|
||||||
} from 'firebase/auth';
|
} from 'firebase/auth';
|
||||||
import { useSnackbar } from 'notistack';
|
import { useSnackbar } from 'notistack';
|
||||||
|
|
||||||
const provider = new GoogleAuthProvider();
|
|
||||||
|
|
||||||
provider.addScope('https://www.googleapis.com/auth/contacts.readonly');
|
|
||||||
|
|
||||||
interface IAuthContext {
|
interface IAuthContext {
|
||||||
user?: FirebaseUser;
|
user?: FirebaseUser;
|
||||||
}
|
}
|
||||||
@@ -28,6 +27,24 @@ const AuthContext = React.createContext<IAuthContext>({});
|
|||||||
export const AuthProvider = ({ children }: { children: React.ReactNode }) => {
|
export const AuthProvider = ({ children }: { children: React.ReactNode }) => {
|
||||||
const { enqueueSnackbar } = useSnackbar();
|
const { enqueueSnackbar } = useSnackbar();
|
||||||
|
|
||||||
|
// since auth.currentuser isn't updating
|
||||||
|
const [currentUser, setCurrentUser] = useState<FirebaseUser>(null);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const authListener = onAuthStateChanged(firebaseAuth, (user) => {
|
||||||
|
console.log('auth changed!!!!', user);
|
||||||
|
|
||||||
|
if (user) {
|
||||||
|
setCurrentUser(user);
|
||||||
|
} else {
|
||||||
|
// User is signed out
|
||||||
|
// ...
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return () => authListener();
|
||||||
|
}, [setCurrentUser]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const tokenListener = window.electronAPI.once(
|
const tokenListener = window.electronAPI.once(
|
||||||
Channels.GOOGLE_AUTH_TOKENS,
|
Channels.GOOGLE_AUTH_TOKENS,
|
||||||
@@ -47,7 +64,7 @@ export const AuthProvider = ({ children }: { children: React.ReactNode }) => {
|
|||||||
// The signed-in user info.
|
// The signed-in user info.
|
||||||
const user = result.user;
|
const user = result.user;
|
||||||
console.log(user);
|
console.log(user);
|
||||||
|
updateCurrentUser(firebaseAuth, user);
|
||||||
enqueueSnackbar('Signed in! All set!', { variant: 'success' });
|
enqueueSnackbar('Signed in! All set!', { variant: 'success' });
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
@@ -70,8 +87,8 @@ export const AuthProvider = ({ children }: { children: React.ReactNode }) => {
|
|||||||
}, [enqueueSnackbar]);
|
}, [enqueueSnackbar]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<AuthContext.Provider value={{ user: firebaseAuth.currentUser }}>
|
<AuthContext.Provider value={{ user: currentUser }}>
|
||||||
{firebaseAuth.currentUser ? <>{children}</> : <Login />}
|
{currentUser ? <>{children}</> : <Login />}
|
||||||
</AuthContext.Provider>
|
</AuthContext.Provider>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -73,6 +73,8 @@ export function ElectronProvider({ children }: { children: React.ReactNode }) {
|
|||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
// window.removeEventListener(Channels.ON_WINDOW_BLUR, blurListener);
|
// window.removeEventListener(Channels.ON_WINDOW_BLUR, blurListener);
|
||||||
|
blurListener();
|
||||||
|
focusListener();
|
||||||
};
|
};
|
||||||
}, [setDesktopMode, setIsWindowFocused]);
|
}, [setDesktopMode, setIsWindowFocused]);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user