Fix accounts fetch after checking network in wallet
This commit is contained in:
parent
ede8c666e1
commit
39da84d81a
@ -15,7 +15,6 @@ VITE_GITHUB_CLIENT_ID = 'LACONIC_HOSTED_CONFIG_github_clientid'
|
|||||||
VITE_GITHUB_PWA_TEMPLATE_REPO = 'LACONIC_HOSTED_CONFIG_github_pwa_templaterepo'
|
VITE_GITHUB_PWA_TEMPLATE_REPO = 'LACONIC_HOSTED_CONFIG_github_pwa_templaterepo'
|
||||||
VITE_GITHUB_IMAGE_UPLOAD_PWA_TEMPLATE_REPO = 'LACONIC_HOSTED_CONFIG_github_image_upload_templaterepo'
|
VITE_GITHUB_IMAGE_UPLOAD_PWA_TEMPLATE_REPO = 'LACONIC_HOSTED_CONFIG_github_image_upload_templaterepo'
|
||||||
VITE_GITHUB_NEXT_APP_TEMPLATE_REPO = 'LACONIC_HOSTED_CONFIG_github_next_app_templaterepo'
|
VITE_GITHUB_NEXT_APP_TEMPLATE_REPO = 'LACONIC_HOSTED_CONFIG_github_next_app_templaterepo'
|
||||||
VITE_LACONICD_CHAIN_ID = 'LACONIC_HOSTED_CONFIG_laconicd_chain_id'
|
|
||||||
VITE_WALLET_IFRAME_URL = 'LACONIC_HOSTED_CONFIG_wallet_iframe_url'
|
VITE_WALLET_IFRAME_URL = 'LACONIC_HOSTED_CONFIG_wallet_iframe_url'
|
||||||
VITE_LIT_RELAY_API_KEY = 'LACONIC_HOSTED_CONFIG_lit_relay_api_key'
|
VITE_LIT_RELAY_API_KEY = 'LACONIC_HOSTED_CONFIG_lit_relay_api_key'
|
||||||
VITE_BUGSNAG_API_KEY = 'LACONIC_HOSTED_CONFIG_bugsnag_api_key'
|
VITE_BUGSNAG_API_KEY = 'LACONIC_HOSTED_CONFIG_bugsnag_api_key'
|
||||||
|
@ -14,5 +14,6 @@
|
|||||||
"prepare": "husky install",
|
"prepare": "husky install",
|
||||||
"build": "lerna run build --stream",
|
"build": "lerna run build --stream",
|
||||||
"lint": "lerna run lint --stream"
|
"lint": "lerna run lint --stream"
|
||||||
}
|
},
|
||||||
|
"packageManager": "yarn@1.22.19+sha1.4ba7fc5c6e704fce2066ecbfb0b0d8976fe62447"
|
||||||
}
|
}
|
@ -12,5 +12,4 @@ VITE_BUGSNAG_API_KEY=
|
|||||||
VITE_PASSKEY_WALLET_RPID=
|
VITE_PASSKEY_WALLET_RPID=
|
||||||
VITE_TURNKEY_API_BASE_URL=
|
VITE_TURNKEY_API_BASE_URL=
|
||||||
|
|
||||||
VITE_LACONICD_CHAIN_ID=
|
|
||||||
VITE_WALLET_IFRAME_URL=
|
VITE_WALLET_IFRAME_URL=
|
||||||
|
BIN
packages/frontend/public/android-chrome-192x192.png
Normal file
BIN
packages/frontend/public/android-chrome-192x192.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.1 KiB |
@ -3,7 +3,6 @@ import { useCallback, useEffect } from 'react';
|
|||||||
import { Box, Modal } from '@mui/material';
|
import { Box, Modal } from '@mui/material';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
VITE_LACONICD_CHAIN_ID,
|
|
||||||
VITE_WALLET_IFRAME_URL,
|
VITE_WALLET_IFRAME_URL,
|
||||||
} from 'utils/constants';
|
} from 'utils/constants';
|
||||||
import { REQUEST_WALLET_ACCOUNTS, WALLET_ACCOUNTS_DATA } from '../../../constants';
|
import { REQUEST_WALLET_ACCOUNTS, WALLET_ACCOUNTS_DATA } from '../../../constants';
|
||||||
@ -18,7 +17,7 @@ const ApproveTransactionModal = ({
|
|||||||
setIsDataReceived: (isReceived: boolean) => void;
|
setIsDataReceived: (isReceived: boolean) => void;
|
||||||
isVisible: boolean;
|
isVisible: boolean;
|
||||||
}) => {
|
}) => {
|
||||||
const { setIframe, isNetworkAvailable } = useAddNetwork();
|
const { setIframe, isNetworkAvailable, networkData } = useAddNetwork();
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const handleMessage = (event: MessageEvent) => {
|
const handleMessage = (event: MessageEvent) => {
|
||||||
@ -28,7 +27,7 @@ const ApproveTransactionModal = ({
|
|||||||
setIsDataReceived(true);
|
setIsDataReceived(true);
|
||||||
|
|
||||||
if (event.data.data.length === 0) {
|
if (event.data.data.length === 0) {
|
||||||
console.error(`Accounts not present for chainId: ${VITE_LACONICD_CHAIN_ID}`);
|
console.error(`Accounts not present for chainId: ${networkData?.chainId}`);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -45,9 +44,14 @@ const ApproveTransactionModal = ({
|
|||||||
return () => {
|
return () => {
|
||||||
window.removeEventListener('message', handleMessage);
|
window.removeEventListener('message', handleMessage);
|
||||||
};
|
};
|
||||||
}, []);
|
}, [networkData]);
|
||||||
|
|
||||||
const getDataFromWallet = useCallback(() => {
|
const getDataFromWallet = useCallback(() => {
|
||||||
|
if (!networkData) {
|
||||||
|
console.error('networkData should not be empty');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const iframe = document.getElementById('walletIframe') as HTMLIFrameElement;
|
const iframe = document.getElementById('walletIframe') as HTMLIFrameElement;
|
||||||
|
|
||||||
if (!iframe.contentWindow) {
|
if (!iframe.contentWindow) {
|
||||||
@ -58,14 +62,16 @@ const ApproveTransactionModal = ({
|
|||||||
iframe.contentWindow.postMessage(
|
iframe.contentWindow.postMessage(
|
||||||
{
|
{
|
||||||
type: REQUEST_WALLET_ACCOUNTS,
|
type: REQUEST_WALLET_ACCOUNTS,
|
||||||
chainId: VITE_LACONICD_CHAIN_ID,
|
chainId: networkData.chainId,
|
||||||
},
|
},
|
||||||
VITE_WALLET_IFRAME_URL,
|
VITE_WALLET_IFRAME_URL,
|
||||||
);
|
);
|
||||||
}, []);
|
}, [networkData]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
getDataFromWallet()
|
if (isNetworkAvailable) {
|
||||||
|
getDataFromWallet();
|
||||||
|
}
|
||||||
}, [isNetworkAvailable, getDataFromWallet])
|
}, [isNetworkAvailable, getDataFromWallet])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -25,10 +25,10 @@ import ApproveTransactionModal from './ApproveTransactionModal';
|
|||||||
import EnvironmentVariablesForm from 'pages/org-slug/projects/id/settings/EnvironmentVariablesForm';
|
import EnvironmentVariablesForm from 'pages/org-slug/projects/id/settings/EnvironmentVariablesForm';
|
||||||
import { EnvironmentVariablesFormValues } from 'types/types';
|
import { EnvironmentVariablesFormValues } from 'types/types';
|
||||||
import {
|
import {
|
||||||
VITE_LACONICD_CHAIN_ID,
|
|
||||||
VITE_WALLET_IFRAME_URL,
|
VITE_WALLET_IFRAME_URL,
|
||||||
} from 'utils/constants';
|
} from 'utils/constants';
|
||||||
import CheckBalanceIframe from './CheckBalanceIframe';
|
import CheckBalanceIframe from './CheckBalanceIframe';
|
||||||
|
import { useAddNetwork } from '../../../hooks/useAddNetwork';
|
||||||
|
|
||||||
type ConfigureDeploymentFormValues = {
|
type ConfigureDeploymentFormValues = {
|
||||||
option: string;
|
option: string;
|
||||||
@ -71,6 +71,7 @@ const Configure = () => {
|
|||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
const { toast, dismiss } = useToast();
|
const { toast, dismiss } = useToast();
|
||||||
const client = useGQLClient();
|
const client = useGQLClient();
|
||||||
|
const { networkData } = useAddNetwork()
|
||||||
|
|
||||||
const methods = useForm<ConfigureFormValues>({
|
const methods = useForm<ConfigureFormValues>({
|
||||||
defaultValues: {
|
defaultValues: {
|
||||||
@ -421,7 +422,7 @@ const Configure = () => {
|
|||||||
iframe.contentWindow.postMessage(
|
iframe.contentWindow.postMessage(
|
||||||
{
|
{
|
||||||
type: 'REQUEST_TX',
|
type: 'REQUEST_TX',
|
||||||
chainId: VITE_LACONICD_CHAIN_ID,
|
chainId: networkData?.chainId,
|
||||||
fromAddress: sender,
|
fromAddress: sender,
|
||||||
toAddress: recipient,
|
toAddress: recipient,
|
||||||
amount,
|
amount,
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { useState, useEffect } from 'react';
|
import { useState, useEffect } from 'react';
|
||||||
import { VITE_LACONICD_CHAIN_ID, VITE_WALLET_IFRAME_URL } from 'utils/constants';
|
import { VITE_WALLET_IFRAME_URL } from 'utils/constants';
|
||||||
import { NETWORK_ADD_FAILED_RESPONSE, NETWORK_ADDED_RESPONSE, NETWORK_ALREADY_EXISTS_RESPONSE, REQUEST_ADD_NETWORK } from '../constants';
|
import { NETWORK_ADD_FAILED_RESPONSE, NETWORK_ADDED_RESPONSE, NETWORK_ALREADY_EXISTS_RESPONSE, REQUEST_ADD_NETWORK } from '../constants';
|
||||||
|
|
||||||
interface NetworkData {
|
interface NetworkData {
|
||||||
@ -26,14 +26,13 @@ export const useAddNetwork = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!iframe?.contentWindow) {
|
if (!iframe?.contentWindow) {
|
||||||
console.error('iframe not loaded');
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
iframe.contentWindow.postMessage(
|
iframe.contentWindow.postMessage(
|
||||||
{
|
{
|
||||||
type: REQUEST_ADD_NETWORK,
|
type: REQUEST_ADD_NETWORK,
|
||||||
chainId: VITE_LACONICD_CHAIN_ID,
|
chainId: networkData.chainId,
|
||||||
networkData,
|
networkData,
|
||||||
},
|
},
|
||||||
VITE_WALLET_IFRAME_URL,
|
VITE_WALLET_IFRAME_URL,
|
||||||
@ -87,6 +86,7 @@ export const useAddNetwork = () => {
|
|||||||
return {
|
return {
|
||||||
networkData,
|
networkData,
|
||||||
isNetworkAvailable,
|
isNetworkAvailable,
|
||||||
|
iframe,
|
||||||
setIframe
|
setIframe
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -1,11 +1,17 @@
|
|||||||
import { useState, useEffect, useCallback } from 'react';
|
import { useState, useEffect, useCallback } from 'react';
|
||||||
|
|
||||||
import { VITE_LACONICD_CHAIN_ID } from 'utils/constants';
|
import { useAddNetwork } from './useAddNetwork';
|
||||||
|
|
||||||
const useCheckBalance = (amount: string, iframeId: string) => {
|
const useCheckBalance = (amount: string, iframeId: string) => {
|
||||||
const [isBalanceSufficient, setIsBalanceSufficient] = useState<boolean>();
|
const [isBalanceSufficient, setIsBalanceSufficient] = useState<boolean>();
|
||||||
|
|
||||||
|
const { networkData } = useAddNetwork()
|
||||||
|
|
||||||
const checkBalance = useCallback(() => {
|
const checkBalance = useCallback(() => {
|
||||||
|
if (!networkData) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const iframe = document.getElementById(iframeId) as HTMLIFrameElement;
|
const iframe = document.getElementById(iframeId) as HTMLIFrameElement;
|
||||||
|
|
||||||
if (!iframe || !iframe.contentWindow) {
|
if (!iframe || !iframe.contentWindow) {
|
||||||
@ -16,12 +22,12 @@ const useCheckBalance = (amount: string, iframeId: string) => {
|
|||||||
iframe.contentWindow.postMessage(
|
iframe.contentWindow.postMessage(
|
||||||
{
|
{
|
||||||
type: 'CHECK_BALANCE',
|
type: 'CHECK_BALANCE',
|
||||||
chainId: VITE_LACONICD_CHAIN_ID,
|
chainId: networkData.chainId,
|
||||||
amount,
|
amount,
|
||||||
},
|
},
|
||||||
import.meta.env.VITE_WALLET_IFRAME_URL
|
import.meta.env.VITE_WALLET_IFRAME_URL
|
||||||
);
|
);
|
||||||
}, [iframeId, amount]);
|
}, [iframeId, amount, networkData]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const handleMessage = (event: MessageEvent) => {
|
const handleMessage = (event: MessageEvent) => {
|
||||||
|
@ -10,5 +10,4 @@ export const VITE_GITHUB_NEXT_APP_TEMPLATE_REPO = import.meta.env
|
|||||||
export const VITE_GITHUB_CLIENT_ID = import.meta.env.VITE_GITHUB_CLIENT_ID;
|
export const VITE_GITHUB_CLIENT_ID = import.meta.env.VITE_GITHUB_CLIENT_ID;
|
||||||
export const VITE_BUGSNAG_API_KEY = import.meta.env.VITE_BUGSNAG_API_KEY;
|
export const VITE_BUGSNAG_API_KEY = import.meta.env.VITE_BUGSNAG_API_KEY;
|
||||||
export const VITE_LIT_RELAY_API_KEY = import.meta.env.VITE_LIT_RELAY_API_KEY;
|
export const VITE_LIT_RELAY_API_KEY = import.meta.env.VITE_LIT_RELAY_API_KEY;
|
||||||
export const VITE_LACONICD_CHAIN_ID = import.meta.env.VITE_LACONICD_CHAIN_ID;
|
|
||||||
export const VITE_WALLET_IFRAME_URL = import.meta.env.VITE_WALLET_IFRAME_URL;
|
export const VITE_WALLET_IFRAME_URL = import.meta.env.VITE_WALLET_IFRAME_URL;
|
||||||
|
Loading…
Reference in New Issue
Block a user