DeFiCh/wallet

View on GitHub

Showing 286 of 335 total issues

File CompositeSwapScreen.tsx has 1156 lines of code (exceeds 250 allowed). Consider refactoring.
Open

import { useCallback, useEffect, useMemo, useRef, useState } from "react";
import { Platform, ScrollView, TextInput, View } from "react-native";
import { useSelector } from "react-redux";
import { Controller, useForm } from "react-hook-form";
import BigNumber from "bignumber.js";

    Function AddLiquidityScreen has 556 lines of code (exceeds 100 allowed). Consider refactoring.
    Open

    export function AddLiquidityScreen(props: Props): JSX.Element {
      const logger = useLogger();
      const navigation = useNavigation<NavigationProp<DexParamList>>();
      const dispatch = useAppDispatch();
      const DFIToken = useSelector((state: RootState) =>
    Severity: Major
    Found in mobile-app/app/screens/AppNavigator/screens/Dex/DexAddLiquidity.tsx - About 2 days to fix

      Function ConvertScreen has 548 lines of code (exceeds 100 allowed). Consider refactoring.
      Open

      export function ConvertScreen(props: Props): JSX.Element {
        const { getTokenPrice } = useTokenPrice();
        const { isLight } = useThemeContext();
        const { domain, isEvmFeatureEnabled } = useDomainContext();
        const isEvmDomain = domain === DomainType.EVM;

        Function CompositeSwapScreen has a Cognitive Complexity of 107 (exceeds 5 allowed). Consider refactoring.
        Open

        export function CompositeSwapScreen({ route }: Props): JSX.Element {
          const logger = useLogger();
          const client = useWhaleApiClient();
          const whaleRpcClient = useWhaleRpcClient();
          const isFocused = useIsFocused();

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        File AddOrRemoveCollateralScreen.tsx has 858 lines of code (exceeds 250 allowed). Consider refactoring.
        Open

        import {
          ThemedScrollViewV2,
          ThemedTextV2,
          ThemedViewV2,
        } from "@components/themed";

          Function PortfolioNavigator has 473 lines of code (exceeds 100 allowed). Consider refactoring.
          Open

          export function PortfolioNavigator(): JSX.Element {
            const navigation = useNavigation<NavigationProp<PortfolioParamList>>();
            const { isLight } = useThemeContext();
            const { isEvmFeatureEnabled } = useDomainContext();
            const goToNetworkSelect = (): void => {

            File AddressBookScreen.tsx has 810 lines of code (exceeds 250 allowed). Consider refactoring.
            Open

            import { View } from "@components";
            import {
              ThemedIcon,
              ThemedSectionTitleV2,
              ThemedTextV2,

              File PortfolioScreen.tsx has 799 lines of code (exceeds 250 allowed). Consider refactoring.
              Open

              import {
                CommonActions,
                useIsFocused,
                useScrollToTop,
              } from "@react-navigation/native";

                Function LoanCards has 430 lines of code (exceeds 100 allowed). Consider refactoring.
                Open

                export function LoanCards(props: LoanCardsProps): JSX.Element {
                  const { isLight } = useThemeContext();
                  const loanTokens = useSelector((state: RootState) =>
                    loanTokensSelector(state.loans)
                  );

                  File BorrowLoanTokenScreen.tsx has 751 lines of code (exceeds 250 allowed). Consider refactoring.
                  Open

                  import { Platform, View } from "react-native";
                  import {
                    ThemedIcon,
                    ThemedScrollViewV2,
                    ThemedSectionTitleV2,

                    File ConvertScreen.tsx has 747 lines of code (exceeds 250 allowed). Consider refactoring.
                    Open

                    import { NavigationProp, useNavigation } from "@react-navigation/native";
                    import { StackScreenProps } from "@react-navigation/stack";
                    import BigNumber from "bignumber.js";
                    import React, { useEffect, useState } from "react";
                    import { useThemeContext } from "@waveshq/walletkit-ui";

                      Function ConvertScreen has a Cognitive Complexity of 83 (exceeds 5 allowed). Consider refactoring.
                      Open

                      export function ConvertScreen(props: Props): JSX.Element {
                        const { getTokenPrice } = useTokenPrice();
                        const { isLight } = useThemeContext();
                        const { domain, isEvmFeatureEnabled } = useDomainContext();
                        const isEvmDomain = domain === DomainType.EVM;

                      Cognitive Complexity

                      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                      A method's cognitive complexity is based on a few simple rules:

                      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                      • Code is considered more complex for each "break in the linear flow of the code"
                      • Code is considered more complex when "flow breaking structures are nested"

                      Further reading

                      File PortfolioNavigator.tsx has 662 lines of code (exceeds 250 allowed). Consider refactoring.
                      Open

                      import { NavigationProp, useNavigation } from "@react-navigation/native";
                      import { createStackNavigator } from "@react-navigation/stack";
                      import { AddressType, WalletToken } from "@waveshq/walletkit-ui/dist/store";
                      import BigNumber from "bignumber.js";
                      import { Image } from "expo-image";

                        File ConfirmCompositeSwapScreen.tsx has 643 lines of code (exceeds 250 allowed). Consider refactoring.
                        Open

                        import { WalletAlert } from "@components/WalletAlert";
                        import { Dispatch, useEffect, useState } from "react";
                        import { useSelector } from "react-redux";
                        import { getColor, tailwind } from "@tailwind";
                        import { StackScreenProps } from "@react-navigation/stack";

                          File DexAddLiquidity.tsx has 642 lines of code (exceeds 250 allowed). Consider refactoring.
                          Open

                          import { PoolPairData } from "@defichain/whale-api-client/dist/api/poolpairs";
                          import { NavigationProp, useNavigation } from "@react-navigation/native";
                          import { StackScreenProps } from "@react-navigation/stack";
                          import BigNumber from "bignumber.js";
                          import { useCallback, useEffect, useMemo, useState } from "react";
                          Severity: Major
                          Found in mobile-app/app/screens/AppNavigator/screens/Dex/DexAddLiquidity.tsx - About 1 day to fix

                            File PoolPairDetailsScreen.tsx has 622 lines of code (exceeds 250 allowed). Consider refactoring.
                            Open

                            import { View } from "@components";
                            import { NumberRowV2 } from "@components/NumberRowV2";
                            import {
                              IconName,
                              IconType,

                              Function TransactionAuthorization has 347 lines of code (exceeds 100 allowed). Consider refactoring.
                              Open

                              export function TransactionAuthorization(): JSX.Element | null {
                                const { data: providerData } = useWalletNodeContext();
                                const { clearWallets } = useWalletPersistenceContext();
                                const { network } = useNetworkContext();
                                const whaleApiClient = useWhaleApiClient();

                                File LoanCards.tsx has 602 lines of code (exceeds 250 allowed). Consider refactoring.
                                Open

                                import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
                                import {
                                  ThemedFlashList,
                                  ThemedIcon,
                                  ThemedScrollViewV2,

                                  File AddOrRemoveCollateralForm.tsx has 597 lines of code (exceeds 250 allowed). Consider refactoring.
                                  Open

                                  import { BottomSheetWithNavRouteParam } from "@components/BottomSheetWithNav";
                                  import { Button } from "@components/Button";
                                  import { InputHelperText } from "@components/InputHelperText";
                                  import { SymbolIcon } from "@components/SymbolIcon";
                                  import {

                                    Function DexScreen has 333 lines of code (exceeds 100 allowed). Consider refactoring.
                                    Open

                                    export function DexScreen(): JSX.Element {
                                      const navigation = useNavigation<NavigationProp<DexParamList>>();
                                      const [activeTab, setActiveTab] = useState<string>(TabKey.AvailablePoolPair);
                                      const tokens = useSelector((state: RootState) =>
                                        tokensSelector(state.wallet)
                                    Severity: Major
                                    Found in mobile-app/app/screens/AppNavigator/screens/Dex/DexScreen.tsx - About 1 day to fix
                                      Severity
                                      Category
                                      Status
                                      Source
                                      Language