From fea5a7b76cf4f8f75303d543de7154b9af9696c9 Mon Sep 17 00:00:00 2001 From: austinkelsay Date: Wed, 7 Aug 2024 17:17:51 -0500 Subject: [PATCH] remove usLogin --- src/components/Layout.js | 2 - src/hooks/useLogin.js | 123 --------------------------------------- 2 files changed, 125 deletions(-) delete mode 100644 src/hooks/useLogin.js diff --git a/src/components/Layout.js b/src/components/Layout.js index 8a3431e..28a6442 100644 --- a/src/components/Layout.js +++ b/src/components/Layout.js @@ -1,8 +1,6 @@ import React from 'react'; -import { useLogin } from '@/hooks/useLogin'; const Layout = ({ children }) => { - useLogin(); return (
diff --git a/src/hooks/useLogin.js b/src/hooks/useLogin.js deleted file mode 100644 index 3829e26..0000000 --- a/src/hooks/useLogin.js +++ /dev/null @@ -1,123 +0,0 @@ -import { useCallback, useEffect } from 'react'; -import { useRouter } from 'next/router'; -import axios from 'axios'; -import { generateSecretKey, getPublicKey } from 'nostr-tools'; -import { findKind0Fields } from "@/utils/nostr"; -import { useToast } from './useToast'; -import { useNDKContext } from "@/context/NDKContext"; - -export const useLogin = () => { - const router = useRouter(); - const { showToast } = useToast(); - const ndk = useNDKContext(); - - // Attempt Auto Login on render - useEffect(() => { - const autoLogin = async () => { - const user = window.localStorage.getItem('user'); - const publicKey = JSON.parse(user)?.pubkey; - - if (!publicKey) return; - - try { - const response = await axios.get(`/api/users/${publicKey}`); - console.log('auto login response:', response); - if (response.status === 200 && response.data) { - window.localStorage.setItem('user', JSON.stringify(response.data)); - } else if (response.status === 204) { - // User not found, create a new user - const author = await ndk.getUser({ pubkey: publicKey }); - const kind0 = await author.fetchProfile(); - - console.log('kind0:', kind0); - - let fields = null; - - if (kind0) { - fields = await findKind0Fields(kind0); - } - - const payload = { pubkey: publicKey, ...fields }; - - try { - const createUserResponse = await axios.post(`/api/users`, payload); - console.log('create user response:', createUserResponse); - if (createUserResponse.status === 201) { - window.localStorage.setItem('user', JSON.stringify(createUserResponse.data)); - } else { - console.error('Error creating user:', createUserResponse); - } - } catch (createError) { - console.error('Error creating user:', createError); - showToast('error', 'Error Creating User', 'Failed to create user'); - } - } - } catch (error) { - console.error('Error during auto login:', error); - } - }; - - autoLogin(); - }, [ndk, showToast]); - - const nostrLogin = useCallback(async () => { - if (!window || !window.nostr) { - showToast('error', 'Nostr Unavailable', 'Nostr is not available'); - return; - } - - const publicKey = await window.nostr.getPublicKey(); - if (!publicKey) { - showToast('error', 'Public Key Error', 'Failed to obtain public key'); - return; - } - - try { - const response = await axios.get(`/api/users/${publicKey}`); - let userData; - - if (response.status === 204) { - // User not found, create a new user - const author = await ndk.getUser({ pubkey: publicKey }); - const kind0 = await author.fetchProfile(); - - let fields = {}; - if (kind0) { - fields = await findKind0Fields(kind0); - } - - const payload = { pubkey: publicKey, ...fields }; - const createUserResponse = await axios.post(`/api/users`, payload); - if (createUserResponse.status !== 201) { - throw new Error('Failed to create user'); - } - userData = createUserResponse.data; - } else { - userData = response.data; - } - - window.localStorage.setItem('user', JSON.stringify(userData)); - router.push('/').then(() => window.location.reload()); - } catch (error) { - console.error('Error during login:', error); - showToast('error', 'Login Error', error.message || 'Failed to log in'); - } - }, [router, showToast, ndk]); - - const anonymousLogin = useCallback(() => { - try { - const secretKey = generateSecretKey(); - const publicKey = getPublicKey(secretKey); - // need to fix with byteToHex - const hexSecretKey = secretKey.toString('hex'); - - window.localStorage.setItem('user', JSON.stringify({ pubkey: publicKey, secretKey: hexSecretKey })); - router.push('/').then(() => window.location.reload()); - } catch (error) { - console.error('Error during anonymous login:', error); - showToast('error', 'Error Logging In', 'Failed to log in'); - } - }, [router, showToast]); - - return { nostrLogin, anonymousLogin }; -};