feat: add links
This commit is contained in:
parent
f0fcc4b19c
commit
4d16a1c182
18
README.md
18
README.md
|
@ -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
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
10
src/App.less
10
src/App.less
|
@ -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;
|
||||
|
|
|
@ -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>
|
||||
);
|
||||
};
|
||||
});
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
import './wdyr';
|
||||
|
||||
import React from "react";
|
||||
import ReactDOM from "react-dom";
|
||||
import "./index.css";
|
||||
|
|
|
@ -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,
|
||||
});
|
||||
}
|
43
yarn.lock
43
yarn.lock
|
@ -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==
|
||||
|
|
Loading…
Reference in New Issue