From 8c33407e15a7f51a8e5a8d88121aa03e178e2d8d Mon Sep 17 00:00:00 2001 From: Tudor Morar Date: Fri, 28 Jun 2024 11:23:53 +0300 Subject: [PATCH] Added default token in list (#29) --- src/hooks/tokens/useGetTokensWithEgld.ts | 41 ++++++++++++++++-------- vite.config.ts | 2 +- 2 files changed, 29 insertions(+), 14 deletions(-) diff --git a/src/hooks/tokens/useGetTokensWithEgld.ts b/src/hooks/tokens/useGetTokensWithEgld.ts index 13431981..a2c222ef 100644 --- a/src/hooks/tokens/useGetTokensWithEgld.ts +++ b/src/hooks/tokens/useGetTokensWithEgld.ts @@ -1,32 +1,47 @@ import { useEffect } from 'react'; +import uniqBy from 'lodash/unionBy'; import { useGetAccountInfo, useGetNetworkConfig } from 'lib'; import { useLazyGetTokensQuery } from 'redux/endpoints'; import { TokenType } from 'types'; +const defaultValues = { + owner: '', + minted: '', + burnt: '', + supply: '', + circulatingSupply: '', + canBurn: false, + canChangeOwner: false, + canFreeze: false, + canMint: false, + canPause: false, + canUpgrade: false, + canWipe: false, + isPaused: false, + transactions: 0, + accounts: 0 +}; + export const useGetTokensWithEgld = () => { const { websocketEvent, address, account } = useGetAccountInfo(); const { network } = useGetNetworkConfig(); const [fetchTokens, { data: tokens, isLoading }] = useLazyGetTokensQuery(); + const egldToken: TokenType = { + ...defaultValues, + identifier: network.egldLabel, + name: network.egldLabel, + balance: account?.balance + }; + useEffect(() => { fetchTokens(address); }, [address, websocketEvent]); - const usedTokens = [...(tokens ?? [])]; - - if (usedTokens.length > 0) { - const egldToken: TokenType = { - ...usedTokens[0], - identifier: network.egldLabel, - name: network.egldLabel, - balance: account?.balance - }; - - usedTokens.unshift(egldToken); - } + const usedTokens = [egldToken, ...(tokens ?? [])]; return { - tokens: usedTokens, + tokens: uniqBy(usedTokens, 'identifier'), isLoading }; }; diff --git a/vite.config.ts b/vite.config.ts index 359d0f03..e5218bc9 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,9 +1,9 @@ +import basicSsl from '@vitejs/plugin-basic-ssl'; import react from '@vitejs/plugin-react'; import { defineConfig } from 'vite'; import { nodePolyfills } from 'vite-plugin-node-polyfills'; import svgrPlugin from 'vite-plugin-svgr'; import tsconfigPaths from 'vite-tsconfig-paths'; -import basicSsl from '@vitejs/plugin-basic-ssl'; export default defineConfig({ server: {