Skip to content

Commit

Permalink
Merge pull request #1 from Ravichandra-C/chakra_comp
Browse files Browse the repository at this point in the history
Updated a few labels and replaced native componenets with chakra componenets
  • Loading branch information
Ravichandra-C committed Jan 16, 2022
2 parents 408defb + 9eda6a1 commit 99fc5f2
Show file tree
Hide file tree
Showing 11 changed files with 402 additions and 188 deletions.
34 changes: 0 additions & 34 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,34 +0,0 @@
This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).

## Getting Started

First, run the development server:

```bash
npm run dev
# or
yarn dev
```

Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.

You can start editing the page by modifying `pages/index.js`. The page auto-updates as you edit the file.

[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.js`.

The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.

## Learn More

To learn more about Next.js, take a look at the following resources:

- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.

You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!

## Deploy on Vercel

The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.

Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
17 changes: 9 additions & 8 deletions components/Converter.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
import { useState,useCallback } from "react"
import Currency from "./Currency"
import Modal from './Modal';
import WalletModal from './WalletModal';
import { VStack,Heading ,useDisclosure} from "@chakra-ui/react";
export default function Converter(){
const exchangeRate=3;
const [data,setData]=useState()
const [isValueFromBase,setIsValueFromBase]=useState('true');
const [errors,setErrors]=useState([]);
const [showModal,setShowModal]=useState(false);
const { isOpen, onOpen, onClose } = useDisclosure()
function busdOnChange(event){
setIsValueFromBase(false);
setData(event.target.value);
Expand All @@ -16,19 +18,18 @@ export default function Converter(){
setData(event.target.value);
}

function handleOnClick(event){
setShowModal(prev=>!prev);
}


return (
<>
<VStack>
<Heading as='h3' size={3*1}>Converter</Heading>
<form>
<Currency handleOnChange={nepOnChange} setErrors={setErrors} data={isValueFromBase?data:data&&Math.round((data/3)*100)/100} label="NEP"/>
<Currency handleOnChange={busdOnChange} setErrors={setErrors} data={!isValueFromBase?data:data&&Math.round(data*3*100)/100} label="BUSD"/>
</form>

<button onClick={handleOnClick}>Connect</button>
{showModal&&<Modal setShowModal={setShowModal}/>}
</>
<button onClick={onOpen}>Show Wallet Details</button>
<WalletModal onClose={onClose} isOpen={isOpen}/>
</VStack>
)
}
16 changes: 12 additions & 4 deletions components/Currency.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import styles from "../styles/Currency.module.css";
import {Box, Input, VStack,FormControl,FormLabel} from "@chakra-ui/react"
export default function Currency({handleOnChange,data,label,setErrors}){

// function handleInputChange(event){
Expand All @@ -18,9 +19,16 @@ export default function Currency({handleOnChange,data,label,setErrors}){

return (

<div className={styles.group}>
<label htmlFor="nep">{label} : </label>
<input className={styles.input} id='nep' onChange={handleOnChange} step={.01} type='number' value={data}></input>
</div>
// <div className={styles.group}>
// <label htmlFor="nep">{label} : </label>
// <input className={styles.input} id='nep' onChange={handleOnChange} step={.01} type='number' value={data}></input>
// </div>

<VStack>
<FormControl>
<FormLabel htmlFor={label.toLowerCase()}>{label+" : "}</FormLabel>
<Input id={label.toLowerCase()} type='number' onChange={handleOnChange} value={data}/>
</FormControl>
</VStack>
)
}
10 changes: 0 additions & 10 deletions components/ErrorModal.js

This file was deleted.

46 changes: 0 additions & 46 deletions components/Modal.js

This file was deleted.

54 changes: 54 additions & 0 deletions components/WalletModal.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
import { useEffect, useState } from "react";
import {
Modal,
ModalOverlay,
ModalContent,
ModalHeader,
ModalFooter,
ModalBody,
ModalCloseButton,
Button,
VStack,
Text,
} from '@chakra-ui/react'
import Web3 from "web3"
export default function WalletModal({onClose,isOpen}){
const [balance,setBalance]=useState();
const [chainId,setChainId]=useState();

async function handleOnClick(){
if(window.ethereum){
await window.ethereum.send('eth_requestAccounts');
const web3=new Web3(window.ethereum);
const accounts=await web3.eth.getAccounts();
const balance=await web3.eth.getBalance(accounts[0]);
setBalance(balance);
setChainId(accounts[0]);
}
}

async function handleDisconnect(){
setChainId();
setBalance();
}
return (
<Modal onClose={onClose} isOpen={isOpen}>
<ModalOverlay />
<ModalContent>
<ModalHeader>Wallet Details</ModalHeader>
<ModalCloseButton />
<ModalBody>
<VStack>
{chainId?<Button bgColor="red" color='white' onClick={handleDisconnect}>Disconnect Wallet</Button>:<Button onClick={handleOnClick}>Connect to Metamask</Button>}
{
chainId&&<>
<Text>Chain Id : {chainId}</Text>
<Text>Balance : {balance&&balance+" ETH"}</Text>
</>
}
</VStack>
</ModalBody>
</ModalContent>
</Modal>
)
}
Loading

0 comments on commit 99fc5f2

Please sign in to comment.