feat: add links

This commit is contained in:
bartosz-lipinski 2021-01-04 23:48:07 -06:00
parent f0fcc4b19c
commit 4d16a1c182
8 changed files with 94 additions and 42 deletions

View File

@ -1,21 +1,3 @@
## ⚠️ Warning
Any content produced by Solana, or developer resources that Solana provides, are for educational and inspiration purposes only. Solana does not encourage, induce or sanction the deployment of any such applications in violation of applicable laws or regulations.
## TODO
* Add github link
* Repay from reserve (add selection for obligation/loan)
* Add support for token names in URL in addition to reserve address
* Repay select first loan when accessing from reserve overview
* convert deposit info to multiple cards
* add slider to borrow that shows risk/collateral usage
* integrate fees
* ephemeral keys
* add values to bar chart labels
* apply swap like style to borrow/repay
* combine deposit/borrow into one action if user doesnt have enough collateral
--- margin trading
* dont show collateral below zero on the chart

22
package-lock.json generated
View File

@ -2826,6 +2826,14 @@
"@xtuc/long": "4.2.2"
}
},
"@welldone-software/why-did-you-render": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/@welldone-software/why-did-you-render/-/why-did-you-render-6.0.5.tgz",
"integrity": "sha512-8fWib+bKoAmnJHZPU8/qpEXKG8piB3oaoKj78fXNAdYd3x8ryde1pC7D5tKff5Mart2iOJUvYNxxcYlbtT9tow==",
"requires": {
"lodash": "^4"
}
},
"@xtuc/ieee754": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
@ -4328,11 +4336,6 @@
"moment": "^2.10.2"
}
},
"chartjs": {
"version": "0.3.24",
"resolved": "https://registry.npmjs.org/chartjs/-/chartjs-0.3.24.tgz",
"integrity": "sha1-Ot3rWuNgaz6J40bCfVLKFYQW6T0="
},
"chartjs-color": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/chartjs-color/-/chartjs-color-2.4.1.tgz",
@ -12605,15 +12608,6 @@
"whatwg-fetch": "^3.0.0"
}
},
"react-chartjs-2": {
"version": "2.11.1",
"resolved": "https://registry.npmjs.org/react-chartjs-2/-/react-chartjs-2-2.11.1.tgz",
"integrity": "sha512-G7cNq/n2Bkh/v4vcI+GKx7Q1xwZexKYhOSj2HmrFXlvNeaURWXun6KlOUpEQwi1cv9Tgs4H3kGywDWMrX2kxfA==",
"requires": {
"lodash": "^4.17.19",
"prop-types": "^15.7.2"
}
},
"react-copy-to-clipboard": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/react-copy-to-clipboard/-/react-copy-to-clipboard-5.0.2.tgz",

View File

@ -16,6 +16,7 @@
"@types/chart.js": "^2.9.29",
"@types/echarts": "^4.9.0",
"@types/react-router-dom": "^5.1.6",
"@welldone-software/why-did-you-render": "^6.0.5",
"antd": "^4.6.6",
"bn.js": "^5.1.3",
"bs58": "^4.0.1",
@ -64,6 +65,10 @@
"last 1 safari version"
]
},
"repository": {
"type": "git",
"url": "https://github.com/solana-labs/oyster-lending"
},
"homepage": ".",
"devDependencies": {
"@types/bn.js": "^4.11.6",

View File

@ -348,6 +348,16 @@ em {
}
}
.links {
position: relative;
height: 100%;
.bottom-links {
position: absolute;
bottom: 0px;
}
}
.dashboard-amount-quote-stat {
font-size: 10px;
font-style: normal;

View File

@ -9,6 +9,7 @@ import {
ShoppingOutlined,
HomeOutlined,
RocketOutlined,
ForkOutlined
// LineChartOutlined
} from "@ant-design/icons";
@ -17,8 +18,9 @@ import { AppBar } from "./../AppBar";
import { Link, useLocation } from "react-router-dom";
import { useConnectionConfig } from "../../contexts/connection";
import { LABELS } from "../../constants";
import config from './../../../package.json';
export const AppLayout = (props: any) => {
export const AppLayout = React.memo((props: any) => {
const { env } = useConnectionConfig();
const location = useLocation();
@ -37,6 +39,7 @@ export const AppLayout = (props: any) => {
const defaultKey = paths[current] || "1";
const theme = 'light';
return (
<div className="App">
<div className="Banner">
@ -54,12 +57,10 @@ export const AppLayout = (props: any) => {
logo={<div className="App-logo" />}
rightContentRender={() => <AppBar />}
links={[
<div title="Fork">
<GithubOutlined />
</div>,
]}
menuContentRender={() => {
return (
return (<div className="links">
<Menu theme={theme} defaultSelectedKeys={[defaultKey]} mode="inline">
<Menu.Item key="1" icon={<HomeOutlined />}>
<Link
@ -107,7 +108,7 @@ export const AppLayout = (props: any) => {
</Link>
</Menu.Item>
{/* Hide margin option for now */}
{/* <Menu.Item key="6" icon={< LineChartOutlined/>}>
{/* <Menu.Item key="6" onItemHover={() => {}} icon={< LineChartOutlined/>}>
<Link
to={{
pathname: "/margin",
@ -128,6 +129,19 @@ export const AppLayout = (props: any) => {
</Menu.Item>
)}
</Menu>
<Menu theme={theme} defaultSelectedKeys={[defaultKey]} selectable={false} mode="inline" className="bottom-links">
<Menu.Item key="16" icon={<ForkOutlined />}>
<a title="Fork" href={`${config.repository.url}/fork`} target="_blank">
Fork
</a>
</Menu.Item>,
<Menu.Item key="15" icon={<GithubOutlined />}>
<a title="Gtihub" href={config.repository.url} target="_blank">
Github
</a>
</Menu.Item>
</Menu>
</div>
);
}}
>
@ -135,4 +149,4 @@ export const AppLayout = (props: any) => {
</BasicLayout>
</div>
);
};
});

View File

@ -1,3 +1,5 @@
import './wdyr';
import React from "react";
import ReactDOM from "react-dom";
import "./index.css";

8
src/wdyr.ts Normal file
View File

@ -0,0 +1,8 @@
import React from 'react';
if (process.env.NODE_ENV === 'development') {
const whyDidYouRender = require('@welldone-software/why-did-you-render');
whyDidYouRender(React, {
trackAllPureComponents: true,
});
}

View File

@ -1891,6 +1891,13 @@
dependencies:
base-x "^3.0.6"
"@types/chart.js@^2.9.29":
version "2.9.29"
resolved "https://registry.yarnpkg.com/@types/chart.js/-/chart.js-2.9.29.tgz#73bf7f02387402943f29946012492f10bde7ed43"
integrity sha512-WOZMitUU3gHDM0oQsCsVivX+oDsIki93szcTmmUPBm39cCvAELBjokjSDVOoA3xiIEbb+jp17z/3S2tIqruwOQ==
dependencies:
moment "^2.10.2"
"@types/connect@^3.4.33":
version "3.4.33"
resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.33.tgz#31610c901eca573b8713c3330abc6e6b9f588546"
@ -2312,6 +2319,13 @@
"@webassemblyjs/wast-parser" "1.8.5"
"@xtuc/long" "4.2.2"
"@welldone-software/why-did-you-render@^6.0.5":
version "6.0.5"
resolved "https://registry.yarnpkg.com/@welldone-software/why-did-you-render/-/why-did-you-render-6.0.5.tgz#a8df3509ed612770bb21b5fa0ad61634acc61f38"
integrity sha512-8fWib+bKoAmnJHZPU8/qpEXKG8piB3oaoKj78fXNAdYd3x8ryde1pC7D5tKff5Mart2iOJUvYNxxcYlbtT9tow==
dependencies:
lodash "^4"
"@xtuc/ieee754@^1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
@ -3451,6 +3465,29 @@ chardet@^0.7.0:
resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
chart.js@^2.9.4:
version "2.9.4"
resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-2.9.4.tgz#0827f9563faffb2dc5c06562f8eb10337d5b9684"
integrity sha512-B07aAzxcrikjAPyV+01j7BmOpxtQETxTSlQ26BEYJ+3iUkbNKaOJ/nDbT6JjyqYxseM0ON12COHYdU2cTIjC7A==
dependencies:
chartjs-color "^2.1.0"
moment "^2.10.2"
chartjs-color-string@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz#1df096621c0e70720a64f4135ea171d051402f71"
integrity sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A==
dependencies:
color-name "^1.0.0"
chartjs-color@^2.1.0:
version "2.4.1"
resolved "https://registry.yarnpkg.com/chartjs-color/-/chartjs-color-2.4.1.tgz#6118bba202fe1ea79dd7f7c0f9da93467296c3b0"
integrity sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w==
dependencies:
chartjs-color-string "^0.6.0"
color-convert "^1.9.3"
cheerio@0.22.0:
version "0.22.0"
resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e"
@ -3642,7 +3679,7 @@ collection-visit@^1.0.0:
map-visit "^1.0.0"
object-visit "^1.0.0"
color-convert@^1.3.0, color-convert@^1.9.0, color-convert@^1.9.1:
color-convert@^1.3.0, color-convert@^1.9.0, color-convert@^1.9.1, color-convert@^1.9.3:
version "1.9.3"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
@ -7683,7 +7720,7 @@ lodash.uniq@^4.5.0:
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
"lodash@>=3.5 <5", lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.5:
"lodash@>=3.5 <5", lodash@^4, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.5:
version "4.17.20"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
@ -8046,7 +8083,7 @@ mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1:
dependencies:
minimist "^1.2.5"
moment@^2.24.0, moment@^2.25.3, moment@^2.27.0:
moment@^2.10.2, moment@^2.24.0, moment@^2.25.3, moment@^2.27.0:
version "2.29.1"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3"
integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==