From b688b5930ee63fee2d033978c33efc261e9dd1da Mon Sep 17 00:00:00 2001 From: Adam Akbar Date: Wed, 13 Jul 2022 00:35:31 +0700 Subject: [PATCH 1/6] feat: new product page --- .../MarketDetailPage/VaultInformationCard.tsx | 1 - modules/tokenPage/TokenPageContainer.tsx | 4 +- .../component/ButtonMintOrRedeem.tsx | 31 ++++- .../component/LeveragedTokenBackingCard.tsx | 124 +++++++++++------- .../component/LeveragedTokenInfoCard.tsx | 102 -------------- modules/tokenPage/component/MyAssetsCard.tsx | 10 +- modules/tokenPage/component/PriceInfoCard.tsx | 8 +- .../component/TokenInformation/InfoItem.tsx | 23 ++++ .../LeveragedTokenInfoCard.tsx | 98 ++++++++++++++ .../TokenInformation/TokenInfoStore.ts | 18 +++ package-lock.json | 64 ++++++++- package.json | 4 +- public/assets/icon/tokenPage/worldIcon.svg | 9 ++ styles/globals.css | 12 ++ uikit/card/InformationCard.tsx | 20 +-- 15 files changed, 346 insertions(+), 182 deletions(-) delete mode 100644 modules/tokenPage/component/LeveragedTokenInfoCard.tsx create mode 100644 modules/tokenPage/component/TokenInformation/InfoItem.tsx create mode 100644 modules/tokenPage/component/TokenInformation/LeveragedTokenInfoCard.tsx create mode 100644 modules/tokenPage/component/TokenInformation/TokenInfoStore.ts create mode 100644 public/assets/icon/tokenPage/worldIcon.svg diff --git a/components/v1/MarketDetailPage/VaultInformationCard.tsx b/components/v1/MarketDetailPage/VaultInformationCard.tsx index 027e0896..8f65ac58 100644 --- a/components/v1/MarketDetailPage/VaultInformationCard.tsx +++ b/components/v1/MarketDetailPage/VaultInformationCard.tsx @@ -5,7 +5,6 @@ import { Metadata } from "../MarketMetadata"; import { useMarket } from "../swr/useMarket"; import ToastError from "../../../uikit/toasts/Error"; import { DEFAULT_CHAIN, useWalletContext } from "../Wallet"; -import MyAssetCard from "./LeveragedTokenMyAssetCard"; /** * VaultInformationCardProps is a React Component properties that passed to React Component VaultInformationCard diff --git a/modules/tokenPage/TokenPageContainer.tsx b/modules/tokenPage/TokenPageContainer.tsx index 6a5fbd84..f8b31260 100644 --- a/modules/tokenPage/TokenPageContainer.tsx +++ b/modules/tokenPage/TokenPageContainer.tsx @@ -11,7 +11,7 @@ import TabsList from "./component/TabsList"; import TabsContentGrid from "./component/TabsContentGrid"; import PriceInfoCard from "./component/PriceInfoCard"; import LeveragedTokenBackingCard from "./component/LeveragedTokenBackingCard"; -import LeveragedTokenInfoCard from "./component/LeveragedTokenInfoCard"; +import LeveragedTokenInfoCard from "./component/TokenInformation/LeveragedTokenInfoCard"; import MyAssetsCard from "./component/MyAssetsCard"; import VaultInfoCard from "./component/VaultInfoCard"; import { Root as TabsRoot } from "@radix-ui/react-tabs"; @@ -44,7 +44,6 @@ const TokenPageContainer: FunctionComponent = ({ chainI {/* Right Column */}
-
@@ -57,7 +56,6 @@ const TokenPageContainer: FunctionComponent = ({ chainI {/* RightColumn */}
-
diff --git a/modules/tokenPage/component/ButtonMintOrRedeem.tsx b/modules/tokenPage/component/ButtonMintOrRedeem.tsx index ae4c2d9b..4b801274 100644 --- a/modules/tokenPage/component/ButtonMintOrRedeem.tsx +++ b/modules/tokenPage/component/ButtonMintOrRedeem.tsx @@ -1,4 +1,4 @@ -import type { FunctionComponent } from "react"; +import { FunctionComponent, useEffect, useState } from "react"; import * as Dialog from "@radix-ui/react-dialog"; import * as Tabs from "@radix-ui/react-tabs"; import { Metadata } from "./MarketMetadata"; @@ -6,6 +6,7 @@ import MintDialogContent from "./MintDialogContent"; import RedeemDialogContent from "./RedeemDialogContent"; import ButtonAlternate from "../../../uikit/button/ButtonAlternate"; import { customChains } from "../../../components/v1/Wallet"; +import useKeyboardShortcut from "use-keyboard-shortcut"; /** * ButtonMintOrRedeemProps is a React Component properties that passed to React Component ButtonMintOrRedeem @@ -22,13 +23,29 @@ type ButtonMintOrRedeemProps = { */ const ButtonMintOrRedeem: FunctionComponent = ({ chainID, address }) => { const metadata = Metadata[chainID][address]; + const [isOpen, setIsOpen] = useState(false); + + const { flushHeldKeys } = useKeyboardShortcut(["Shift", "S"], (shortcutKeys) => setIsOpen(true), { + overrideSystem: false, + ignoreInputFields: false, + repeatOnHold: false, + }); + + useEffect(() => { + return () => flushHeldKeys(); + }, [flushHeldKeys]); return ( - - - - Mint or Redeem - + + setIsOpen(true)}> +
+ + Swap + + + Press + S for quick shortcut + +
@@ -44,7 +61,7 @@ const ButtonMintOrRedeem: FunctionComponent = ({ chainI

{metadata.title}

- + setIsOpen(false)}>