From 14a1141d8d4b76c820b0eb551ce0e641e79ac9d1 Mon Sep 17 00:00:00 2001 From: Szymon Szlachtowicz <38212223+Szymx95@users.noreply.github.com> Date: Fri, 3 Sep 2021 14:22:18 +0200 Subject: [PATCH] Lift topbar connect function (#47) --- packages/polling-page/src/index.tsx | 14 +++++-- packages/proposal-page/package.json | 7 +++- packages/proposal-page/src/index.tsx | 41 +++++++++++++++++-- .../src/components/TopBar.tsx | 10 +++-- 4 files changed, 59 insertions(+), 13 deletions(-) diff --git a/packages/polling-page/src/index.tsx b/packages/polling-page/src/index.tsx index 009fd75..ebca11a 100644 --- a/packages/polling-page/src/index.tsx +++ b/packages/polling-page/src/index.tsx @@ -1,12 +1,11 @@ import React, { useEffect, useState } from 'react' import styled from 'styled-components' -import { DAppProvider, ChainId } from '@usedapp/core' +import { DAppProvider, ChainId, useEthers } from '@usedapp/core' import { DEFAULT_CONFIG } from '@usedapp/core/dist/cjs/src/model/config/default' import { WakuPolling } from './components/WakuPolling' import { TopBar, GlobalStyle } from '@status-waku-voting/react-components' import pollingIcon from './assets/images/pollingIcon.svg' import { JsonRpcSigner } from '@ethersproject/providers' -import { useEthers } from '@usedapp/core' import { orangeTheme } from '@status-waku-voting/react-components/dist/esm/src/style/themes' const config = { @@ -26,7 +25,7 @@ const config = { } export function Polling() { - const { account, library } = useEthers() + const { account, library, activateBrowserWallet, deactivate } = useEthers() const [signer, setSigner] = useState(undefined) useEffect(() => { @@ -35,7 +34,14 @@ export function Polling() { return ( - + ) diff --git a/packages/proposal-page/package.json b/packages/proposal-page/package.json index 991214d..6879739 100644 --- a/packages/proposal-page/package.json +++ b/packages/proposal-page/package.json @@ -7,7 +7,9 @@ "license": "MIT", "watch": { "build": { - "patterns": ["src"], + "patterns": [ + "src" + ], "extensions": "ts,tsx", "runOnChangeOnly": false } @@ -30,10 +32,11 @@ "lint:prettier": "yarn prettier './{src,test}/**/*.{ts,tsx}'" }, "dependencies": { + "@status-waku-voting/core": "^0.1.0", "@status-waku-voting/proposal-components": "^0.1.0", "@status-waku-voting/proposal-hooks": "^0.1.0", "@status-waku-voting/react-components": "^0.1.0", - "@status-waku-voting/core": "^0.1.0", + "@usedapp/core": "^0.4.7", "ethers": "^5.4.4", "react": "^17.0.2", "styled-components": "^5.3.0" diff --git a/packages/proposal-page/src/index.tsx b/packages/proposal-page/src/index.tsx index c3360bb..8f81283 100644 --- a/packages/proposal-page/src/index.tsx +++ b/packages/proposal-page/src/index.tsx @@ -5,14 +5,49 @@ import { TopBar, GlobalStyle } from '@status-waku-voting/react-components' import votingIcon from './assets/images/voting.svg' import styled from 'styled-components' import { blueTheme } from '@status-waku-voting/react-components/dist/esm/src/style/themes' +import { DAppProvider, ChainId, useEthers } from '@usedapp/core' +import { DEFAULT_CONFIG } from '@usedapp/core/dist/cjs/src/model/config/default' + +const config = { + readOnlyChainId: ChainId.Ropsten, + readOnlyUrls: { + [ChainId.Ropsten]: 'https://ropsten.infura.io/v3/b4451d780cc64a078ccf2181e872cfcf', + }, + multicallAddresses: { + ...DEFAULT_CONFIG.multicallAddresses, + 1337: process.env.GANACHE_MULTICALL_CONTRACT ?? '0x0000000000000000000000000000000000000000', + }, + supportedChains: [...DEFAULT_CONFIG.supportedChains, 1337], + notifications: { + checkInterval: 500, + expirationPeriod: 50000, + }, +} + +function Proposals() { + const { account, library, activateBrowserWallet, deactivate } = useEthers() + return ( + + + + + ) +} export function ProposalPage() { - useTest() return ( - - + + + ) } diff --git a/packages/react-components/src/components/TopBar.tsx b/packages/react-components/src/components/TopBar.tsx index cc6ff4e..70dd14b 100644 --- a/packages/react-components/src/components/TopBar.tsx +++ b/packages/react-components/src/components/TopBar.tsx @@ -1,6 +1,6 @@ import React, { useState } from 'react' import styled from 'styled-components' -import { useEthers, shortenAddress } from '@usedapp/core' +import { shortenAddress } from '@usedapp/core' import { Modal } from './Modal' import { ConnectButton, Account, ButtonDisconnect } from './misc/Buttons' import { Networks } from './Networks' @@ -10,10 +10,12 @@ type TopBarProps = { logo: string title: string theme: Theme + activate: () => void + deactivate: () => void + account: string | undefined | null } -export function TopBar({ logo, title, theme }: TopBarProps) { - const { activateBrowserWallet, deactivate, account } = useEthers() +export function TopBar({ logo, title, theme, activate, deactivate, account }: TopBarProps) { const [isOpened, setIsOpened] = useState(false) const [selectConnect, setSelectConnect] = useState(false) @@ -47,7 +49,7 @@ export function TopBar({ logo, title, theme }: TopBarProps) { theme={theme} onClick={() => { if ((window as any).ethereum) { - activateBrowserWallet() + activate() } else setSelectConnect(true) }} >