From a4bbf92ced7f1c2bafa49a26e6db314f76a5fe82 Mon Sep 17 00:00:00 2001 From: Bob van der Helm <34470358+bobthebuidlr@users.noreply.github.com> Date: Thu, 23 Nov 2023 15:42:08 +0100 Subject: [PATCH] Initialize perps (#648) * setup routing * add basic perps interface * small fix --- src/components/Divider.tsx | 2 +- src/components/Header/DesktopHeader.tsx | 3 +- .../Perps/Module/LeverageButtons.tsx | 15 +++++ src/components/Perps/Module/Or.tsx | 14 +++++ src/components/Perps/Module/PerpsModule.tsx | 59 ++++++++++++++++++ .../Perps/Module/SelectLongShort.tsx | 62 +++++++++++++++++++ src/components/Perps/PerpsChart.tsx | 12 ++++ src/components/Perps/PerpsInfo.tsx | 47 ++++++++++++++ src/components/Perps/PerpsPositions.tsx | 5 ++ src/components/Routes.tsx | 4 ++ src/components/Spacer.tsx | 3 + .../Trade/TradeChart/TVChartContainer.tsx | 4 +- .../SwapForm/OrderTypeSelector/index.tsx | 2 +- .../Trade/TradeModule/SwapForm/index.tsx | 4 +- src/hooks/useUpdatedAccount/index.ts | 2 +- src/pages/PerpsPage.tsx | 19 ++++++ src/pages/_layout.tsx | 5 +- src/types/interfaces/perps.d.ts | 1 + src/types/interfaces/route.d.ts | 1 + src/utils/route.ts | 11 +++- tailwind.config.js | 1 + 21 files changed, 267 insertions(+), 9 deletions(-) create mode 100644 src/components/Perps/Module/LeverageButtons.tsx create mode 100644 src/components/Perps/Module/Or.tsx create mode 100644 src/components/Perps/Module/PerpsModule.tsx create mode 100644 src/components/Perps/Module/SelectLongShort.tsx create mode 100644 src/components/Perps/PerpsChart.tsx create mode 100644 src/components/Perps/PerpsInfo.tsx create mode 100644 src/components/Perps/PerpsPositions.tsx create mode 100644 src/components/Spacer.tsx create mode 100644 src/pages/PerpsPage.tsx create mode 100644 src/types/interfaces/perps.d.ts diff --git a/src/components/Divider.tsx b/src/components/Divider.tsx index cd57f1df..efd9fcca 100644 --- a/src/components/Divider.tsx +++ b/src/components/Divider.tsx @@ -7,7 +7,7 @@ interface Props { export default function Divider(props: Props) { if (props.orientation === 'vertical') { - return
+ return } return } diff --git a/src/components/Header/DesktopHeader.tsx b/src/components/Header/DesktopHeader.tsx index 6ec89232..555d40c0 100644 --- a/src/components/Header/DesktopHeader.tsx +++ b/src/components/Header/DesktopHeader.tsx @@ -10,12 +10,13 @@ import Settings from 'components/Settings' import Wallet from 'components/Wallet' import useAccountId from 'hooks/useAccountId' import useStore from 'store' +import { ENABLE_HLS, ENABLE_PERPS } from 'utils/constants' import { WalletID } from 'types/enums/wallet' -import { ENABLE_HLS } from 'utils/constants' import { getGovernanceUrl } from 'utils/helpers' export const menuTree = (walletId: WalletID): MenuTreeEntry[] => [ { pages: ['trade'], label: 'Trade' }, + ...(ENABLE_PERPS ? [{ pages: ['perps'] as Page[], label: 'Perps' }] : []), { pages: ['lend', 'farm'], label: 'Earn' }, { pages: ['borrow'], label: 'Borrow' }, ...(ENABLE_HLS ? [{ pages: ['hls-staking'] as Page[], label: 'High Leverage' }] : []), diff --git a/src/components/Perps/Module/LeverageButtons.tsx b/src/components/Perps/Module/LeverageButtons.tsx new file mode 100644 index 00000000..66a61bb9 --- /dev/null +++ b/src/components/Perps/Module/LeverageButtons.tsx @@ -0,0 +1,15 @@ +import Button from 'components/Button' + +const LEVERAGE_PRESETS = [1, 2, 3, 5, 10] + +export function LeverageButtons() { + return ( +