Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated a few labels and replaced native componenets with chakra componenets #1

Merged
merged 2 commits into from
Jan 16, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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