diff --git a/package.json b/package.json
index 83936d82..9e11d087 100644
--- a/package.json
+++ b/package.json
@@ -8,13 +8,19 @@
"@types/node": "12.12.7",
"@types/react": "16.9.11",
"@types/react-dom": "16.9.4",
+ "@types/react-router-dom": "^5.1.2",
+ "@types/styled-components": "^4.4.0",
+ "@types/styled-theming": "^2.2.2",
"apollo-boost": "^0.4.4",
"graphql": "^14.5.8",
"react": "^16.11.0",
"react-dom": "^16.11.0",
"react-router-dom": "^5.1.2",
"react-scripts": "3.2.0",
+ "react-toastify": "^5.4.1",
"snyk": "^1.244.0",
+ "styled-components": "^4.4.1",
+ "styled-theming": "^2.2.0",
"typescript": "3.7.2"
},
"scripts": {
diff --git a/src/App.css b/src/App.css
deleted file mode 100644
index afc38857..00000000
--- a/src/App.css
+++ /dev/null
@@ -1,22 +0,0 @@
-.App {
- text-align: center;
-}
-
-.App-logo {
- height: 40vmin;
-}
-
-.App-header {
- background-color: #282c34;
- min-height: 100vh;
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- font-size: calc(10px + 2vmin);
- color: white;
-}
-
-.App-link {
- color: #09d3ac;
-}
diff --git a/src/App.tsx b/src/App.tsx
index 226ee631..a7b969b2 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -1,26 +1,46 @@
-import React from 'react';
-import logo from './logo.svg';
-import './App.css';
+import React from "react";
+import styled, { ThemeProvider } from "styled-components";
+import { GlobalStyles } from "./styles/GlobalStyle";
+import { Header } from "./sections/header/Header";
+import { Footer } from "./sections/footer/Footer";
+import { Navigation } from "./sections/navigation/Navigation";
+import { Content } from "./sections/content/Content";
+import { ApolloProvider } from "@apollo/react-hooks";
+import { BrowserRouter } from "react-router-dom";
+import ApolloClient from "apollo-boost";
+
+const client = new ApolloClient({
+ uri: "http://localhost:3001"
+});
+
+const Container = styled.div`
+ display: grid;
+ grid-template-areas:
+ "header header header"
+ "nav content content"
+ "footer footer footer";
+ grid-template-columns: 200px 1fr 200px;
+ grid-template-rows: auto 1fr auto;
+ gap: 10px;
+ height: 100vh;
+`;
const App: React.FC = () => {
return (
-
+
+
+
+
+
+
+
+
+
+
+
+
+
);
-}
+};
export default App;
diff --git a/src/components/generic/Styled.ts b/src/components/generic/Styled.ts
new file mode 100644
index 00000000..576fdb4e
--- /dev/null
+++ b/src/components/generic/Styled.ts
@@ -0,0 +1,12 @@
+import styled from "styled-components";
+
+export const Card = styled.div`
+ padding: 10px;
+ background-color: #fff;
+ background: linear-gradient(#fff, #fcfcfc);
+ box-shadow: 0 8px 16px -8px rgba(0, 0, 0, 0.1);
+ border-radius: 6px;
+ border: 1px solid #e6e6e6;
+ margin-bottom: ${(props: { bottom?: string }) => props.bottom};
+ width: 100%;
+`;
diff --git a/src/components/networkInfo/NetworkInfo.tsx b/src/components/networkInfo/NetworkInfo.tsx
new file mode 100644
index 00000000..13d0c24b
--- /dev/null
+++ b/src/components/networkInfo/NetworkInfo.tsx
@@ -0,0 +1,38 @@
+import React from "react";
+import { useQuery } from "@apollo/react-hooks";
+import { GET_NETWORK_INFO } from "../../graphql/query";
+import { Card } from "../generic/Styled";
+
+export const NetworkInfo = () => {
+ const { loading, error, data } = useQuery(GET_NETWORK_INFO);
+
+ console.log(loading, error, data);
+
+ if (loading || !data || !data.getNetworkInfo) {
+ return Loading....;
+ }
+
+ const {
+ averageChannelSize,
+ channelCount,
+ maxChannelSize,
+ medianChannelSize,
+ minChannelSize,
+ nodeCount,
+ notRecentlyUpdatedPolicyCount,
+ totalCapacity
+ } = data.getNetworkInfo;
+
+ return (
+
+ {`Total Capacity: ${totalCapacity}`}
+ {`Max Channel Size: ${maxChannelSize}`}
+ {`Average Channel Size: ${averageChannelSize}`}
+ {`Median Channel Size: ${medianChannelSize}`}
+ {`Min Channel Size: ${minChannelSize}`}
+ {`Total Channels: ${channelCount}`}
+ {`Total Nodes: ${nodeCount}`}
+ {`Zombie Nodes: ${notRecentlyUpdatedPolicyCount}`}
+
+ );
+};
diff --git a/src/components/nodeInfo/NodeInfo.tsx b/src/components/nodeInfo/NodeInfo.tsx
new file mode 100644
index 00000000..328c7372
--- /dev/null
+++ b/src/components/nodeInfo/NodeInfo.tsx
@@ -0,0 +1,36 @@
+import React from "react";
+import { useQuery } from "@apollo/react-hooks";
+import { GET_NODE_INFO } from "../../graphql/query";
+import { Card } from "../generic/Styled";
+
+export const NodeInfo = () => {
+ const { loading, error, data } = useQuery(GET_NODE_INFO);
+
+ console.log(loading, error, data);
+
+ if (loading || !data || !data.getNodeInfo) {
+ return Loading....;
+ }
+
+ const {
+ color,
+ activeChannelsCount,
+ isSyncedToChain,
+ peersCount,
+ pendingChannelsCount,
+ version,
+ alias
+ } = data.getNodeInfo;
+
+ return (
+
+ {`Alias: ${alias}`}
+ {`Color: ${color}`}
+ {`Version: ${version}`}
+ {`Active Channels: ${activeChannelsCount}`}
+ {`Pending Channels: ${pendingChannelsCount}`}
+ {`Peers: ${peersCount}`}
+ {`Synced to chain: ${isSyncedToChain}`}
+
+ );
+};
diff --git a/src/components/walletInfo/WalletInfo.tsx b/src/components/walletInfo/WalletInfo.tsx
new file mode 100644
index 00000000..f33ba45f
--- /dev/null
+++ b/src/components/walletInfo/WalletInfo.tsx
@@ -0,0 +1,27 @@
+import React from "react";
+import { useQuery } from "@apollo/react-hooks";
+import { GET_WALLET_INFO } from "../../graphql/query";
+import { Card } from "../generic/Styled";
+
+export const WalletInfo = () => {
+ const { loading, error, data } = useQuery(GET_WALLET_INFO);
+
+ console.log(loading, error, data);
+
+ if (loading || !data) {
+ return Loading....;
+ }
+
+ const chainBalance = data.getChainBalance;
+ const pendingChainBalance = data.getPendingChainBalance;
+ const { confirmedBalance, pendingBalance } = data.getChannelBalance;
+
+ return (
+
+ {`Chain Balance: ${chainBalance}`}
+ {`Pending Chain Balance: ${pendingChainBalance}`}
+ {`Channel Balance: ${confirmedBalance}`}
+ {`Pending Channel Balance: ${pendingBalance}`}
+
+ );
+};
diff --git a/src/graphql/query.ts b/src/graphql/query.ts
new file mode 100644
index 00000000..f07012e8
--- /dev/null
+++ b/src/graphql/query.ts
@@ -0,0 +1,48 @@
+import gql from "graphql-tag";
+
+export const GET_NETWORK_INFO = gql`
+ query GetNetworkInfo {
+ getNetworkInfo {
+ averageChannelSize
+ channelCount
+ maxChannelSize
+ medianChannelSize
+ minChannelSize
+ nodeCount
+ notRecentlyUpdatedPolicyCount
+ totalCapacity
+ }
+ }
+`;
+
+export const GET_NODE_INFO = gql`
+ query GetNodeInfo {
+ getNodeInfo {
+ chains
+ color
+ activeChannelsCount
+ currentBlockHash
+ currentBlockHeight
+ isSyncedToChain
+ isSyncedToGraph
+ latestBlockAt
+ peersCount
+ pendingChannelsCount
+ publicKey
+ uris
+ version
+ alias
+ }
+ }
+`;
+
+export const GET_WALLET_INFO = gql`
+ query GetWalletInfo {
+ getChainBalance
+ getPendingChainBalance
+ getChannelBalance {
+ confirmedBalance
+ pendingBalance
+ }
+ }
+`;
diff --git a/src/helpers/Helpers.ts b/src/helpers/Helpers.ts
new file mode 100644
index 00000000..9b8cdafc
--- /dev/null
+++ b/src/helpers/Helpers.ts
@@ -0,0 +1,3 @@
+export const getValue = (value: number | string) => {
+ return value;
+};
diff --git a/src/index.css b/src/index.css
deleted file mode 100644
index ec2585e8..00000000
--- a/src/index.css
+++ /dev/null
@@ -1,13 +0,0 @@
-body {
- margin: 0;
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
- 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
- sans-serif;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-}
-
-code {
- font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
- monospace;
-}
diff --git a/src/index.tsx b/src/index.tsx
index 87d1be55..c1684e83 100644
--- a/src/index.tsx
+++ b/src/index.tsx
@@ -1,10 +1,9 @@
-import React from 'react';
-import ReactDOM from 'react-dom';
-import './index.css';
-import App from './App';
-import * as serviceWorker from './serviceWorker';
+import React from "react";
+import ReactDOM from "react-dom";
+import App from "./App";
+import * as serviceWorker from "./serviceWorker";
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.render(, document.getElementById("root"));
// If you want your app to work offline and load faster, you can change
// unregister() to register() below. Note this comes with some pitfalls.
diff --git a/src/logo.svg b/src/logo.svg
deleted file mode 100644
index 2e5df0d3..00000000
--- a/src/logo.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/sections/content/Content.tsx b/src/sections/content/Content.tsx
new file mode 100644
index 00000000..ec70bd99
--- /dev/null
+++ b/src/sections/content/Content.tsx
@@ -0,0 +1,26 @@
+import React from "react";
+import styled from "styled-components";
+import { Switch, Route } from "react-router";
+import { Home } from "../../views/home/Home";
+import { NotFound } from "../../views/notFound/NotFound";
+
+const ContentStyle = styled.div`
+ /* display: flex;
+ justify-content: center;
+ align-items: center; */
+ padding: 10px;
+ /* background-color: blue; */
+ grid-area: content;
+ margin-right: 0.5rem;
+`;
+
+export const Content = () => {
+ return (
+
+
+ } />
+ } />
+
+
+ );
+};
diff --git a/src/sections/footer/Footer.tsx b/src/sections/footer/Footer.tsx
new file mode 100644
index 00000000..bb96dc75
--- /dev/null
+++ b/src/sections/footer/Footer.tsx
@@ -0,0 +1,15 @@
+import React from "react";
+import styled from "styled-components";
+
+const FooterStyle = styled.div`
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ padding: 10px;
+ background-color: red;
+ grid-area: footer;
+`;
+
+export const Footer = () => {
+ return ThunderHub;
+};
diff --git a/src/sections/header/Header.tsx b/src/sections/header/Header.tsx
new file mode 100644
index 00000000..e1ed8a24
--- /dev/null
+++ b/src/sections/header/Header.tsx
@@ -0,0 +1,15 @@
+import React from "react";
+import styled from "styled-components";
+
+const HeaderStyle = styled.div`
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ padding: 10px;
+ background-color: red;
+ grid-area: header;
+`;
+
+export const Header = () => {
+ return ThunderHub;
+};
diff --git a/src/sections/navigation/Navigation.tsx b/src/sections/navigation/Navigation.tsx
new file mode 100644
index 00000000..08164aa6
--- /dev/null
+++ b/src/sections/navigation/Navigation.tsx
@@ -0,0 +1,29 @@
+import React from "react";
+import styled from "styled-components";
+import { Card } from "../../components/generic/Styled";
+import { Link } from "react-router-dom";
+
+const NavigationStyle = styled.div`
+ display: flex;
+ /* justify-content: center; */
+ /* padding: 10px; */
+ /* background-color: green; */
+ grid-area: nav;
+ margin-left: 0.5rem;
+`;
+
+export const Navigation = () => {
+ return (
+
+
+ ThunderHub
+
+ Home
+
+
+ Unknown
+
+
+
+ );
+};
diff --git a/src/styles/GlobalStyle.ts b/src/styles/GlobalStyle.ts
new file mode 100644
index 00000000..cfb71dab
--- /dev/null
+++ b/src/styles/GlobalStyle.ts
@@ -0,0 +1,24 @@
+import { createGlobalStyle } from "styled-components";
+import { backgroundColor, textColor } from "./Themes";
+
+export const GlobalStyles = createGlobalStyle`
+ html, body {
+ margin: 0;
+ padding: 0;
+ }
+ *, *::after, *::before {
+ box-sizing: border-box;
+ }
+ body {
+ background: ${backgroundColor};
+ color: ${textColor};
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ /* align-items: center; */
+ /* display: flex; */
+ /* justify-content: center; */
+ /* height: 100vh; */
+ }
+`;
diff --git a/src/styles/Themes.ts b/src/styles/Themes.ts
new file mode 100644
index 00000000..f75724d7
--- /dev/null
+++ b/src/styles/Themes.ts
@@ -0,0 +1,11 @@
+import theme from "styled-theming";
+
+export const backgroundColor = theme("mode", {
+ light: "white",
+ dark: "#0D0C1D"
+});
+
+export const textColor = theme("mode", {
+ light: "black",
+ dark: "#EFFFFA"
+});
diff --git a/src/views/home/Home.tsx b/src/views/home/Home.tsx
new file mode 100644
index 00000000..bec52a83
--- /dev/null
+++ b/src/views/home/Home.tsx
@@ -0,0 +1,14 @@
+import React from "react";
+import { NetworkInfo } from "../../components/networkInfo/NetworkInfo";
+import { NodeInfo } from "../../components/nodeInfo/NodeInfo";
+import { WalletInfo } from "../../components/walletInfo/WalletInfo";
+
+export const Home = () => {
+ return (
+ <>
+
+
+
+ >
+ );
+};
diff --git a/src/views/notFound/NotFound.tsx b/src/views/notFound/NotFound.tsx
new file mode 100644
index 00000000..f4a43b31
--- /dev/null
+++ b/src/views/notFound/NotFound.tsx
@@ -0,0 +1,6 @@
+import React from "react";
+import { Card } from "../../components/generic/Styled";
+
+export const NotFound = () => {
+ return Not Found;
+};
diff --git a/yarn.lock b/yarn.lock
index 366778a4..a22fa416 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -978,7 +978,7 @@
dependencies:
regenerator-runtime "^0.13.2"
-"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.0", "@babel/runtime@^7.4.2", "@babel/runtime@^7.4.5":
+"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.0", "@babel/runtime@^7.4.2", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3":
version "7.7.2"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.7.2.tgz#111a78002a5c25fc8e3361bedc9529c696b85a6a"
integrity sha512-JONRbXbTXc9WQE2mAZd1p0Z3DZ/6vaQIkgYMSTP3KjRCyd7rCZCcfhCyX+YjwcKxcZ82UrxbRD358bpExNgrjw==
@@ -1069,6 +1069,23 @@
resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-9.0.1.tgz#c27b391d8457d1e893f1eddeaf5e5412d12ffbb5"
integrity sha512-6It2EVfGskxZCQhuykrfnALg7oVeiI6KclWSmGDqB0AiInVrTGB9Jp9i4/Ad21u9Jde/voVQz6eFX/eSg/UsPA==
+"@emotion/is-prop-valid@^0.8.1":
+ version "0.8.5"
+ resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.5.tgz#2dda0791f0eafa12b7a0a5b39858405cc7bde983"
+ integrity sha512-6ZODuZSFofbxSbcxwsFz+6ioPjb0ISJRRPLZ+WIbjcU2IMU0Io+RGQjjaTgOvNQl007KICBm7zXQaYQEC1r6Bg==
+ dependencies:
+ "@emotion/memoize" "0.7.3"
+
+"@emotion/memoize@0.7.3":
+ version "0.7.3"
+ resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.3.tgz#5b6b1c11d6a6dddf1f2fc996f74cf3b219644d78"
+ integrity sha512-2Md9mH6mvo+ygq1trTeVp2uzAKwE2P7In0cRpD/M9Q70aH8L+rxMLbb3JCN2JoSWsV2O+DdFjfbbXoMoLBczow==
+
+"@emotion/unitless@^0.7.0":
+ version "0.7.4"
+ resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.4.tgz#a87b4b04e5ae14a88d48ebef15015f6b7d1f5677"
+ integrity sha512-kBa+cDHOR9jpRJ+kcGMsysrls0leukrm68DmFQoMIWQcXdr2cZvyvypWuGYT7U+9kAExUE7+T7r6G3C3A6L8MQ==
+
"@hapi/address@2.x.x":
version "2.1.2"
resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.2.tgz#1c794cd6dbf2354d1eb1ef10e0303f573e1c7222"
@@ -1497,6 +1514,11 @@
resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7"
integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==
+"@types/history@*":
+ version "4.7.3"
+ resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.3.tgz#856c99cdc1551d22c22b18b5402719affec9839a"
+ integrity sha512-cS5owqtwzLN5kY+l+KgKdRJ/Cee8tlmQoGQuIE9tWnSmS3JMKzmxo2HIAk2wODMifGwO20d62xZQLYz+RLfXmw==
+
"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0":
version "2.0.1"
resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff"
@@ -1576,6 +1598,31 @@
dependencies:
"@types/react" "*"
+"@types/react-native@*":
+ version "0.60.22"
+ resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.60.22.tgz#ba199a441cb0612514244ffb1d0fe6f04c878575"
+ integrity sha512-LTXMKEyGA+x4kadmjujX6yAgpcaZutJ01lC7zLJWCULaZg7Qw5/3iOQpwIJRUcOc+a8A2RR7rSxplehVf9IuhA==
+ dependencies:
+ "@types/prop-types" "*"
+ "@types/react" "*"
+
+"@types/react-router-dom@^5.1.2":
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.1.2.tgz#853f229f1f297513c0be84f7c914a08b778cfdf5"
+ integrity sha512-kRx8hoBflE4Dp7uus+j/0uMHR5uGTAvQtc4A3vOTWKS+epe0leCuxEx7HNT7XGUd1lH53/moWM51MV2YUyhzAg==
+ dependencies:
+ "@types/history" "*"
+ "@types/react" "*"
+ "@types/react-router" "*"
+
+"@types/react-router@*":
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.2.tgz#41e5e6aa333a7b9a2bfdac753c04e1ca4b3e0d21"
+ integrity sha512-euC3SiwDg3NcjFdNmFL8uVuAFTpZJm0WMFUw+4eXMUnxa7M9RGFEG0szt0z+/Zgk4G2k9JBFhaEnY64RBiFmuw==
+ dependencies:
+ "@types/history" "*"
+ "@types/react" "*"
+
"@types/react@*", "@types/react@16.9.11":
version "16.9.11"
resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.11.tgz#70e0b7ad79058a7842f25ccf2999807076ada120"
@@ -1602,6 +1649,23 @@
resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e"
integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==
+"@types/styled-components@*", "@types/styled-components@^4.4.0":
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/@types/styled-components/-/styled-components-4.4.0.tgz#15a3d59533fd3a5bd013db4a7c4422ec542c59d2"
+ integrity sha512-QFl+w3hQJNHE64Or3PXMFpC3HAQDiuQLi5o9m1XPEwYWfgCZtAribO5ksjxnO8U0LG8Parh0ESCgVxo4VfxlHg==
+ dependencies:
+ "@types/react" "*"
+ "@types/react-native" "*"
+ csstype "^2.2.0"
+
+"@types/styled-theming@^2.2.2":
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/@types/styled-theming/-/styled-theming-2.2.2.tgz#e9cd824be4d6bcdb95315c5a86ae3ae0a46ba731"
+ integrity sha512-O8h8DFtY8IfxIOt2fDZqlqNk3aTbOsvdwU7gaFa4o7OfRRE5bBsehHZMxI1aSawq8AuISQJP4xOoz9P2imx/FQ==
+ dependencies:
+ "@types/styled-components" "*"
+ csstype "^2.2.0"
+
"@types/xml2js@0.4.3":
version "0.4.3"
resolved "https://registry.yarnpkg.com/@types/xml2js/-/xml2js-0.4.3.tgz#2f41bfc74d5a4022511721f872ed395a210ad3b7"
@@ -2465,6 +2529,21 @@ babel-plugin-named-asset-import@^0.3.4:
resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.4.tgz#4a8fc30e9a3e2b1f5ed36883386ab2d84e1089bd"
integrity sha512-S6d+tEzc5Af1tKIMbsf2QirCcPdQ+mKUCY2H1nJj1DyA1ShwpsoxEOAwbWsG5gcXNV/olpvQd9vrUWRx4bnhpw==
+"babel-plugin-styled-components@>= 1":
+ version "1.10.6"
+ resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-1.10.6.tgz#f8782953751115faf09a9f92431436912c34006b"
+ integrity sha512-gyQj/Zf1kQti66100PhrCRjI5ldjaze9O0M3emXRPAN80Zsf8+e1thpTpaXJXVHXtaM4/+dJEgZHyS9Its+8SA==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.0.0"
+ "@babel/helper-module-imports" "^7.0.0"
+ babel-plugin-syntax-jsx "^6.18.0"
+ lodash "^4.17.11"
+
+babel-plugin-syntax-jsx@^6.18.0:
+ version "6.18.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946"
+ integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=
+
babel-plugin-syntax-object-rest-spread@^6.8.0:
version "6.13.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5"
@@ -2910,6 +2989,11 @@ camelcase@^5.2.0, camelcase@^5.3.1:
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
+camelize@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz#164a5483e630fa4321e5af07020e531831b2609b"
+ integrity sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=
+
caniuse-api@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0"
@@ -3051,6 +3135,11 @@ class-utils@^0.3.5:
isobject "^3.0.0"
static-extend "^0.1.1"
+classnames@^2.2.6:
+ version "2.2.6"
+ resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce"
+ integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==
+
clean-css@4.2.x:
version "4.2.1"
resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.1.tgz#2d411ef76b8569b6d0c84068dabe85b0aa5e5c17"
@@ -3548,6 +3637,11 @@ css-blank-pseudo@^0.1.4:
dependencies:
postcss "^7.0.5"
+css-color-keywords@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05"
+ integrity sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU=
+
css-color-names@0.0.4, css-color-names@^0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0"
@@ -3618,6 +3712,15 @@ css-select@^2.0.0:
domutils "^1.7.0"
nth-check "^1.0.2"
+css-to-react-native@^2.2.2:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-2.3.2.tgz#e75e2f8f7aa385b4c3611c52b074b70a002f2e7d"
+ integrity sha512-VOFaeZA053BqvvvqIA8c9n0+9vFppVBAHCp6JgFTtTMU3Mzi+XnelJ9XC9ul3BqFzZyQ5N+H0SnwsWT2Ebchxw==
+ dependencies:
+ camelize "^1.0.0"
+ css-color-keywords "^1.0.0"
+ postcss-value-parser "^3.3.0"
+
css-tree@1.0.0-alpha.28:
version "1.0.0-alpha.28"
resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.28.tgz#8e8968190d886c9477bc8d61e96f61af3f7ffa7f"
@@ -3776,7 +3879,7 @@ cssstyle@^1.0.0, cssstyle@^1.1.1:
dependencies:
cssom "0.3.x"
-csstype@^2.2.0:
+csstype@^2.2.0, csstype@^2.6.7:
version "2.6.7"
resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.7.tgz#20b0024c20b6718f4eda3853a1f5a1cce7f5e4a5"
integrity sha512-9Mcn9sFbGBAdmimWb2gLVDtFJzeKtDGIr76TUqmjZrw9LFXBMSU70lcs+C0/7fyCd6iBDqmksUcCOUIkisPHsQ==
@@ -4077,6 +4180,14 @@ dom-converter@~0.2:
dependencies:
utila "~0.4"
+dom-helpers@^5.0.1:
+ version "5.1.3"
+ resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.1.3.tgz#7233248eb3a2d1f74aafca31e52c5299cc8ce821"
+ integrity sha512-nZD1OtwfWGRBWlpANxacBEZrEuLa16o1nh7YopFWeoF68Zt8GGEmzHu6Xv4F3XaFIC+YXtTLrzgqKxFgLEe4jw==
+ dependencies:
+ "@babel/runtime" "^7.6.3"
+ csstype "^2.6.7"
+
dom-serializer@0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82"
@@ -6374,6 +6485,11 @@ is-typedarray@~1.0.0:
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
+is-what@^3.3.1:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.3.1.tgz#79502181f40226e2d8c09226999db90ef7c1bcbe"
+ integrity sha512-seFn10yAXy+yJlTRO+8VfiafC+0QJanGLMPTBWLrJm/QPauuchy0UXh8B6H5o9VA8BAzk0iYievt6mNp6gfaqA==
+
is-windows@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
@@ -7447,6 +7563,11 @@ mem@^4.0.0:
mimic-fn "^1.0.0"
p-is-promise "^1.1.0"
+memoize-one@^5.0.0:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.1.1.tgz#047b6e3199b508eaec03504de71229b8eb1d75c0"
+ integrity sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA==
+
memory-fs@^0.4.0, memory-fs@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
@@ -7455,6 +7576,13 @@ memory-fs@^0.4.0, memory-fs@^0.4.1:
errno "^0.1.3"
readable-stream "^2.0.1"
+merge-anything@^2.2.4:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/merge-anything/-/merge-anything-2.4.1.tgz#e9bccaec1e49ec6cb5f77ca78c5770d1a35315e6"
+ integrity sha512-dYOIAl9GFCJNctSIHWOj9OJtarCjsD16P8ObCl6oxrujAG+kOvlwJuOD9/O9iYZ9aTi1RGpGTG9q9etIvuUikQ==
+ dependencies:
+ is-what "^3.3.1"
+
merge-deep@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/merge-deep/-/merge-deep-3.0.2.tgz#f39fa100a4f1bd34ff29f7d2bf4508fbb8d83ad2"
@@ -9516,15 +9644,7 @@ prompts@^2.0.1:
kleur "^3.0.3"
sisteransi "^1.0.3"
-prop-types@^15.6.2:
- version "15.6.2"
- resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102"
- integrity sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==
- dependencies:
- loose-envify "^1.3.1"
- object-assign "^4.1.1"
-
-prop-types@^15.7.2:
+prop-types@^15.5.4, prop-types@^15.7.2:
version "15.7.2"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
@@ -9533,6 +9653,14 @@ prop-types@^15.7.2:
object-assign "^4.1.1"
react-is "^16.8.1"
+prop-types@^15.6.2:
+ version "15.6.2"
+ resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102"
+ integrity sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==
+ dependencies:
+ loose-envify "^1.3.1"
+ object-assign "^4.1.1"
+
protocols@^1.1.0, protocols@^1.4.0:
version "1.4.7"
resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.7.tgz#95f788a4f0e979b291ffefcf5636ad113d037d32"
@@ -9885,6 +10013,26 @@ react-scripts@3.2.0:
optionalDependencies:
fsevents "2.0.7"
+react-toastify@^5.4.1:
+ version "5.4.1"
+ resolved "https://registry.yarnpkg.com/react-toastify/-/react-toastify-5.4.1.tgz#27533ca33753631016c44122934c7b6548352fcb"
+ integrity sha512-24EwkWrj47Id/HGjYfdcntaZpAQ3J5NX31SnGRD66hM/KvPKVJzPiDBPZ+/RZ3SvNkbNWfHpPKFWzenJjC26hg==
+ dependencies:
+ "@babel/runtime" "^7.4.2"
+ classnames "^2.2.6"
+ prop-types "^15.7.2"
+ react-transition-group "^4"
+
+react-transition-group@^4:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.3.0.tgz#fea832e386cf8796c58b61874a3319704f5ce683"
+ integrity sha512-1qRV1ZuVSdxPlPf4O8t7inxUGpdyO5zG9IoNfJxSO0ImU2A1YWkEQvFPuIPZmMLkg5hYs7vv5mMOyfgSkvAwvw==
+ dependencies:
+ "@babel/runtime" "^7.5.5"
+ dom-helpers "^5.0.1"
+ loose-envify "^1.4.0"
+ prop-types "^15.6.2"
+
react@^16.11.0:
version "16.11.0"
resolved "https://registry.yarnpkg.com/react/-/react-16.11.0.tgz#d294545fe62299ccee83363599bf904e4a07fdbb"
@@ -11363,6 +11511,30 @@ style-loader@1.0.0:
loader-utils "^1.2.3"
schema-utils "^2.0.1"
+styled-components@^4.4.1:
+ version "4.4.1"
+ resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-4.4.1.tgz#e0631e889f01db67df4de576fedaca463f05c2f2"
+ integrity sha512-RNqj14kYzw++6Sr38n7197xG33ipEOktGElty4I70IKzQF1jzaD1U4xQ+Ny/i03UUhHlC5NWEO+d8olRCDji6g==
+ dependencies:
+ "@babel/helper-module-imports" "^7.0.0"
+ "@babel/traverse" "^7.0.0"
+ "@emotion/is-prop-valid" "^0.8.1"
+ "@emotion/unitless" "^0.7.0"
+ babel-plugin-styled-components ">= 1"
+ css-to-react-native "^2.2.2"
+ memoize-one "^5.0.0"
+ merge-anything "^2.2.4"
+ prop-types "^15.5.4"
+ react-is "^16.6.0"
+ stylis "^3.5.0"
+ stylis-rule-sheet "^0.0.10"
+ supports-color "^5.5.0"
+
+styled-theming@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/styled-theming/-/styled-theming-2.2.0.tgz#3084e43d40eaab4bc11ebafd3de04e3622fee37e"
+ integrity sha1-MITkPUDqq0vBHrr9PeBONiL+434=
+
stylehacks@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.1.tgz#3186595d047ab0df813d213e51c8b94e0b9010f2"
@@ -11372,6 +11544,16 @@ stylehacks@^4.0.0:
postcss "^7.0.0"
postcss-selector-parser "^3.0.0"
+stylis-rule-sheet@^0.0.10:
+ version "0.0.10"
+ resolved "https://registry.yarnpkg.com/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz#44e64a2b076643f4b52e5ff71efc04d8c3c4a430"
+ integrity sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==
+
+stylis@^3.5.0:
+ version "3.5.4"
+ resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.5.4.tgz#f665f25f5e299cf3d64654ab949a57c768b73fbe"
+ integrity sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==
+
supports-color@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"