diff --git a/packages/frontend/src/App.tsx b/packages/frontend/src/App.tsx
index 05c254f8..37007fdb 100644
--- a/packages/frontend/src/App.tsx
+++ b/packages/frontend/src/App.tsx
@@ -11,7 +11,7 @@ import ProjectSearchLayout from './layouts/ProjectSearch';
import Index from './pages';
import AuthPage from './pages/AuthPage';
import { DashboardLayout } from './pages/org-slug/layout';
-import Web3Provider from 'context/Web3Provider';
+// import Web3Provider from 'context/Web3Provider';
import { BASE_URL } from 'utils/constants';
const router = createBrowserRouter([
@@ -75,9 +75,9 @@ function App() {
}, []);
return (
-
+ //
-
+ //
);
}
diff --git a/packages/frontend/src/components/shared/Sidebar/Sidebar.tsx b/packages/frontend/src/components/shared/Sidebar/Sidebar.tsx
index 4aaffe7f..cf68c2f2 100644
--- a/packages/frontend/src/components/shared/Sidebar/Sidebar.tsx
+++ b/packages/frontend/src/components/shared/Sidebar/Sidebar.tsx
@@ -2,7 +2,7 @@ import { useCallback, useEffect, useState } from 'react';
import { useNavigate, useParams } from 'react-router-dom';
import { User } from 'gql-client';
import { motion } from 'framer-motion';
-import { useDisconnect } from 'wagmi';
+// import { useDisconnect } from 'wagmi';
import { useGQLClient } from 'context/GQLClientContext';
import {
@@ -32,7 +32,7 @@ export const Sidebar = ({ mobileOpen }: SidebarProps) => {
const isDesktop = useMediaQuery('(min-width: 960px)');
const [user, setUser] = useState();
- const { disconnect } = useDisconnect();
+ // const { disconnect } = useDisconnect();
const fetchUser = useCallback(async () => {
const { user } = await client.getUser();
@@ -49,9 +49,9 @@ export const Sidebar = ({ mobileOpen }: SidebarProps) => {
credentials: 'include',
});
localStorage.clear();
- disconnect();
+ // disconnect();
navigate('/login');
- }, [disconnect, navigate]);
+ }, [navigate]);
return (
void;
+// setIsDataReceived: (isReceived: boolean) => void;
+// isVisible: boolean;
+// }
+) => {
+ const navigate = useNavigate();
+ useEffect(() => {
+ const handleMessage = async (event: MessageEvent) => {
+ if (event.origin !== VITE_WALLET_IFRAME_URL) return;
+
+ // setIsDataReceived(true);
+ if (event.data.type === 'SIGN_IN_RESPONSE') {
+ try {
+ const { success } = (
+ await axiosInstance.post('/auth/validate', {
+ message: event.data.data.message,
+ signature: event.data.data.signature,
+ })
+ ).data;
+
+ if(success) {
+ navigate("/")
+ }
+ return success;
+ } catch (error) {
+ return false;
+ }
+ // setAccounts(event.data.data);
+ } else if (event.data.type === 'ERROR') {
+ console.error('Error from wallet:', event.data.message);
+ }
+ };
+
+ window.addEventListener('message', handleMessage);
+
+ return () => {
+ window.removeEventListener('message', handleMessage);
+ };
+ }, []);
+
+ useEffect(() => {
+ const handleInitiateAutoSignIn = async (event: MessageEvent) => {
+ if (event.origin !== VITE_WALLET_IFRAME_URL) return;
+
+ if (event.data.type === 'ACCOUNT_ADDRESS_RESPONSE') {
+ const iframe = document.getElementById('autoSignInFrame') as HTMLIFrameElement;
+
+ if (!iframe.contentWindow) {
+ console.error('Iframe not found or not loaded');
+ return;
+ }
+
+ const message = new SiweMessage({
+ version: '1',
+ domain: window.location.host,
+ uri: window.location.origin,
+ chainId: 1,
+ address: event.data.data,
+ nonce: generateNonce(),
+ // Human-readable ASCII assertion that the user will sign, and it must not contain `\n`.
+ statement: 'Sign in With Ethereum.',
+ }).prepareMessage()
+
+ iframe.contentWindow.postMessage(
+ {
+ type: 'AUTO_SIGN_IN',
+ chainId: '1',
+ message,
+ },
+ VITE_WALLET_IFRAME_URL,
+ );
+
+ // setAccounts(event.data.data);
+ } else if (event.data.type === 'ERROR') {
+ console.error('Error from wallet:', event.data.message);
+ }
+ };
+
+ window.addEventListener('message', handleInitiateAutoSignIn);
+
+ return () => {
+ window.removeEventListener('message', handleInitiateAutoSignIn);
+ };
+ }, []);
+
+ // /////////////////////////////////////////////////
+ const getAddressFromWallet = useCallback(() => {
+ const iframe = document.getElementById('autoSignInFrame') as HTMLIFrameElement;
+
+ if (!iframe.contentWindow) {
+ console.error('Iframe not found or not loaded');
+ return;
+ }
+
+ iframe.contentWindow.postMessage(
+ {
+ type: 'GET_ACCOUNT_ADDRESS',
+ chainId: '1',
+ },
+ VITE_WALLET_IFRAME_URL,
+ );
+ }, []);
+
+ return (
+
+
+
+
+
+ );
+};
+
+export default AutoSignInIFrameModal;
diff --git a/packages/frontend/src/index.tsx b/packages/frontend/src/index.tsx
index 862eaf67..f8a18bb0 100644
--- a/packages/frontend/src/index.tsx
+++ b/packages/frontend/src/index.tsx
@@ -14,7 +14,7 @@ import { SERVER_GQL_PATH } from './constants';
import { Toaster } from 'components/shared/Toast';
import { LogErrorBoundary } from 'utils/log-error';
import { BASE_URL } from 'utils/constants';
-import Web3ModalProvider from './context/Web3Provider';
+// import Web3ModalProvider from './context/Web3Provider';
import './index.css';
console.log(`v-0.0.9`);
@@ -32,12 +32,12 @@ root.render(
-
+ {/* */}
-
+ {/* */}
,
diff --git a/packages/frontend/src/pages/AuthPage.tsx b/packages/frontend/src/pages/AuthPage.tsx
index 39b3ed89..2d9cc6d5 100644
--- a/packages/frontend/src/pages/AuthPage.tsx
+++ b/packages/frontend/src/pages/AuthPage.tsx
@@ -1,4 +1,5 @@
-import { Login } from './auth/Login';
+import AutoSignInIFrameModal from 'components/shared/auth/AutoSignInIFrameModal';
+// import { Login } from './auth/Login';
const AuthPage = () => {
return (
@@ -14,7 +15,7 @@ const AuthPage = () => {