From 839a6a37282e5c0856a1e380ebf018e771e8b5f6 Mon Sep 17 00:00:00 2001 From: Daniel Gonzalez Date: Tue, 30 Jun 2020 02:24:48 -0400 Subject: [PATCH 1/3] feat(send/receive): Started the send/receive implementation --- package-lock.json | 15 ++ package.json | 1 + src/components/admin-lte/index.js | 12 ++ .../admin-lte/send-receive/index.js | 41 ++++++ .../admin-lte/send-receive/receive.js | 85 +++++++++++ .../admin-lte/send-receive/send-receive.css | 59 ++++++++ src/components/admin-lte/send-receive/send.js | 134 ++++++++++++++++++ 7 files changed, 347 insertions(+) create mode 100644 src/components/admin-lte/send-receive/index.js create mode 100644 src/components/admin-lte/send-receive/receive.js create mode 100644 src/components/admin-lte/send-receive/send-receive.css create mode 100644 src/components/admin-lte/send-receive/send.js diff --git a/package-lock.json b/package-lock.json index d64bbe2..139fb67 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28843,6 +28843,11 @@ "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" }, + "qr.js": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/qr.js/-/qr.js-0.0.0.tgz", + "integrity": "sha1-ys6GOG9ZoNuAUPqQ2baw6IoeNk8=" + }, "qrcode": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.4.4.tgz", @@ -28976,6 +28981,16 @@ } } }, + "qrcode.react": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/qrcode.react/-/qrcode.react-1.0.0.tgz", + "integrity": "sha512-jBXleohRTwvGBe1ngV+62QvEZ/9IZqQivdwzo9pJM4LQMoCM2VnvNBnKdjvGnKyDZ/l0nCDgsPod19RzlPvm/Q==", + "requires": { + "loose-envify": "^1.4.0", + "prop-types": "^15.6.0", + "qr.js": "0.0.0" + } + }, "qs": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", diff --git a/package.json b/package.json index 02313fe..15d7560 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "gatsby-transformer-sharp": "^2.5.3", "minimal-slp-wallet": "1.3.4", "prop-types": "^15.7.2", + "qrcode.react": "^1.0.0", "react": "^16.12.0", "react-dom": "^16.12.0", "react-helmet": "^6.0.0", diff --git a/src/components/admin-lte/index.js b/src/components/admin-lte/index.js index 22f5650..3c48c4f 100644 --- a/src/components/admin-lte/index.js +++ b/src/components/admin-lte/index.js @@ -13,6 +13,7 @@ import "./admin-lte.css" import BchWallet from "minimal-slp-wallet" import VersionStatus from "../version-status" import { BrowserRouter as Router } from "react-router-dom" +import SendReceive from "./send-receive" const { Item } = Sidebar // Screen width to hide the side menu on click @@ -39,6 +40,8 @@ class AdminLTEPage extends React.Component { , , , + , + ] render() { @@ -84,6 +87,15 @@ class AdminLTEPage extends React.Component { /> )} {_this.state.section === "Audit" && } + {_this.state.section === "Send/Receive" && ( + + )} diff --git a/src/components/admin-lte/send-receive/index.js b/src/components/admin-lte/send-receive/index.js new file mode 100644 index 0000000..a4993b7 --- /dev/null +++ b/src/components/admin-lte/send-receive/index.js @@ -0,0 +1,41 @@ +import React from "react" +import PropTypes from "prop-types" +import { Content } from "adminlte-2-react" +import Receive from "./receive" +import Send from "./send" + +import './send-receive.css' +let _this +class SendReceive extends React.Component { + constructor(props) { + super(props) + _this = this + this.state = {} + } + + render() { + return ( + <> + + + + + + + ) + } +} +SendReceive.propTypes = { + setWalletInfo: PropTypes.func.isRequired, + walletInfo: PropTypes.object.isRequired, + updateBalance: PropTypes.func.isRequired, + setBchWallet: PropTypes.func.isRequired, + bchWallet:PropTypes.object, +} + +export default SendReceive diff --git a/src/components/admin-lte/send-receive/receive.js b/src/components/admin-lte/send-receive/receive.js new file mode 100644 index 0000000..d13ac1b --- /dev/null +++ b/src/components/admin-lte/send-receive/receive.js @@ -0,0 +1,85 @@ +import React from "react" +import PropTypes from "prop-types" +import { Content } from "adminlte-2-react" +import { Row, Col, Box, Inputs } from "adminlte-2-react" +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome" + +var QRCode = require("qrcode.react") + +let _this +class Receive extends React.Component { + constructor(props) { + super(props) + _this = this + this.state = { + addr: _this.props.walletInfo.cashAddress, + } + } + + render() { + return ( + <> + + <> + + + + + + +

+ + Receive +

+ + + +

{_this.state.addr}

+ + +
+
+ + +
+ +
+ + ) + } + changeAddr() { + const checkbox = document.getElementById("address-checkbox") + const { cashAddress, slpAddress } = _this.props.walletInfo + + let addr + if (checkbox.checked) { + addr = slpAddress + } else { + addr = cashAddress + } + _this.setState({ + addr, + }) + } +} +Receive.propTypes = { + walletInfo: PropTypes.object.isRequired, +} + +export default Receive diff --git a/src/components/admin-lte/send-receive/send-receive.css b/src/components/admin-lte/send-receive/send-receive.css new file mode 100644 index 0000000..fa49988 --- /dev/null +++ b/src/components/admin-lte/send-receive/send-receive.css @@ -0,0 +1,59 @@ +.switch-address { + position: relative; + display: inline-block; + width: 60px; + height: 34px; + } + + .switch-address input { + opacity: 0; + width: 0; + height: 0; + } + + .slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: var(--main-color); + -webkit-transition: .4s; + transition: .4s; + } + + .slider:before { + position: absolute; + content: ""; + height: 26px; + width: 26px; + left: 4px; + bottom: 4px; + background-color: white; + -webkit-transition: .4s; + transition: .4s; + } + + input:checked + .slider { + background-color: var(--main-color); + } + + input:focus + .slider { + box-shadow: 0 0 1px var(--main-color); + } + + input:checked + .slider:before { + -webkit-transform: translateX(26px); + -ms-transform: translateX(26px); + transform: translateX(26px); + } + + /* Rounded sliders */ + .slider.round { + border-radius: 34px; + } + + .slider.round:before { + border-radius: 50%; + } \ No newline at end of file diff --git a/src/components/admin-lte/send-receive/send.js b/src/components/admin-lte/send-receive/send.js new file mode 100644 index 0000000..48e9b51 --- /dev/null +++ b/src/components/admin-lte/send-receive/send.js @@ -0,0 +1,134 @@ +import React from "react" +import PropTypes from "prop-types" +import { Content, Row, Col, Box, Inputs, Button } from "adminlte-2-react" +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome" +import BchWallet from "minimal-slp-wallet" + +const { Text } = Inputs + +let _this +class Configure extends React.Component { + constructor(props) { + super(props) + + _this = this + + this.state = { + address: "", + amountSat: "", + errMsg: "", + } + _this.BchWallet = BchWallet + + } + + render() { + return ( + + + + + + + +

+ + Send +

+ + + +