From a847f6d2f35d7c7887132bae5a5b3fb474371c19 Mon Sep 17 00:00:00 2001 From: Ignacio Date: Mon, 22 Jan 2024 18:21:27 +0800 Subject: [PATCH] chore: continue with platform --- src/components/icons/icon_warning.svg | 13 ++++++++++ .../staking/components/staking_hero/index.tsx | 25 ++++++++++++++++++- .../unstaking_modal.module.scss | 6 ++--- .../staking_section/unstaking_modal.tsx | 4 +-- .../staking/lib/staking_sdk/context.tsx | 4 +-- 5 files changed, 44 insertions(+), 8 deletions(-) create mode 100644 src/components/icons/icon_warning.svg diff --git a/src/components/icons/icon_warning.svg b/src/components/icons/icon_warning.svg new file mode 100644 index 00000000..8c3e3c77 --- /dev/null +++ b/src/components/icons/icon_warning.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/screens/staking/components/staking_hero/index.tsx b/src/screens/staking/components/staking_hero/index.tsx index 963cf4e4..7dac5463 100644 --- a/src/screens/staking/components/staking_hero/index.tsx +++ b/src/screens/staking/components/staking_hero/index.tsx @@ -1,5 +1,6 @@ import Trans from "next-translate/Trans"; import useTranslation from "next-translate/useTranslation"; +import { useEffect } from "react"; import CtaButton from "@src/components/cta-button"; import HighlightButton from "@src/components/highlight-button"; @@ -7,10 +8,15 @@ import { getAllAccounts, getAllRewards, getAllStaked, + getCoinPriceForNetwork, setSelectedAccount, useStakingRef, } from "@src/screens/staking/lib/staking_sdk/context"; -import { accountHasRewards } from "@src/screens/staking/lib/staking_sdk/utils/accounts"; +import { + accountHasRewards, + filterOutTestnets, + filterUniqueAddresses, +} from "@src/screens/staking/lib/staking_sdk/utils/accounts"; import * as styles from "./index.module.scss"; @@ -25,6 +31,23 @@ const StakingHero = () => { const { hasInit } = stakingRef.current.state; + useEffect(() => { + if (hasInit) { + const filteredAccounts = getAllAccounts(stakingRef.current.state) + .filter(filterUniqueAddresses()) + .filter(filterOutTestnets); + + const networks = new Set( + filteredAccounts.map((account) => account.networkId), + ); + + // Once it has init, fetch all coin prices for all the networks + Array.from(networks).forEach((networkId) => { + getCoinPriceForNetwork(stakingRef.current, networkId); + }); + } + }, [hasInit, stakingRef]); + if (!hasInit) return null; const accounts = getAllAccounts(stakingRef.current.state); diff --git a/src/screens/staking/components/staking_section/unstaking_modal.module.scss b/src/screens/staking/components/staking_section/unstaking_modal.module.scss index 7a6020d5..a9a7daf9 100644 --- a/src/screens/staking/components/staking_section/unstaking_modal.module.scss +++ b/src/screens/staking/components/staking_section/unstaking_modal.module.scss @@ -20,8 +20,8 @@ } .info { - background: #dbedff; - border-left: 2px solid #007fff; + background: #fffbd8; + border-left: 2px solid rgba(237, 213, 0, 1); border-radius: 8px; box-shadow: 0 1px 10px 0 rgba(16, 24, 40, 0.05), @@ -68,7 +68,7 @@ line-height: 20px; b { - color: #007fff; + color: #e4a11e; font-size: 14px; font-style: normal; font-weight: 600; diff --git a/src/screens/staking/components/staking_section/unstaking_modal.tsx b/src/screens/staking/components/staking_section/unstaking_modal.tsx index 2d3e65cb..fee56c27 100644 --- a/src/screens/staking/components/staking_section/unstaking_modal.tsx +++ b/src/screens/staking/components/staking_section/unstaking_modal.tsx @@ -6,7 +6,7 @@ import { useEffect, useState } from "react"; import FormInput from "@src/components/form_input"; import HighlightButton from "@src/components/highlight-button"; -import IconInfoCircle from "@src/components/icons/info_circle_blue.svg"; +import IconWarning from "@src/components/icons/icon_warning.svg"; import LoadingSpinner from "@src/components/loading_spinner"; import { toastSuccess } from "@src/components/notification"; import { displayGenericError } from "@src/screens/staking/lib/error"; @@ -224,7 +224,7 @@ const UnstakingModal = () => { /> {!!memoError && {memoError}}
- +
{t("unstakingModal.infoTitle")}
{networkInfo ? ( diff --git a/src/screens/staking/lib/staking_sdk/context.tsx b/src/screens/staking/lib/staking_sdk/context.tsx index e391850e..ebfa9031 100644 --- a/src/screens/staking/lib/staking_sdk/context.tsx +++ b/src/screens/staking/lib/staking_sdk/context.tsx @@ -168,7 +168,7 @@ const getCoinPrice = async ( context: TStakingContext, denom: CoinDenom, ): Promise => { - const { setState, state } = context; + const { state } = context; const coinPrice = state.coinsPrices[denom]; @@ -179,7 +179,7 @@ const getCoinPrice = async ( if (coinRequest) return coinRequest; const newRequest = geckoClient.getCoinPrice(denom).then((price): string => { - setState((prevState) => ({ + context.setState((prevState) => ({ ...prevState, coinsPrices: { ...prevState.coinsPrices,