From c0235adccffca7f1bfd1a5ea96ff4d80c032da0c Mon Sep 17 00:00:00 2001 From: Petar Todorovic Date: Thu, 8 May 2025 09:53:01 +0200 Subject: [PATCH 1/2] fix: init token + yield after connect --- .changeset/heavy-bottles-brake.md | 5 +++++ package.json | 2 +- .../pages/details/earn-page/state/use-init-token.ts | 11 +++++++++-- .../pages/details/earn-page/state/use-init-yield.ts | 11 +++++++++-- 4 files changed, 24 insertions(+), 5 deletions(-) create mode 100644 .changeset/heavy-bottles-brake.md diff --git a/.changeset/heavy-bottles-brake.md b/.changeset/heavy-bottles-brake.md new file mode 100644 index 00000000..c9a051f4 --- /dev/null +++ b/.changeset/heavy-bottles-brake.md @@ -0,0 +1,5 @@ +--- +"@stakekit/widget": patch +--- + +fix: init token + yield after connect diff --git a/package.json b/package.json index 8f5f9620..7fad4a25 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "knip": "^5.50.3", "turbo": "^2.5.0" }, - "packageManager": "pnpm@10.9.0", + "packageManager": "pnpm@10.10.0", "pnpm": { "overrides": { "@types/react": "19.0.10", diff --git a/packages/widget/src/pages/details/earn-page/state/use-init-token.ts b/packages/widget/src/pages/details/earn-page/state/use-init-token.ts index 1a21dff8..89393742 100644 --- a/packages/widget/src/pages/details/earn-page/state/use-init-token.ts +++ b/packages/widget/src/pages/details/earn-page/state/use-init-token.ts @@ -18,8 +18,14 @@ import { useGetTokenBalancesMap } from "./use-get-token-balances-map"; */ export const useInitToken = () => { const getTokenBalancesMap = useGetTokenBalancesMap(); - const { isLedgerLive, isConnected, network, additionalAddresses, address } = - useSKWallet(); + const { + isLedgerLive, + isConnected, + network, + additionalAddresses, + address, + isConnecting, + } = useSKWallet(); const queryClient = useSKQueryClient(); const { data: positionsData } = usePositionsData(); @@ -34,6 +40,7 @@ export const useInitToken = () => { address, additionalAddresses, ], + enabled: !isConnecting, queryFn: async () => ( await getTokenBalances({ diff --git a/packages/widget/src/pages/details/earn-page/state/use-init-yield.ts b/packages/widget/src/pages/details/earn-page/state/use-init-yield.ts index f02e0044..9b5258e7 100644 --- a/packages/widget/src/pages/details/earn-page/state/use-init-yield.ts +++ b/packages/widget/src/pages/details/earn-page/state/use-init-yield.ts @@ -18,8 +18,14 @@ export const useInitYield = ({ selectedToken: Maybe; }) => { const getTokenBalancesMap = useGetTokenBalancesMap(); - const { isLedgerLive, isConnected, network, additionalAddresses, address } = - useSKWallet(); + const { + isLedgerLive, + isConnected, + network, + additionalAddresses, + address, + isConnecting, + } = useSKWallet(); const queryClient = useSKQueryClient(); const { externalProviders, tokensForEnabledYieldsOnly } = useSettings(); const { data: positionsData } = usePositionsData(); @@ -34,6 +40,7 @@ export const useInitYield = ({ address, selectedToken.extract(), ], + enabled: !isConnecting, queryFn: async () => ( await EitherAsync.liftEither( From ef26affd10033bc0aaffae1749e5e21b9cc72b50 Mon Sep 17 00:00:00 2001 From: Petar Todorovic Date: Thu, 8 May 2025 09:54:48 +0200 Subject: [PATCH 2/2] feat: nominator count in validator info --- .changeset/cold-garlics-pump.md | 5 +++++ .../molecules/select-validator/meta-info.tsx | 22 +++++++++++++++++-- .../select-validator-list.tsx | 1 + .../containers/animation-layout.tsx | 2 +- .../src/translation/English/translations.json | 3 ++- .../src/translation/French/translations.json | 3 ++- 6 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 .changeset/cold-garlics-pump.md diff --git a/.changeset/cold-garlics-pump.md b/.changeset/cold-garlics-pump.md new file mode 100644 index 00000000..bd25e3f9 --- /dev/null +++ b/.changeset/cold-garlics-pump.md @@ -0,0 +1,5 @@ +--- +"@stakekit/widget": patch +--- + +feat: nominator count in validator info diff --git a/packages/widget/src/components/molecules/select-validator/meta-info.tsx b/packages/widget/src/components/molecules/select-validator/meta-info.tsx index fc242b44..5d7e33c0 100644 --- a/packages/widget/src/components/molecules/select-validator/meta-info.tsx +++ b/packages/widget/src/components/molecules/select-validator/meta-info.tsx @@ -20,10 +20,16 @@ export const useMetaInfo = ({ rewardRate, rewardType, website, + nominatorCount, }: { [Key in keyof Pick< ValidatorDto, - "stakedBalance" | "votingPower" | "commission" | "address" | "website" + | "stakedBalance" + | "votingPower" + | "commission" + | "address" + | "website" + | "nominatorCount" >]: ValidatorDto[Key] | undefined; } & { stakedBalanceToken: YieldDto["token"] | undefined; @@ -35,7 +41,12 @@ export const useMetaInfo = ({ return useMemo<{ [Key in keyof Pick< ValidatorDto, - "stakedBalance" | "votingPower" | "commission" | "address" | "website" + | "stakedBalance" + | "votingPower" + | "commission" + | "address" + | "website" + | "nominatorCount" >]: { title: string; val: ReactNode } | null; }>( () => ({ @@ -70,6 +81,12 @@ export const useMetaInfo = ({ .orDefault("-"), } : null, + nominatorCount: Number.isInteger(nominatorCount) + ? { + title: t("details.validators_nominator_count"), + val: nominatorCount, + } + : null, commission: commission ? { title: t("details.validators_comission"), @@ -109,6 +126,7 @@ export const useMetaInfo = ({ commission, address, website, + nominatorCount, ] ); }; diff --git a/packages/widget/src/components/molecules/select-validator/select-validator-list.tsx b/packages/widget/src/components/molecules/select-validator/select-validator-list.tsx index 12cd6da1..f60b6d1d 100644 --- a/packages/widget/src/components/molecules/select-validator/select-validator-list.tsx +++ b/packages/widget/src/components/molecules/select-validator/select-validator-list.tsx @@ -214,6 +214,7 @@ export const SelectValidatorList = ({ commission={item.commission} stakedBalance={item.stakedBalance} votingPower={item.votingPower} + nominatorCount={item.nominatorCount} rewardRate={undefined} rewardType={undefined} stakedBalanceToken={selectedStake.token} diff --git a/packages/widget/src/navigation/containers/animation-layout.tsx b/packages/widget/src/navigation/containers/animation-layout.tsx index 2b575160..cd080486 100644 --- a/packages/widget/src/navigation/containers/animation-layout.tsx +++ b/packages/widget/src/navigation/containers/animation-layout.tsx @@ -68,7 +68,7 @@ export const AnimationLayout = ({ children }: PropsWithChildren) => { initial={{ height: 0 }} animate={animate} onAnimationComplete={(def: typeof animate) => { - if (!def.height || state.layout) { + if (!def.height || def.height !== animate.height || state.layout) { return; } diff --git a/packages/widget/src/translation/English/translations.json b/packages/widget/src/translation/English/translations.json index e8379b25..c449a8ee 100644 --- a/packages/widget/src/translation/English/translations.json +++ b/packages/widget/src/translation/English/translations.json @@ -135,7 +135,8 @@ "validators_voting_power": "Voting power", "validators_address": "Address", "validators_comission": "Commission", - "validators_website": "Website" + "validators_website": "Website", + "validators_nominator_count": "Nominator count" }, "review": { "estimated_reward": "Estimated rewards", diff --git a/packages/widget/src/translation/French/translations.json b/packages/widget/src/translation/French/translations.json index f01af047..7c5b593d 100644 --- a/packages/widget/src/translation/French/translations.json +++ b/packages/widget/src/translation/French/translations.json @@ -135,7 +135,8 @@ "validators_voting_power": "Droit de vote", "validators_address": "Adresse", "validators_comission": "Commission", - "validators_website": "Site web" + "validators_website": "Site web", + "validators_nominator_count": "Nombre de nominators" }, "review": { "estimated_reward": "Récompenses estimées",