send ping before subscriptions (#1441)

This commit is contained in:
Francis O'Brien 2024-08-12 14:15:16 +01:00 committed by GitHub
parent 5cc90c71cc
commit f9d6f5f9c0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -14,7 +14,7 @@ import { settings } from '@polkadot/ui-settings';
import { AccountContext, ActionContext, AuthorizeReqContext, MediaContext, MetadataReqContext, SettingsContext, SigningReqContext } from '../components/contexts.js'; import { AccountContext, ActionContext, AuthorizeReqContext, MediaContext, MetadataReqContext, SettingsContext, SigningReqContext } from '../components/contexts.js';
import { ErrorBoundary, Loading } from '../components/index.js'; import { ErrorBoundary, Loading } from '../components/index.js';
import ToastProvider from '../components/Toast/ToastProvider.js'; import ToastProvider from '../components/Toast/ToastProvider.js';
import { subscribeAccounts, subscribeAuthorizeRequests, subscribeMetadataRequests, subscribeSigningRequests } from '../messaging.js'; import { ping, subscribeAccounts, subscribeAuthorizeRequests, subscribeMetadataRequests, subscribeSigningRequests } from '../messaging.js';
import { buildHierarchy } from '../util/buildHierarchy.js'; import { buildHierarchy } from '../util/buildHierarchy.js';
import Accounts from './Accounts/index.js'; import Accounts from './Accounts/index.js';
import AccountManagement from './AuthManagement/AccountManagement.js'; import AccountManagement from './AuthManagement/AccountManagement.js';
@ -98,12 +98,14 @@ export default function Popup (): React.ReactElement {
); );
useEffect((): void => { useEffect((): void => {
Promise.all([ // initially send a ping message to create a port that will be reused for subsequent
// messages. This ensure onConnect event is fired only once
ping().then(() => Promise.all([
subscribeAccounts(setAccounts), subscribeAccounts(setAccounts),
subscribeAuthorizeRequests(setAuthRequests), subscribeAuthorizeRequests(setAuthRequests),
subscribeMetadataRequests(setMetaRequests), subscribeMetadataRequests(setMetaRequests),
subscribeSigningRequests(setSignRequests) subscribeSigningRequests(setSignRequests)
]).catch(console.error); ])).catch(console.error);
settings.on('change', (settings): void => { settings.on('change', (settings): void => {
setSettingsCtx(settings); setSettingsCtx(settings);