Skip to content

Commit

Permalink
Release/4.1 (#291)
Browse files Browse the repository at this point in the history
* chore: Label all issues in repo as Applications so they show in zenhub

* FEAT: Allow developers to pass in any networks they wish

add passed networks as a return value of useContractKit
replace NetWorkNames Enum with POJO so that its extendable
Make Network interface support arbitrary networks and include option to pass in the nativeCurrency which is used when adding to metamask.
For non celo networks dont try to add celo tokens to metamask

* fix: update Fee Currency should only be an option for Connectors / wallets that support alternative  gas fee currencies

* lint extra imports

* expose supportsFeeCurrency so devs can use to display conditional fee currency setting ops + demo it in our example app

* make it clear why we are returning false

* conflict

* Append current browser location in Metamask mobile

* replacing use of contractkit with minicontractkit

* Missing Import

* Add optional contractCache builder and memoization

* Catch token not registered error, display balances

* Fix empty block

* Change value to be type string

* Log error

* upgrade to react 18
add testing utils
start testing of Provider and hook

* upgrade jest and friends

remove react-test-render as we dont use and its not cool

* feat: redesign and wc fixes (#169)

* added search bar

* added search bar and optimization

* made some changes

* feat: initial redesign

* chore: remove unused unstated-next

* chore: review feedback

* fix: bad merge + pr review

* perf: search

* feat: adjust install logic

Co-authored-by: Henry Nunez <henry.nunez@clabs.co>

* Balances has BigNumber value and string error

* chore: Add svg icon for celo terminal (#69)

Add svg icon for celo terminal

* docs: improve readme (#184)

* docs(readme): fix typo
* docs(readme): add better development instructions
* refactor: remove check for window
* docs(readme): remove v2 of WC from example
* docs(readme): add wallets to list
* docs(readme): add supported actions
* fix: issue labeler error
* fix(docs): original instructions with alternative

* fix: remove toggle z-index to not interfere

* fix: remove specific actions from wallet (#188)

* move to target es6

All major browsers support es6 and this should improve bundle size too.

https://www.typescriptlang.org/tsconfig#target

* Renames use-contract kit to react-celo

4.0 now requires contractkit 2.0 and greater

* fix typo

Co-authored-by: Camila Rondinini <crondinini@gmail.com>

* Add test for modal

* no message

* Add basic level testing for private-key and wallet connect connectors.

* If the network is not set here than initialise call will just re establish connection to metamask with this.network (probably the one it was constructed with)

* fix: adjust styles for mobile and specifically for ios safari (#192)

* codeReview from @dckesler

* Feat/theming (#198)

* feat: initial theming

* chore: codereview

* test: add updateTheme tests

* Add Aliases for old function names  (#204)

Add Aliases for old function names so its not a pain to upgrade to v4

* feat: wallet test plan page (#205)

adds a page to the Example app (hidden in this commit) where the user can go through a set of steps to check how well a wallet interacts with the available actions of the package.

* fix: export useContractKit (#215)

* Some Network Change Errors (#216)

* Add tests for address handling in reducer
fix test file being misnamed
fix some error messages and code comments to be more clear

* fix #214 There was a destructuring error when init was not passed which is legal as its optional

* fixes #209 when switching network feeCurrency could be undefined. In that case lets skip setting it.

* fix: celo-wallet web connection (#217)

* fix: celo-wallet web connection

* refactor: rename getDesktopLink->getWebLink

* fix: destroy not re-rendering

* refactor: deeplinks and weblinks logic

* Allow updateTheme to take a null value (#219)

* Fix #211 Cleanup Init Errors (#223)

* Fix #211 Cleanup Init Errors when going to a new Wallet Screen or closing the modal

* lint: remove unused import

* fix: handle disconnect events coming from sessionUpdate events

* fix: show qrcode for mobile connectors

* chore: eslint warnings

* feat: show mobile disclaimer on apps with a deeplink

* fix dark toggle on example app (#227)

* Move the toggle down by the rest of the styling options this way it isnt  blocking everything on mobile.

also make it a little smaller

* update the used by list not to include projects that are dead or use a fork

* Change css classes to react-celo, include necessary TW css (#231)

* 4.0 Alpha 2

* fix example app dependencies (#233)

* fix example app dependencies

* attempt fix on deploy

* chore: configure test in example app (#234)

Sets up tests in the example app, using the configuration from the root (modified only to accept .test files outside of __tests__).

* docs: Add Migration Guide for v4 (#235)

* Add Guides





Co-authored-by: Camila Rondinini <crondinini@gmail.com>

* style consistency

Co-authored-by: Camila Rondinini <crondinini@gmail.com>

* pr review @crondinini: clarify version needed

* add proper link to release notes

Co-authored-by: Camila Rondinini <crondinini@gmail.com>

* v4.0.0-beta.1 (React Celo Beta 1)

* refactor(useCelo types): make it explicit where types are coming from (#236)

The same types were repeated in 3 different places. This reuses existing types instead of repeating them. As a side effect, it also moves documentation to where it's implemented and adds some missing ones.

* fix add proper Type for initialState (#238)

* remove ethereumjs utils (#242)

* wip Removes ethereumjs-utils by copying the few functions we use from it and using alternatives

* rename files, add license, add tests

* remove name from jest config as it causes a warning

* Optimize SVGs (#239)

run svgs thru an optimizer then convert back to jsx to save bytes. (saved about 30%) (19k vs 30k) on wallet Icons

* fix: Celo Utils is not used in react-celo, only in the example app (#240)

Celo Utils is not used in react-celo, only in the example app

* feat: add packages publisher (#241)

* 4.0 release

* feat: a11y/colors (#221)

* feat: first pass at color checking

* test: add color tests

* Typed Local Storage (#243)

* Access Local Storage Thru specific getter and setter functions only

* remove extra file

* remove some unneeded code

* review: swtich to 2 typed functions rather than getter/setter per key
add tests

* lint and test

* refactor: extract connectors, icons and standardize filenames (#260)

* refactor: extract connectors and remove capitalization

* refactor: extract wallet icons

* chore: eslint

* refactor: move use-contracts-cache

* refactor: component naming

* refactor: remove unused variable

* fix 2 spots where old repo name was used (#262)

* Update issue templates (#228)

Co-authored-by: Camila Rondinini <crondinini@gmail.com>

* Fix npm Badge (#263)

* feat: wallet test plan (more tests and add to home) (#264)

* fixes #203 deprecated network prop (#269)

* fixes #203 deprecated network prop

add defaultNetworkProp

allow both for now. and favor network so that this is a nonbreaking change

unless you count that this fixes passing in a unfindable network now throws an error instead of silently defaulting to mainnet

* feat: create ressursurector, updator,  & persistor


* Persistor and Updator respond to events from Connectors

* add persistor test and lint

* Better emissions typing

* improve typings and add explicit event emitter package ( very small)

* add test for walletID (used by getRecent())

* When Modal is Open Dont Allow Background to scroll  (#270)

* Connect modal disable background scroll

* Action modal disable background scroll

* Fix linting

* Move to helper

* Remove unused imports

* Fix import order

* Use window scroll in useFixedBody

* Use document.body.style

Co-authored-by: zhaonancy <nancy.zhao@clabs.co>

* Accessibility Fixes (#273)

* Chrome Lighthouse accessibility fixes

* Fix URL

Co-authored-by: zhaonancy <nancy.zhao@clabs.co>

* Add coinbase wallet support (#266)

* Add coinbase wallet support

* Add dapp name and icon to coinbase wallet sdk

* feat: logger (#244)

* feat: logger

* test: add logging tests

* test: fix test

* Stable merge (#285)

* 4.0 release (#256)

* chore: Label all issues in repo as Applications so they show in zenhub

* FEAT: Allow developers to pass in any networks they wish

add passed networks as a return value of useContractKit
replace NetWorkNames Enum with POJO so that its extendable
Make Network interface support arbitrary networks and include option to pass in the nativeCurrency which is used when adding to metamask.
For non celo networks dont try to add celo tokens to metamask

* fix: update Fee Currency should only be an option for Connectors / wallets that support alternative  gas fee currencies

* lint extra imports

* expose supportsFeeCurrency so devs can use to display conditional fee currency setting ops + demo it in our example app

* make it clear why we are returning false

* conflict

* Append current browser location in Metamask mobile

* replacing use of contractkit with minicontractkit

* Missing Import

* Add optional contractCache builder and memoization

* Catch token not registered error, display balances

* Fix empty block

* Change value to be type string

* Log error

* upgrade to react 18
add testing utils
start testing of Provider and hook

* upgrade jest and friends

remove react-test-render as we dont use and its not cool

* feat: redesign and wc fixes (#169)

* added search bar

* added search bar and optimization

* made some changes

* feat: initial redesign

* chore: remove unused unstated-next

* chore: review feedback

* fix: bad merge + pr review

* perf: search

* feat: adjust install logic

Co-authored-by: Henry Nunez <henry.nunez@clabs.co>

* Balances has BigNumber value and string error

* chore: Add svg icon for celo terminal (#69)

Add svg icon for celo terminal

* docs: improve readme (#184)

* docs(readme): fix typo
* docs(readme): add better development instructions
* refactor: remove check for window
* docs(readme): remove v2 of WC from example
* docs(readme): add wallets to list
* docs(readme): add supported actions
* fix: issue labeler error
* fix(docs): original instructions with alternative

* fix: remove toggle z-index to not interfere

* fix: remove specific actions from wallet (#188)

* move to target es6

All major browsers support es6 and this should improve bundle size too.

https://www.typescriptlang.org/tsconfig#target

* Renames use-contract kit to react-celo

4.0 now requires contractkit 2.0 and greater

* fix typo

Co-authored-by: Camila Rondinini <crondinini@gmail.com>

* Add test for modal

* no message

* Add basic level testing for private-key and wallet connect connectors.

* If the network is not set here than initialise call will just re establish connection to metamask with this.network (probably the one it was constructed with)

* fix: adjust styles for mobile and specifically for ios safari (#192)

* codeReview from @dckesler

* Feat/theming (#198)

* feat: initial theming

* chore: codereview

* test: add updateTheme tests

* Add Aliases for old function names  (#204)

Add Aliases for old function names so its not a pain to upgrade to v4

* feat: wallet test plan page (#205)

adds a page to the Example app (hidden in this commit) where the user can go through a set of steps to check how well a wallet interacts with the available actions of the package.

* fix: export useContractKit (#215)

* Some Network Change Errors (#216)

* Add tests for address handling in reducer
fix test file being misnamed
fix some error messages and code comments to be more clear

* fix #214 There was a destructuring error when init was not passed which is legal as its optional

* fixes #209 when switching network feeCurrency could be undefined. In that case lets skip setting it.

* fix: celo-wallet web connection (#217)

* fix: celo-wallet web connection

* refactor: rename getDesktopLink->getWebLink

* fix: destroy not re-rendering

* refactor: deeplinks and weblinks logic

* Allow updateTheme to take a null value (#219)

* Fix #211 Cleanup Init Errors (#223)

* Fix #211 Cleanup Init Errors when going to a new Wallet Screen or closing the modal

* lint: remove unused import

* fix: handle disconnect events coming from sessionUpdate events

* fix: show qrcode for mobile connectors

* chore: eslint warnings

* feat: show mobile disclaimer on apps with a deeplink

* fix dark toggle on example app (#227)

* Move the toggle down by the rest of the styling options this way it isnt  blocking everything on mobile.

also make it a little smaller

* update the used by list not to include projects that are dead or use a fork

* Change css classes to react-celo, include necessary TW css (#231)

* 4.0 Alpha 2

* fix example app dependencies (#233)

* fix example app dependencies

* attempt fix on deploy

* chore: configure test in example app (#234)

Sets up tests in the example app, using the configuration from the root (modified only to accept .test files outside of __tests__).

* docs: Add Migration Guide for v4 (#235)

* Add Guides





Co-authored-by: Camila Rondinini <crondinini@gmail.com>

* style consistency

Co-authored-by: Camila Rondinini <crondinini@gmail.com>

* pr review @crondinini: clarify version needed

* add proper link to release notes

Co-authored-by: Camila Rondinini <crondinini@gmail.com>

* v4.0.0-beta.1 (React Celo Beta 1)

* 4.0 release

Co-authored-by: zhaonancy <nancy.zhao@clabs.co>
Co-authored-by: Nancy Zhao <32007540+zhaonancy@users.noreply.github.com>
Co-authored-by: Nicolas Brugneaux <nicolas.brugneaux@gmail.com>
Co-authored-by: Henry Nunez <henry.nunez@clabs.co>
Co-authored-by: J M Rossy <jm.rossy@gmail.com>
Co-authored-by: Camila Rondinini <crondinini@gmail.com>
Co-authored-by: Daniel Kesler <danielckesler@gmail.com>

* Fixes #268 (-webkit-fill-available vs background gradient bug) 

use react modals custom classname to add the styles to html and body only when our modal is open

* Fix (hideFromDefaults option not hiding wallets) (#275)

* fixes #274 (hide from defaults not hiding wallets)

* return an array of which default providers are being used. rather than reuse all screens, which would have had extra and potentially gotten weird

* beta 1

* update example app

* measure once cut twice

* Fix handling of reactModalProp (#278)

* fixes the connect modal not recognizing when it receives style props externally.

* ensure out styles are not overwritten.

* Remove Extra Global Styles (#282)

* remove  tailwind base as it is messing with global styles

* remove unnessessary css resets for react-celo

* fix vertical allignments

* beta 2

* release

* Release/4.0.1 (#277)

* Fixes #268 (-webkit-fill-available vs background gradient bug) 

use react modals custom classname to add the styles to html and body only when our modal is open

* Fix (hideFromDefaults option not hiding wallets) (#275)

* fixes #274 (hide from defaults not hiding wallets)

* return an array of which default providers are being used. rather than reuse all screens, which would have had extra and potentially gotten weird


* Fix handling of reactModalProp (#278)

* fixes the connect modal not recognizing when it receives style props externally.

* Remove Extra Global Styles (#282)

* remove  tailwind base as it is messing with global styles

* remove unnessessary css resets for react-celo

* fix vertical allignments

* merge release/4.0.1 into master

* fix merge issues

* remove duplicated files

Co-authored-by: zhaonancy <nancy.zhao@clabs.co>
Co-authored-by: Nancy Zhao <32007540+zhaonancy@users.noreply.github.com>
Co-authored-by: Nicolas Brugneaux <nicolas.brugneaux@gmail.com>
Co-authored-by: Henry Nunez <henry.nunez@clabs.co>
Co-authored-by: J M Rossy <jm.rossy@gmail.com>
Co-authored-by: Camila Rondinini <crondinini@gmail.com>
Co-authored-by: Daniel Kesler <danielckesler@gmail.com>

* fix: regression in priority and style issue (#284)

* fix: regression in priority and style issue

* refactor: remove all variable shadowings

* chore(deps): bump parse-url from 6.0.0 to 6.0.2 (#286)

Bumps [parse-url](https://github.com/IonicaBizau/parse-url) from 6.0.0 to 6.0.2.
- [Release notes](https://github.com/IonicaBizau/parse-url/releases)
- [Commits](https://github.com/IonicaBizau/parse-url/commits)

---
updated-dependencies:
- dependency-name: parse-url
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* New Look for Demo Site (#290) fixes #258

* Make Top nav fixed to top and full width

* add footer

* add NPM link to nav

* redesign home and layout,

add nice colors,

add footer

more showcase like

* add dark mode to the home page

* make sure dark mode is ok on other pages

* Internal rewrite  (#288)

* All Connectors emit Disconnect Event

* Connectors emit connected events with params

* make emit protected, ONLY callable by connectors, also fix cew test

* switch address change to be emited event

* WIP

* replace loadConfig with resurector + loadPreviusState
Move celo provider helpers to their own files.
add listeners

* remove persists

* fix connector stub

* end reducer effecting local storage

* fix tests, no local storage

* connector listerns must be listening BEFORE initialise is called

* remove clearPreviousConfig calls from connectors

* split up client settup from fetching URI. allow getURI to be called multiple times without creating new clients

* expend test for wallet connect

* missed extra import

* WIP better netowkr changers

* a little cleanup

* remove unused code

* fix tests

* tests pass

* wip Wallet connect connector connecting steps, changing networks, disconnecting, and inbetween steps

* improve wc, handle CBW disconnect, remove account

* update todos

* fix lint errors

* fix ts build

* cleanup

* replace console.xxx with our custom logger

* self review

* clear up verbose test runs

* lint up

* clean up tests. remove weird exit code

* revert

* add second test condition

* more self review

* review (@nicolasbrugneaux) rename destroy to disconnect for linguistic symmetry with connect action

* a more reasonable time

* unmount in the tests

* mocking the balance might be why there is a balance

Co-authored-by: Aaron DeRuvo <aaron.deruvo@clabs.co>

* 4.1.0 alpha 1

* fix versions

* Fix style bugs (#293)

* add a default zindex of 40 (can be over written)

(no need for mobile check here is both are the same)

* fix body height while modal is open (in cases where the content isnt enought to push to full screen)

* ensure full list of wallets is not bigger than viewable area / push up final by adding padding

* Alpha 2

* Fix improper error when metamask gets locked (#298)

* when metamask extension is locked it shows their being zero accounts available.

Before it would error out and disconnect,

Now we explicitly close (this is the same behavior rainbow wallet and uniswap.org did)

* add properties that were missing on type

* 4.1 Beta 1

* Fix z-index class not being properly prefixed

* Beta 2

* Fix regression  metamask network regression (#300)

Fix regression where metamask would not be automatically switched to the dapp network.

also fix token import to metamask to use new mento uri for logo

* 4.1 Beta 3

Co-authored-by: zhaonancy <nancy.zhao@clabs.co>
Co-authored-by: Nancy Zhao <32007540+zhaonancy@users.noreply.github.com>
Co-authored-by: Nicolas Brugneaux <nicolas.brugneaux@gmail.com>
Co-authored-by: Henry Nunez <henry.nunez@clabs.co>
Co-authored-by: J M Rossy <jm.rossy@gmail.com>
Co-authored-by: Camila Rondinini <crondinini@gmail.com>
Co-authored-by: Daniel Kesler <danielckesler@gmail.com>
Co-authored-by: cb-jake <95890768+cb-jake@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Aaron DeRuvo <aaron.deruvo@clabs.co>
  • Loading branch information
11 people committed Aug 22, 2022
1 parent 961620f commit 27ce355
Show file tree
Hide file tree
Showing 141 changed files with 5,830 additions and 2,523 deletions.
2 changes: 2 additions & 0 deletions .eslintrc.js
Expand Up @@ -38,6 +38,8 @@ module.exports = {
'simple-import-sort/exports': 'warn',
'unused-imports/no-unused-imports': 'error',
'@typescript-eslint/triple-slash-reference': 'off',
'no-shadow': 'off',
'@typescript-eslint/no-shadow': ['error'],
'@typescript-eslint/no-unused-vars': [
'warn',
{
Expand Down
87 changes: 87 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
@@ -0,0 +1,87 @@
name: Bug report
description: Create a bug report to help us improve
labels:
- 'bug'
- 'triage'
body:
- type: markdown
attributes:
value: |
Thank you for filling out a report!
- type: checkboxes
attributes:
label: Is there an existing issue for this?
description: Please search to see if an issue already exists for the bug you encountered.
options:
- label: I have searched the existing issues
required: true
- type: textarea
attributes:
label: Description
description: A clear and concise description of what the bug is.
validations:
required: true
- type: textarea
attributes:
label: Steps to reproduce
description: What are the steps to reproduce the bug?
placeholder: |
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
validations:
required: true
- type: textarea
attributes:
label: Expected behavior
description: A clear and concise description of what you expected to happen.
validations:
required: true
- type: textarea
attributes:
label: Screenshot
description: If applicable, add screenshots to help explain your problem.
- type: dropdown
id: version
attributes:
label: Where is the problem happening?
options:
- Mobile
- Desktop
- Both
validations:
required: true
- type: textarea
attributes:
label: Environment
description: Please complete the following information
placeholder: |
Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]
validations:
required: true
- type: input
attributes:
label: What version of `react-celo` were you using? (This can be found in the list of wallets in the "Connect" modal)
validations:
required: true
- type: input
attributes:
label: What wallet were you using?
placeholder: e.g. Node Wallet, MetaMask, Valora, etc
validations:
required: false
- type: input
attributes:
label: What is the dApp URL? (if applicable)
validations:
required: false
- type: textarea
attributes:
label: Additional context
description: Add any other context about the problem here.
validations:
required: false
1 change: 1 addition & 0 deletions .yarnrc
@@ -0,0 +1 @@
registry "https://registry.npmjs.org/"
63 changes: 63 additions & 0 deletions development.md
@@ -0,0 +1,63 @@
# Development

## Workflow

To run all the packages locally at once, simply clone this repository and run:

```sh
yarn;
yarn build; #only needs to be run the first time
yarn dev;
```

A hot reloading server should come up on localhost:3000, it's the exact same as what's at react-celo-canary.vercel.app.

Alternatively, you can individually run `react-celo` and the `example` app in parallel.

For that, you still need to have run `yarn` in the root.

Then, you can run `react-celo` in one tab:

```sh
cd packages/react-celo
yarn dev
```

and run the `example` app in another:

```sh
cd packages/example
yarn dev
```

## Bumping the packages

All packages under `/packages` are meant to published with the same version.

To bump the version of all the packages at once, use the `bump-versions` script.
You'll need to specify which semver increase you want to use.

For example, to bump to a prerelease:

```sh
yarn bump-versions prerelease --preId alpha
```

or for bumping a `major` version (same for `minor` or `patch`):

```sh
yarn bump-versions major
```

## Publishing the packages

Once the packages are ready to be published, ensure you've checked master and it is updated. Then, you can run the npm following npm script:

```sh
yarn publish-packages
```

Hint:

- You can use the `--dry-run` flag to check everything would run properly
- If you need to run the script multiple times without changing the code, using the `--skip-build` flag can be useful to reduce the time.
4 changes: 4 additions & 0 deletions jest.config.js
Expand Up @@ -13,4 +13,8 @@ module.exports = {
coveragePathIgnorePatterns: ['__tests__', 'lib'],
coverageReporters: [Boolean(process.env.CI) ? 'clover' : 'html'],
verbose: Boolean(process.env.CI),
moduleNameMapper: {
'^preact$': require.resolve('preact'),
'^preact/hooks$': require.resolve('preact/hooks'),
},
};
10 changes: 8 additions & 2 deletions package.json
Expand Up @@ -4,6 +4,9 @@
"workspaces": [
"packages/*"
],
"pkgs": {
"path": "./packages"
},
"scripts": {
"dev": "lerna run dev --stream --parallel",
"build": "lerna link && lerna run clean && lerna run build --scope 'example' --include-dependencies",
Expand All @@ -13,10 +16,13 @@
"test": "lerna link && COVERAGE=ON lerna run --stream --no-bail test",
"prepare": "husky install",
"reset-modules": "rm -rf node_modules/ packages/*/node_modules",
"publish-packages": "ts-node ./scripts/publish-packages.ts",
"deprecate-version": "ts-node ./scripts/deprecate-version.ts"
"publish-packages-script": "ts-node ./scripts/publish-packages.ts",
"deprecate-version": "ts-node ./scripts/deprecate-version.ts",
"publish-packages": "pkgs publish",
"bump-versions": "pkgs bump-versions"
},
"devDependencies": {
"@clabs/packages-publisher": "0.0.1-alpha.3",
"@testing-library/jest-dom": "^5.16.4",
"@testing-library/react": "^13.2.0",
"@types/jest": "^27.5.1",
Expand Down
14 changes: 7 additions & 7 deletions packages/example/components/buttons.tsx
Expand Up @@ -6,11 +6,9 @@ export function PrimaryButton(
return (
<button
{...props}
className={`px-4 py-2 border border-transparent rounded-md shadow-sm text-base font-medium text-white bg-gradient-to-r from-purple-600 to-indigo-600 ${
props.disabled
? 'cursor-not-allowed'
: 'hover:from-purple-700 hover:to-indigo-700'
} mt-2 ml-auto ${props.className || ''}`}
className={`px-4 py-2 border border-celo-gold rounded shadow-sm text-base font-medium text-slate-900 bg-celo-gold ${
props.disabled ? 'cursor-not-allowed' : 'hover:bg-celo-gold-light'
} mt-2 ${props.className || ''}`}
/>
);
}
Expand All @@ -21,10 +19,12 @@ export function SecondaryButton(
return (
<button
{...props}
className={`px-4 py-2 border border-transparent rounded-md text-base font-medium outline-none focus:outline-none ${
className={`px-3 py-1 my-1 border border-transparent bg-rc-violet-light rounded text-base font-medium outline-none focus:outline-none ${
props.className || ''
} ${
props.disabled ? 'cursor-not-allowed text-slate-400' : 'text-purple-700'
props.disabled
? 'cursor-not-allowed text-slate-400'
: 'text-rc-violet hover:text-rc-violet-light hover:bg-rc-violet'
}`}
/>
);
Expand Down
25 changes: 25 additions & 0 deletions packages/example/components/celo-logo.tsx
@@ -0,0 +1,25 @@
export default function CeloLogo() {
return (
<svg
data-name="Celo Rings"
viewBox="0 0 950 950"
className="inline h-5 w-5"
>
<path
data-name="Top Ring"
d="M575 650c151.88 0 275-123.12 275-275S726.88 100 575 100 300 223.12 300 375s123.12 275 275 275zm0 100c-207.1 0-375-167.9-375-375S367.9 0 575 0s375 167.9 375 375-167.9 375-375 375z"
fill="#35d07f"
/>
<path
data-name="Bottom Ring"
d="M375 850c151.88 0 275-123.12 275-275S526.88 300 375 300 100 423.12 100 575s123.12 275 275 275zm0 100C167.9 950 0 782.1 0 575s167.9-375 375-375 375 167.9 375 375-167.9 375-375 375z"
fill="#fbcc5c"
/>
<path
className="fill-[#5ea33b] dark:fill-[#ecff8f]"
data-name="Rings Overlap"
d="M587.39 750a274.38 274.38 0 0054.55-108.06A274.36 274.36 0 00750 587.4a373.63 373.63 0 01-29.16 133.45A373.62 373.62 0 01587.39 750zM308.06 308.06A274.36 274.36 0 00200 362.6a373.63 373.63 0 0129.16-133.45A373.62 373.62 0 01362.61 200a274.38 274.38 0 00-54.55 108.06z"
/>
</svg>
);
}
6 changes: 6 additions & 0 deletions packages/example/components/mock-logger.ts
@@ -0,0 +1,6 @@
export const mockLogger = {
log: jest.fn(),
error: jest.fn(),
debug: jest.fn(),
warn: jest.fn(),
};
38 changes: 38 additions & 0 deletions packages/example/components/test-plan/assert-has-balance.tsx
@@ -0,0 +1,38 @@
import { CeloTokenContract, ContractKit } from '@celo/contractkit';
import { MiniContractKit } from '@celo/contractkit/lib/mini-kit';
import Web3 from 'web3';

import { feeTokenMap } from '../../utils';

export async function assertHasBalance(
address: string,
kit: ContractKit | MiniContractKit,
feeCurrency: CeloTokenContract
): Promise<void> {
let convertedBalance;
try {
const totalBalance = await kit.getTotalBalance(address);
const token = feeTokenMap[feeCurrency];
const tokenBalance = totalBalance[token];

if (!tokenBalance) {
throw new Error(`Balance did not include any ${token}`);
}

convertedBalance = Number(Web3.utils.fromWei(tokenBalance.toFixed()));
} catch (error) {
let message;
if (error instanceof Error) {
message = error.message;
} else {
message = JSON.stringify(error);
}

throw new Error(`Got an error when trying to check balance: ${message}`);
}
if (convertedBalance < 0.1) {
throw new Error(
'Your wallet does not have enough funds for the transaction'
);
}
}
Expand Up @@ -5,14 +5,14 @@ import { fireEvent, render, waitFor } from '@testing-library/react';
import { generateTestingUtils } from 'eth-testing';
import { TestingUtils } from 'eth-testing/lib/testing-utils';

import { mockLogger } from '../mock-logger';
import { ConnectWalletCheck } from './connect-wallet';

declare global {
interface Window {
ethereum: ReturnType<TestingUtils['getProvider']> & { send?: () => void };
}
}

describe('ConnectWalletCheck', () => {
const testingUtils = generateTestingUtils({ providerType: 'MetaMask' });

Expand Down Expand Up @@ -48,6 +48,7 @@ describe('ConnectWalletCheck', () => {
connectModal={{
providersOptions: { searchable: true },
}}
logger={mockLogger}
>
<ConnectWalletCheck />
</CeloProvider>
Expand Down
11 changes: 8 additions & 3 deletions packages/example/components/test-plan/disconnect-button.tsx
Expand Up @@ -2,10 +2,15 @@ import { useCelo } from '@celo/react-celo';
import React from 'react';

export default function DisconnectButton() {
const { destroy } = useCelo();

const { destroy, address } = useCelo();
if (!address) {
return null;
}
return (
<button className="inline underline text-purple-700" onClick={destroy}>
<button
className="inline underline text-rc-violet dark:rc-violet-light"
onClick={destroy}
>
Disconnect wallet
</button>
);
Expand Down

1 comment on commit 27ce355

@vercel
Copy link

@vercel vercel bot commented on 27ce355 Aug 22, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Successfully deployed to the following URLs:

react-celo – ./

react-celo-git-stable-c-labs.vercel.app
react-celo-c-labs.vercel.app
react-celo.vercel.app

Please sign in to comment.