diff --git a/.github/workflows/mobile-deploy.yml b/.github/workflows/mobile-deploy.yml index 78ccf210c..14bfbc418 100644 --- a/.github/workflows/mobile-deploy.yml +++ b/.github/workflows/mobile-deploy.yml @@ -44,6 +44,8 @@ on: jobs: build-ios: + # disable for now, will fix soon + if: false runs-on: macos-latest steps: - name: Set up Xcode @@ -309,41 +311,41 @@ jobs: - name: Remove project.pbxproj updates we don't want to commit run: | PBXPROJ_FILE="app/ios/Self.xcodeproj/project.pbxproj" - + # Create a temporary file to store version info echo "Extracting version information..." rm -f versions.txt grep -E 'CURRENT_PROJECT_VERSION = [0-9]+;|MARKETING_VERSION = [0-9]+\.[0-9]+\.[0-9]+;' "${PBXPROJ_FILE}" > versions.txt - + # Check if we have version information if [ -s versions.txt ]; then echo "Found version information. Resetting file and re-applying versions..." - + # Store the version values CURRENT_VERSION=$(grep 'CURRENT_PROJECT_VERSION' versions.txt | head -1 | sed 's/.*CURRENT_PROJECT_VERSION = \([0-9]*\);.*/\1/') MARKETING_VERSION=$(grep 'MARKETING_VERSION' versions.txt | head -1 | sed 's/.*MARKETING_VERSION = \([0-9]*\.[0-9]*\.[0-9]*\);.*/\1/') - + echo "Current version: $CURRENT_VERSION" echo "Marketing version: $MARKETING_VERSION" - + # Reset the file to HEAD git checkout HEAD -- "${PBXPROJ_FILE}" - + # Update the versions if they exist if [ ! -z "$CURRENT_VERSION" ]; then sed -i '' "s/\(CURRENT_PROJECT_VERSION = \)[0-9]*;/\1$CURRENT_VERSION;/g" "${PBXPROJ_FILE}" fi - + if [ ! -z "$MARKETING_VERSION" ]; then sed -i '' "s/\(MARKETING_VERSION = \)[0-9]*\.[0-9]*\.[0-9]*;/\1$MARKETING_VERSION;/g" "${PBXPROJ_FILE}" fi - + echo "Version information successfully applied." else echo "No version information found. Resetting file..." git checkout HEAD -- "${PBXPROJ_FILE}" fi - + # Clean up rm -f versions.txt @@ -361,6 +363,8 @@ jobs: commit_paths: "./app/ios/OpenPassport/Info.plist ./app/ios/Self.xcodeproj/project.pbxproj" build-android: + # disable for now, will fix soon + if: false runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 000000000..4530c4e8e --- /dev/null +++ b/.prettierrc @@ -0,0 +1,12 @@ +{ + "arrowParens": "avoid", + "bracketSameLine": false, + "bracketSpacing": true, + "singleQuote": true, + "trailingComma": "all", + "tabWidth": 2, + "useTabs": false, + "semi": true, + "endOfLine": "auto", + "parser": "typescript" +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..3970cd642 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,73 @@ +{ + // Formatting & Linting + "editor.formatOnSave": false, + "editor.formatOnPaste": false, + + // Path-specific formatting + "[**/app/**]": { + "editor.formatOnSave": true + }, + + // ESLint Configuration + "eslint.run": "onType", + "eslint.alwaysShowStatus": true, + "eslint.format.enable": true, + "eslint.lintTask.enable": true, + "eslint.quiet": false, + "eslint.validate": [ + "javascript", + "javascriptreact", + "typescript", + "typescriptreact" + ], + "eslint.probe": [ + "javascript", + "javascriptreact", + "typescript", + "typescriptreact" + ], + + // Auto-fix Actions + "editor.codeActionsOnSave": { + "source.fixAll.eslint": "always", + "source.organizeImports": "always" + }, + "editor.codeActionsOnSave.mode": "all", + + // TypeScript Specific Rules + "typescript.format.enable": false, // Disable VS Code's built-in formatter for TypeScript + "[typescript]": { + "editor.defaultFormatter": null // Let ESLint handle TypeScript formatting + }, + "[typescriptreact]": { + "editor.defaultFormatter": null // Let ESLint handle TypeScript React formatting + }, + + // Indentation & Whitespace + "editor.tabSize": 2, + "editor.insertSpaces": true, + "editor.indentSize": "tabSize", + "editor.detectIndentation": true, + "editor.useTabStops": true, + "editor.stickyTabStops": true, + "editor.trimAutoWhitespace": true, + "files.trimTrailingWhitespace": true, + "files.insertFinalNewline": true, + "files.trimFinalNewlines": true, + "javascript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces": false, + "typescript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces": false, + + // Editor Visual Aids + "editor.renderWhitespace": "selection", + "editor.renderControlCharacters": true, + "editor.rulers": [100], + "editor.wordWrap": "off", + "editor.wrappingIndent": "none", + + // Editor suggestions + "editor.quickSuggestions": { + "other": true, + "comments": false, + "strings": false + } +} diff --git a/app/.eslintrc.js b/app/.eslintrc.js index cdcfd73a6..20f4fdd00 100644 --- a/app/.eslintrc.js +++ b/app/.eslintrc.js @@ -1,9 +1,29 @@ module.exports = { root: true, - extends: '@react-native', + extends: ['@react-native', 'plugin:prettier/recommended'], + plugins: ['simple-import-sort', 'prettier'], ignorePatterns: ['ios/', 'android/', 'deployments/', 'node_modules/'], rules: { + // Import sorting rules + 'simple-import-sort/imports': 'warn', + 'simple-import-sort/exports': 'warn', + + // Add prettier rule to show prettier errors as ESLint errors + 'prettier/prettier': [ + 'warn', + { + // Fix for TypeScript union types indentation + typescriptBracketSpacing: true, + typeAssertionStyle: 'as', + }, + { usePrettierrc: true }, + ], + + // Preserve project-specific rule exemptions 'react-native/no-inline-styles': 'off', 'react-hooks/exhaustive-deps': 'off', + + // Override any ESLint rules that conflict with the TypeScript union type formatting + '@typescript-eslint/indent': 'off', }, }; diff --git a/app/.prettierrc b/app/.prettierrc new file mode 100644 index 000000000..41334fc47 --- /dev/null +++ b/app/.prettierrc @@ -0,0 +1,11 @@ +{ + "arrowParens": "avoid", + "bracketSameLine": false, + "bracketSpacing": true, + "singleQuote": true, + "trailingComma": "all", + "tabWidth": 2, + "useTabs": false, + "semi": true, + "endOfLine": "auto" +} diff --git a/app/.prettierrc.js b/app/.prettierrc.js deleted file mode 100644 index 297155706..000000000 --- a/app/.prettierrc.js +++ /dev/null @@ -1,11 +0,0 @@ -module.exports = { - arrowParens: 'avoid', - bracketSameLine: false, - bracketSpacing: true, - singleQuote: true, - trailingComma: 'all', - plugins: ['@trivago/prettier-plugin-sort-imports'], - importOrder: ['^react', '', '^[./]'], - importOrderSeparation: true, - importOrderSortSpecifiers: true, -}; diff --git a/app/App.tsx b/app/App.tsx index fde02d89d..e0f3dcd29 100644 --- a/app/App.tsx +++ b/app/App.tsx @@ -1,7 +1,7 @@ -import React from 'react'; import 'react-native-get-random-values'; import { Buffer } from 'buffer'; +import React from 'react'; import { YStack } from 'tamagui'; import AppNavigation from './src/Navigation'; diff --git a/app/index.js b/app/index.js index 40dc2cfa0..9e29e1677 100644 --- a/app/index.js +++ b/app/index.js @@ -1,16 +1,16 @@ /** * @format */ -import React from 'react'; -import { AppRegistry, LogBox } from 'react-native'; +import './src/utils/ethers'; import { config } from '@tamagui/config/v2-native'; import { ToastProvider } from '@tamagui/toast'; -import { TamaguiProvider, createTamagui } from 'tamagui'; +import React from 'react'; +import { AppRegistry, LogBox } from 'react-native'; +import { createTamagui, TamaguiProvider } from 'tamagui'; import App from './App'; import { name as appName } from './app.json'; -import './src/utils/ethers'; const tamaguiConfig = createTamagui(config); diff --git a/app/package.json b/app/package.json index 9e64484a4..8d7c5e200 100644 --- a/app/package.json +++ b/app/package.json @@ -107,7 +107,6 @@ "@react-native/metro-config": "0.75.4", "@react-native/typescript-config": "0.75.4", "@tamagui/types": "1.110.0", - "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@tsconfig/react-native": "^3.0.0", "@types/add": "^2", "@types/elliptic": "^6", @@ -119,8 +118,11 @@ "@types/react-native": "^0.73.0", "@types/react-native-dotenv": "^0.2.0", "eslint": "^8.19.0", + "eslint-config-prettier": "^10.1.2", + "eslint-plugin-prettier": "^5.2.6", + "eslint-plugin-simple-import-sort": "^12.1.1", "jest": "^29.6.3", - "prettier": "2.8.8", + "prettier": "^3.5.3", "react-native-bundle-visualizer": "^3.1.3", "react-native-svg-transformer": "^1.5.0", "stream-browserify": "^3.0.0", diff --git a/app/src/Navigation/index.tsx b/app/src/Navigation/index.tsx index 386b69d33..59734916a 100644 --- a/app/src/Navigation/index.tsx +++ b/app/src/Navigation/index.tsx @@ -1,13 +1,13 @@ -import React from 'react'; import 'react-native-gesture-handler'; -import { GestureHandlerRootView } from 'react-native-gesture-handler'; import { - StaticParamList, createNavigationContainerRef, createStaticNavigation, + StaticParamList, } from '@react-navigation/native'; import { createNativeStackNavigator } from '@react-navigation/native-stack'; +import React from 'react'; +import { GestureHandlerRootView } from 'react-native-gesture-handler'; import { DefaultNavBar } from '../components/NavBar'; import AppLayout from '../layouts/AppLayout'; @@ -21,6 +21,7 @@ import aesopScreens from './aesop'; import homeScreens from './home'; import passportScreens from './passport'; import proveScreens from './prove'; +import recoveryScreens from './recovery'; import settingsScreens from './settings'; import staticScreens from './static'; @@ -39,6 +40,7 @@ const AppNavigation = createNativeStackNavigator({ ...proveScreens, ...accountScreens, ...settingsScreens, + ...recoveryScreens, ...aesopScreens, }, }); diff --git a/app/src/Navigation/static.tsx b/app/src/Navigation/static.tsx index 30c921907..b134597ca 100644 --- a/app/src/Navigation/static.tsx +++ b/app/src/Navigation/static.tsx @@ -1,8 +1,7 @@ +import { NativeStackNavigationOptions } from '@react-navigation/native-stack'; import React from 'react'; import { StatusBar } from 'react-native'; -import { NativeStackNavigationOptions } from '@react-navigation/native-stack'; - import LaunchScreen from '../screens/LaunchScreen'; import ModalScreen from '../screens/Settings/ModalScreen'; import SplashScreen from '../screens/SplashScreen'; diff --git a/app/src/Segment.ts b/app/src/Segment.ts index d6b842b8e..21fe64b31 100644 --- a/app/src/Segment.ts +++ b/app/src/Segment.ts @@ -1,10 +1,11 @@ -import { SEGMENT_KEY } from '@env'; import '@ethersproject/shims'; + +import { SEGMENT_KEY } from '@env'; import { + createClient, EventPlugin, PluginType, SegmentEvent, - createClient, } from '@segment/analytics-react-native'; let segmentClient: ReturnType | null = null; diff --git a/app/src/components/BackupDocumentationLink.tsx b/app/src/components/BackupDocumentationLink.tsx index 94964d73c..91f8117c9 100644 --- a/app/src/components/BackupDocumentationLink.tsx +++ b/app/src/components/BackupDocumentationLink.tsx @@ -1,6 +1,5 @@ import React from 'react'; import { Platform } from 'react-native'; - import { Anchor, styled } from 'tamagui'; const StyledAnchor = styled(Anchor, { diff --git a/app/src/components/Disclosures.tsx b/app/src/components/Disclosures.tsx index 162afa31f..ea9a2db81 100644 --- a/app/src/components/Disclosures.tsx +++ b/app/src/components/Disclosures.tsx @@ -1,5 +1,4 @@ import React from 'react'; - import { XStack, YStack } from 'tamagui'; import { diff --git a/app/src/components/Mnemonic.tsx b/app/src/components/Mnemonic.tsx index 279ae3af2..e997408ca 100644 --- a/app/src/components/Mnemonic.tsx +++ b/app/src/components/Mnemonic.tsx @@ -1,6 +1,5 @@ -import React, { useCallback, useState } from 'react'; - import Clipboard from '@react-native-clipboard/clipboard'; +import React, { useCallback, useState } from 'react'; import { Button, Text, XStack, YStack } from 'tamagui'; import { diff --git a/app/src/components/NavBar/BaseNavBar.tsx b/app/src/components/NavBar/BaseNavBar.tsx index bb1505843..fa18e0991 100644 --- a/app/src/components/NavBar/BaseNavBar.tsx +++ b/app/src/components/NavBar/BaseNavBar.tsx @@ -1,7 +1,6 @@ +import { ChevronLeft, X } from '@tamagui/lucide-icons'; import React, { useMemo } from 'react'; import { StatusBar, StatusBarStyle } from 'react-native'; - -import { ChevronLeft, X } from '@tamagui/lucide-icons'; import { Button, TextProps, diff --git a/app/src/components/NavBar/DefaultNavBar.tsx b/app/src/components/NavBar/DefaultNavBar.tsx index fd18c2ca6..677cc2351 100644 --- a/app/src/components/NavBar/DefaultNavBar.tsx +++ b/app/src/components/NavBar/DefaultNavBar.tsx @@ -1,7 +1,6 @@ +import { NativeStackHeaderProps } from '@react-navigation/native-stack'; import React from 'react'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; - -import { NativeStackHeaderProps } from '@react-navigation/native-stack'; import { TextStyle, ViewStyle } from 'tamagui'; import { white } from '../../utils/colors'; diff --git a/app/src/components/NavBar/HomeNavBar.tsx b/app/src/components/NavBar/HomeNavBar.tsx index e94865778..dbebeb2ca 100644 --- a/app/src/components/NavBar/HomeNavBar.tsx +++ b/app/src/components/NavBar/HomeNavBar.tsx @@ -1,7 +1,6 @@ +import { NativeStackHeaderProps } from '@react-navigation/native-stack'; import React from 'react'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; - -import { NativeStackHeaderProps } from '@react-navigation/native-stack'; import { Button } from 'tamagui'; import ActivityIcon from '../../images/icons/activity.svg'; diff --git a/app/src/components/NavBar/ProgressNavBar.tsx b/app/src/components/NavBar/ProgressNavBar.tsx index b47272d94..bc4c94d54 100644 --- a/app/src/components/NavBar/ProgressNavBar.tsx +++ b/app/src/components/NavBar/ProgressNavBar.tsx @@ -1,10 +1,9 @@ -import React from 'react'; -import { useSafeAreaInsets } from 'react-native-safe-area-context'; - import { NativeStackHeaderProps, NativeStackNavigationOptions, } from '@react-navigation/native-stack'; +import React from 'react'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; import { TextStyle, ViewStyle, XStack, YStack } from 'tamagui'; import { cyan300, slate200, white } from '../../utils/colors'; diff --git a/app/src/components/Tips.tsx b/app/src/components/Tips.tsx index 4e2805b99..1e7d3fa91 100644 --- a/app/src/components/Tips.tsx +++ b/app/src/components/Tips.tsx @@ -1,5 +1,4 @@ import React from 'react'; - import { Text, View } from 'tamagui'; import { slate500 } from '../utils/colors'; diff --git a/app/src/components/buttons/AbstractButton.tsx b/app/src/components/buttons/AbstractButton.tsx index 776c7df8d..49c158f85 100644 --- a/app/src/components/buttons/AbstractButton.tsx +++ b/app/src/components/buttons/AbstractButton.tsx @@ -1,6 +1,5 @@ import React from 'react'; import { StyleSheet, ViewStyle } from 'react-native'; - import { Button, Text, ViewProps } from 'tamagui'; import { shouldShowAesopRedesign } from '../../hooks/useAesopRedesign'; diff --git a/app/src/components/native/RCTFragment.tsx b/app/src/components/native/RCTFragment.tsx index 84b235db2..31351304f 100644 --- a/app/src/components/native/RCTFragment.tsx +++ b/app/src/components/native/RCTFragment.tsx @@ -1,6 +1,6 @@ import React, { useEffect, useRef } from 'react'; import { NativeSyntheticEvent, requireNativeComponent } from 'react-native'; -import { UIManager, findNodeHandle } from 'react-native'; +import { findNodeHandle, UIManager } from 'react-native'; export interface RCTFragmentViewManagerProps { RCTFragmentViewManager: ReturnType; diff --git a/app/src/components/typography/BodyText.ts b/app/src/components/typography/BodyText.ts index 243db4d39..12043e829 100644 --- a/app/src/components/typography/BodyText.ts +++ b/app/src/components/typography/BodyText.ts @@ -1,4 +1,4 @@ -import { Text, styled } from 'tamagui'; +import { styled, Text } from 'tamagui'; import { dinot } from '../../utils/fonts'; diff --git a/app/src/components/typography/Description.tsx b/app/src/components/typography/Description.tsx index 39688e955..16973cebd 100644 --- a/app/src/components/typography/Description.tsx +++ b/app/src/components/typography/Description.tsx @@ -1,6 +1,5 @@ import React from 'react'; import { StyleSheet } from 'react-native'; - import { Text, TextProps } from 'tamagui'; import { shouldShowAesopRedesign } from '../../hooks/useAesopRedesign'; diff --git a/app/src/components/typography/DescriptionTitle.tsx b/app/src/components/typography/DescriptionTitle.tsx index f6a187dec..dd55dc0a9 100644 --- a/app/src/components/typography/DescriptionTitle.tsx +++ b/app/src/components/typography/DescriptionTitle.tsx @@ -1,4 +1,4 @@ -import { Text, styled } from 'tamagui'; +import { styled, Text } from 'tamagui'; import { dinot } from '../../utils/fonts'; diff --git a/app/src/components/typography/SubHeader.tsx b/app/src/components/typography/SubHeader.tsx index c78be74ad..19edad157 100644 --- a/app/src/components/typography/SubHeader.tsx +++ b/app/src/components/typography/SubHeader.tsx @@ -1,4 +1,4 @@ -import { Text, styled } from 'tamagui'; +import { styled, Text } from 'tamagui'; import { dinot } from '../../utils/fonts'; diff --git a/app/src/components/typography/Title.tsx b/app/src/components/typography/Title.tsx index 9af695446..b40a84c88 100644 --- a/app/src/components/typography/Title.tsx +++ b/app/src/components/typography/Title.tsx @@ -1,6 +1,5 @@ import { StyleProp, TextStyle } from 'react-native'; - -import { Text, styled } from 'tamagui'; +import { styled, Text } from 'tamagui'; import { advercase } from '../../utils/fonts'; diff --git a/app/src/hooks/useAppUpdates.ts b/app/src/hooks/useAppUpdates.ts index 0285fc05d..f03ae1781 100644 --- a/app/src/hooks/useAppUpdates.ts +++ b/app/src/hooks/useAppUpdates.ts @@ -1,9 +1,8 @@ +import { useNavigation } from '@react-navigation/native'; import { useState } from 'react'; import { Linking } from 'react-native'; import { checkVersion } from 'react-native-check-version'; -import { useNavigation } from '@react-navigation/native'; - export const useAppUpdates = (): [boolean, () => void, boolean] => { const navigation = useNavigation(); const [newVersionUrl, setNewVersionUrl] = useState(null); diff --git a/app/src/hooks/useConnectionModal.ts b/app/src/hooks/useConnectionModal.ts index 8aac3bf03..a3308bc9f 100644 --- a/app/src/hooks/useConnectionModal.ts +++ b/app/src/hooks/useConnectionModal.ts @@ -1,10 +1,9 @@ +import { useNetInfo } from '@react-native-community/netinfo'; import { useEffect } from 'react'; import { Linking, Platform } from 'react-native'; -import { useNetInfo } from '@react-native-community/netinfo'; - -import { navigationRef } from '../Navigation'; import { useModal } from '../hooks/useModal'; +import { navigationRef } from '../Navigation'; const connectionModalParams = { titleText: 'Internet connection error', diff --git a/app/src/hooks/useHapticNavigation.ts b/app/src/hooks/useHapticNavigation.ts index ac3dd2b5c..9ca3aea25 100644 --- a/app/src/hooks/useHapticNavigation.ts +++ b/app/src/hooks/useHapticNavigation.ts @@ -1,7 +1,6 @@ -import { useCallback } from 'react'; - import { useNavigation } from '@react-navigation/native'; import { NativeStackScreenProps } from '@react-navigation/native-stack'; +import { useCallback } from 'react'; import type { RootStackParamList } from '../Navigation'; import { impactLight, impactMedium, selectionChange } from '../utils/haptic'; diff --git a/app/src/hooks/useMnemonic.ts b/app/src/hooks/useMnemonic.ts index 0aa33d532..967bb408c 100644 --- a/app/src/hooks/useMnemonic.ts +++ b/app/src/hooks/useMnemonic.ts @@ -1,6 +1,5 @@ -import { useCallback, useState } from 'react'; - import { ethers } from 'ethers'; +import { useCallback, useState } from 'react'; import { useAuth } from '../stores/authProvider'; diff --git a/app/src/hooks/useModal.ts b/app/src/hooks/useModal.ts index b69e4acf0..c75924b87 100644 --- a/app/src/hooks/useModal.ts +++ b/app/src/hooks/useModal.ts @@ -1,6 +1,5 @@ -import { useCallback, useState } from 'react'; - import { useNavigation } from '@react-navigation/native'; +import { useCallback, useState } from 'react'; import { ModalParams } from '../screens/Settings/ModalScreen'; diff --git a/app/src/layouts/ExpandableBottomLayout.tsx b/app/src/layouts/ExpandableBottomLayout.tsx index 0404a29e2..9f17e489f 100644 --- a/app/src/layouts/ExpandableBottomLayout.tsx +++ b/app/src/layouts/ExpandableBottomLayout.tsx @@ -1,7 +1,6 @@ import React from 'react'; import { StatusBar, StyleSheet } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; - import { View, ViewProps } from 'tamagui'; import { black, white } from '../utils/colors'; diff --git a/app/src/layouts/SimpleScrolledTitleLayout.tsx b/app/src/layouts/SimpleScrolledTitleLayout.tsx index 49145accc..cefe2d347 100644 --- a/app/src/layouts/SimpleScrolledTitleLayout.tsx +++ b/app/src/layouts/SimpleScrolledTitleLayout.tsx @@ -1,5 +1,4 @@ import React from 'react'; - import { ScrollView, YStack } from 'tamagui'; import { PrimaryButton } from '../components/buttons/PrimaryButton'; diff --git a/app/src/screens/AccountFlow/AccountRecoveryChoiceScreen.tsx b/app/src/screens/AccountFlow/AccountRecoveryChoiceScreen.tsx index 69b114046..d1c6712ba 100644 --- a/app/src/screens/AccountFlow/AccountRecoveryChoiceScreen.tsx +++ b/app/src/screens/AccountFlow/AccountRecoveryChoiceScreen.tsx @@ -1,6 +1,5 @@ -import React, { useCallback, useState } from 'react'; - import { useNavigation } from '@react-navigation/native'; +import React, { useCallback, useState } from 'react'; import { Separator, View, XStack, YStack } from 'tamagui'; import { PrimaryButton } from '../../components/buttons/PrimaryButton'; diff --git a/app/src/screens/AccountFlow/AccountRecoveryScreen.tsx b/app/src/screens/AccountFlow/AccountRecoveryScreen.tsx index 72503f544..d082b7416 100644 --- a/app/src/screens/AccountFlow/AccountRecoveryScreen.tsx +++ b/app/src/screens/AccountFlow/AccountRecoveryScreen.tsx @@ -1,5 +1,4 @@ import React from 'react'; - import { View, YStack } from 'tamagui'; import { PrimaryButton } from '../../components/buttons/PrimaryButton'; diff --git a/app/src/screens/AccountFlow/AccountVerifiedSuccessScreen.tsx b/app/src/screens/AccountFlow/AccountVerifiedSuccessScreen.tsx index 1f6fbd2cc..9f92e8fa4 100644 --- a/app/src/screens/AccountFlow/AccountVerifiedSuccessScreen.tsx +++ b/app/src/screens/AccountFlow/AccountVerifiedSuccessScreen.tsx @@ -1,7 +1,6 @@ -import React from 'react'; - import { useNavigation } from '@react-navigation/native'; import LottieView from 'lottie-react-native'; +import React from 'react'; import { YStack } from 'tamagui'; import proofSuccessAnimation from '../../assets/animations/proof_success.json'; diff --git a/app/src/screens/AccountFlow/RecoverWithPhraseScreen.tsx b/app/src/screens/AccountFlow/RecoverWithPhraseScreen.tsx index a938fce02..4bff14c71 100644 --- a/app/src/screens/AccountFlow/RecoverWithPhraseScreen.tsx +++ b/app/src/screens/AccountFlow/RecoverWithPhraseScreen.tsx @@ -1,9 +1,8 @@ -import React, { useCallback, useState } from 'react'; -import { Keyboard, StyleSheet } from 'react-native'; - import Clipboard from '@react-native-clipboard/clipboard'; import { useNavigation } from '@react-navigation/native'; import { ethers } from 'ethers'; +import React, { useCallback, useState } from 'react'; +import { Keyboard, StyleSheet } from 'react-native'; import { Text, TextArea, View, XStack, YStack } from 'tamagui'; import { SecondaryButton } from '../../components/buttons/SecondaryButton'; diff --git a/app/src/screens/AccountFlow/SaveRecoveryPhraseScreen.tsx b/app/src/screens/AccountFlow/SaveRecoveryPhraseScreen.tsx index 3bb0677e4..f74efaef3 100644 --- a/app/src/screens/AccountFlow/SaveRecoveryPhraseScreen.tsx +++ b/app/src/screens/AccountFlow/SaveRecoveryPhraseScreen.tsx @@ -1,8 +1,8 @@ import React, { useCallback, useState } from 'react'; -import Mnemonic from '../../components/Mnemonic'; import { PrimaryButton } from '../../components/buttons/PrimaryButton'; import { SecondaryButton } from '../../components/buttons/SecondaryButton'; +import Mnemonic from '../../components/Mnemonic'; import { Caption } from '../../components/typography/Caption'; import Description from '../../components/typography/Description'; import { Title } from '../../components/typography/Title'; diff --git a/app/src/screens/DisclaimerScreen.tsx b/app/src/screens/DisclaimerScreen.tsx index 62b6130b2..d3ec4ea4d 100644 --- a/app/src/screens/DisclaimerScreen.tsx +++ b/app/src/screens/DisclaimerScreen.tsx @@ -1,8 +1,7 @@ -import React, { useEffect } from 'react'; -import { StyleSheet } from 'react-native'; - import { useNavigation } from '@react-navigation/native'; import LottieView from 'lottie-react-native'; +import React, { useEffect } from 'react'; +import { StyleSheet } from 'react-native'; import { YStack } from 'tamagui'; import warningAnimation from '../assets/animations/warning.json'; diff --git a/app/src/screens/HomeScreen.tsx b/app/src/screens/HomeScreen.tsx index 6af604b32..2be93bf1f 100644 --- a/app/src/screens/HomeScreen.tsx +++ b/app/src/screens/HomeScreen.tsx @@ -1,8 +1,7 @@ +import { useFocusEffect, usePreventRemove } from '@react-navigation/native'; import React from 'react'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; - -import { useFocusEffect, usePreventRemove } from '@react-navigation/native'; -import { Button, YStack, styled } from 'tamagui'; +import { Button, styled, YStack } from 'tamagui'; import { pressedStyle } from '../components/buttons/pressedStyle'; import { BodyText } from '../components/typography/BodyText'; diff --git a/app/src/screens/LaunchScreen.tsx b/app/src/screens/LaunchScreen.tsx index fa69cddd8..a5faf4cf4 100644 --- a/app/src/screens/LaunchScreen.tsx +++ b/app/src/screens/LaunchScreen.tsx @@ -1,8 +1,7 @@ +import LottieView from 'lottie-react-native'; import React from 'react'; import { StyleSheet, View } from 'react-native'; import { Gesture, GestureDetector } from 'react-native-gesture-handler'; - -import LottieView from 'lottie-react-native'; import { Anchor, Text, XStack, YStack } from 'tamagui'; import { useWindowDimensions } from 'tamagui'; diff --git a/app/src/screens/MockDataScreen.tsx b/app/src/screens/MockDataScreen.tsx index e01ad6c0f..4f1d284da 100644 --- a/app/src/screens/MockDataScreen.tsx +++ b/app/src/screens/MockDataScreen.tsx @@ -1,12 +1,11 @@ -import React, { useCallback, useState } from 'react'; -import { TouchableOpacity } from 'react-native'; -import { Gesture, GestureDetector } from 'react-native-gesture-handler'; -import { useSafeAreaInsets } from 'react-native-safe-area-context'; - import { useNavigation } from '@react-navigation/native'; import { ChevronDown, Minus, Plus, X } from '@tamagui/lucide-icons'; import { flag } from 'country-emoji'; import getCountryISO2 from 'country-iso-3-to-2'; +import React, { useCallback, useState } from 'react'; +import { TouchableOpacity } from 'react-native'; +import { Gesture, GestureDetector } from 'react-native-gesture-handler'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; import { Button, ScrollView, @@ -22,9 +21,9 @@ import { import { countryCodes } from '../../../common/src/constants/constants'; import { genMockPassportData } from '../../../common/src/utils/passports/genMockPassportData'; import { initPassportDataParsing } from '../../../common/src/utils/passports/passport'; -import ButtonsContainer from '../components/ButtonsContainer'; import { PrimaryButton } from '../components/buttons/PrimaryButton'; import { SecondaryButton } from '../components/buttons/SecondaryButton'; +import ButtonsContainer from '../components/ButtonsContainer'; import { BodyText } from '../components/typography/BodyText'; import { Title } from '../components/typography/Title'; import { storePassportData } from '../stores/passportDataProvider'; diff --git a/app/src/screens/Onboarding/ConfirmBelongingScreen.tsx b/app/src/screens/Onboarding/ConfirmBelongingScreen.tsx index 6a9908824..df6df319d 100644 --- a/app/src/screens/Onboarding/ConfirmBelongingScreen.tsx +++ b/app/src/screens/Onboarding/ConfirmBelongingScreen.tsx @@ -1,7 +1,6 @@ -import React, { useEffect } from 'react'; - import { StaticScreenProps, usePreventRemove } from '@react-navigation/native'; import LottieView from 'lottie-react-native'; +import React, { useEffect } from 'react'; import successAnimation from '../../assets/animations/loading/success.json'; import { PrimaryButton } from '../../components/buttons/PrimaryButton'; diff --git a/app/src/screens/Onboarding/LoadingScreen.tsx b/app/src/screens/Onboarding/LoadingScreen.tsx index f5594b4c6..6bad8944e 100644 --- a/app/src/screens/Onboarding/LoadingScreen.tsx +++ b/app/src/screens/Onboarding/LoadingScreen.tsx @@ -1,8 +1,7 @@ -import React, { useEffect, useRef, useState } from 'react'; -import { StyleSheet, Text, View } from 'react-native'; - import { StaticScreenProps, useNavigation } from '@react-navigation/native'; import LottieView from 'lottie-react-native'; +import React, { useEffect, useRef, useState } from 'react'; +import { StyleSheet, Text, View } from 'react-native'; import failAnimation from '../../assets/animations/loading/fail.json'; import miscAnimation from '../../assets/animations/loading/misc.json'; diff --git a/app/src/screens/Onboarding/PassportCameraScreen.tsx b/app/src/screens/Onboarding/PassportCameraScreen.tsx index dfe587c82..4524da635 100644 --- a/app/src/screens/Onboarding/PassportCameraScreen.tsx +++ b/app/src/screens/Onboarding/PassportCameraScreen.tsx @@ -1,8 +1,7 @@ -import React, { useCallback, useRef } from 'react'; -import { Platform, StyleSheet } from 'react-native'; - import { useIsFocused, useNavigation } from '@react-navigation/native'; import LottieView from 'lottie-react-native'; +import React, { useCallback, useRef } from 'react'; +import { Platform, StyleSheet } from 'react-native'; import { View, XStack, YStack } from 'tamagui'; import passportScanAnimation from '../../assets/animations/passport_scan.json'; diff --git a/app/src/screens/Onboarding/PassportNFCScanScreen.tsx b/app/src/screens/Onboarding/PassportNFCScanScreen.tsx index 951c059e8..53e8d0a83 100644 --- a/app/src/screens/Onboarding/PassportNFCScanScreen.tsx +++ b/app/src/screens/Onboarding/PassportNFCScanScreen.tsx @@ -1,3 +1,5 @@ +import { useFocusEffect, useNavigation } from '@react-navigation/native'; +import LottieView from 'lottie-react-native'; import React, { useCallback, useEffect, useRef, useState } from 'react'; import { Linking, @@ -7,18 +9,15 @@ import { StyleSheet, } from 'react-native'; import NfcManager from 'react-native-nfc-manager'; - -import { useFocusEffect, useNavigation } from '@react-navigation/native'; -import LottieView from 'lottie-react-native'; import { Image } from 'tamagui'; import { initPassportDataParsing } from '../../../../common/src/utils/passports/passport'; import { PassportData } from '../../../../common/src/utils/types'; import passportVerifyAnimation from '../../assets/animations/passport_verify.json'; -import ButtonsContainer from '../../components/ButtonsContainer'; -import TextsContainer from '../../components/TextsContainer'; import { PrimaryButton } from '../../components/buttons/PrimaryButton'; import { SecondaryButton } from '../../components/buttons/SecondaryButton'; +import ButtonsContainer from '../../components/ButtonsContainer'; +import TextsContainer from '../../components/TextsContainer'; import { BodyText } from '../../components/typography/BodyText'; import Description from '../../components/typography/Description'; import { Title } from '../../components/typography/Title'; diff --git a/app/src/screens/Onboarding/PassportOnboardingScreen.tsx b/app/src/screens/Onboarding/PassportOnboardingScreen.tsx index 1ad913d4d..581200ec3 100644 --- a/app/src/screens/Onboarding/PassportOnboardingScreen.tsx +++ b/app/src/screens/Onboarding/PassportOnboardingScreen.tsx @@ -1,13 +1,12 @@ +import LottieView from 'lottie-react-native'; import React, { useEffect, useRef } from 'react'; import { StatusBar, StyleSheet } from 'react-native'; -import LottieView from 'lottie-react-native'; - import passportOnboardingAnimation from '../../assets/animations/passport_onboarding.json'; -import ButtonsContainer from '../../components/ButtonsContainer'; -import TextsContainer from '../../components/TextsContainer'; import { PrimaryButton } from '../../components/buttons/PrimaryButton'; import { SecondaryButton } from '../../components/buttons/SecondaryButton'; +import ButtonsContainer from '../../components/ButtonsContainer'; +import TextsContainer from '../../components/TextsContainer'; import Additional from '../../components/typography/Additional'; import Description from '../../components/typography/Description'; import { Title } from '../../components/typography/Title'; diff --git a/app/src/screens/Onboarding/UnsupportedPassport.tsx b/app/src/screens/Onboarding/UnsupportedPassport.tsx index 9f1588d01..ae7ae6cd5 100644 --- a/app/src/screens/Onboarding/UnsupportedPassport.tsx +++ b/app/src/screens/Onboarding/UnsupportedPassport.tsx @@ -1,6 +1,5 @@ -import React, { useEffect } from 'react'; - import LottieView from 'lottie-react-native'; +import React, { useEffect } from 'react'; import warnAnimation from '../../assets/animations/warning.json'; import { PrimaryButton } from '../../components/buttons/PrimaryButton'; diff --git a/app/src/screens/ProveFlow/ProofRequestStatusScreen.tsx b/app/src/screens/ProveFlow/ProofRequestStatusScreen.tsx index d0a32d280..baba6a68f 100644 --- a/app/src/screens/ProveFlow/ProofRequestStatusScreen.tsx +++ b/app/src/screens/ProveFlow/ProofRequestStatusScreen.tsx @@ -1,7 +1,6 @@ +import LottieView from 'lottie-react-native'; import React, { useEffect } from 'react'; import { StatusBar, StyleSheet, View } from 'react-native'; - -import LottieView from 'lottie-react-native'; import { ScrollView, Spinner } from 'tamagui'; import loadingAnimation from '../../assets/animations/loading/misc.json'; @@ -10,8 +9,8 @@ import succesAnimation from '../../assets/animations/proof_success.json'; import { PrimaryButton } from '../../components/buttons/PrimaryButton'; import { BodyText } from '../../components/typography/BodyText'; import Description from '../../components/typography/Description'; -import { Title } from '../../components/typography/Title'; import { typography } from '../../components/typography/styles'; +import { Title } from '../../components/typography/Title'; import useHapticNavigation from '../../hooks/useHapticNavigation'; import { ExpandableBottomLayout } from '../../layouts/ExpandableBottomLayout'; import { ProofStatusEnum, useProofInfo } from '../../stores/proofProvider'; diff --git a/app/src/screens/ProveFlow/ProveScreen.tsx b/app/src/screens/ProveFlow/ProveScreen.tsx index ef152ed56..412e8f275 100644 --- a/app/src/screens/ProveFlow/ProveScreen.tsx +++ b/app/src/screens/ProveFlow/ProveScreen.tsx @@ -1,3 +1,5 @@ +import { useNavigation } from '@react-navigation/native'; +import LottieView from 'lottie-react-native'; import React, { useCallback, useEffect, @@ -12,24 +14,21 @@ import { ScrollView, StyleSheet, } from 'react-native'; - -import { useNavigation } from '@react-navigation/native'; -import LottieView from 'lottie-react-native'; import { Image, Text, View, YStack } from 'tamagui'; import { SelfAppDisclosureConfig } from '../../../../common/src/utils/appType'; import { formatEndpoint } from '../../../../common/src/utils/scope'; import miscAnimation from '../../assets/animations/loading/misc.json'; -import Disclosures from '../../components/Disclosures'; import { HeldPrimaryButton } from '../../components/buttons/PrimaryButtonLongHold'; +import Disclosures from '../../components/Disclosures'; import { BodyText } from '../../components/typography/BodyText'; import { Caption } from '../../components/typography/Caption'; import { ExpandableBottomLayout } from '../../layouts/ExpandableBottomLayout'; import { useApp } from '../../stores/appProvider'; import { usePassport } from '../../stores/passportDataProvider'; import { - ProofStatusEnum, globalSetDisclosureStatus, + ProofStatusEnum, useProofInfo, } from '../../stores/proofProvider'; import { black, slate300, white } from '../../utils/colors'; diff --git a/app/src/screens/ProveFlow/ViewFinder.tsx b/app/src/screens/ProveFlow/ViewFinder.tsx index 5d30e1355..5ca0fb654 100644 --- a/app/src/screens/ProveFlow/ViewFinder.tsx +++ b/app/src/screens/ProveFlow/ViewFinder.tsx @@ -1,12 +1,11 @@ -import React, { useCallback, useState } from 'react'; -import { StyleSheet } from 'react-native'; - import { useFocusEffect, useIsFocused, useNavigation, } from '@react-navigation/native'; import LottieView from 'lottie-react-native'; +import React, { useCallback, useState } from 'react'; +import { StyleSheet } from 'react-native'; import { View, XStack, YStack } from 'tamagui'; import qrScanAnimation from '../../assets/animations/qr_scan.json'; diff --git a/app/src/screens/Settings/CloudBackupScreen.tsx b/app/src/screens/Settings/CloudBackupScreen.tsx index 84fbc4106..87f75b731 100644 --- a/app/src/screens/Settings/CloudBackupScreen.tsx +++ b/app/src/screens/Settings/CloudBackupScreen.tsx @@ -1,9 +1,7 @@ -import React, { useCallback, useMemo, useState } from 'react'; - import { StaticScreenProps, useNavigation } from '@react-navigation/native'; +import React, { useCallback, useMemo, useState } from 'react'; import { YStack } from 'tamagui'; -import { RootStackParamList } from '../../Navigation'; import BackupDocumentationLink from '../../components/BackupDocumentationLink'; import { PrimaryButton } from '../../components/buttons/PrimaryButton'; import { SecondaryButton } from '../../components/buttons/SecondaryButton'; @@ -13,6 +11,7 @@ import { Title } from '../../components/typography/Title'; import { useModal } from '../../hooks/useModal'; import Cloud from '../../images/icons/logo_cloud_backup.svg'; import { ExpandableBottomLayout } from '../../layouts/ExpandableBottomLayout'; +import { RootStackParamList } from '../../Navigation'; import { useAuth } from '../../stores/authProvider'; import { useSettingStore } from '../../stores/settingStore'; import { STORAGE_NAME, useBackupMnemonic } from '../../utils/cloudBackup'; diff --git a/app/src/screens/Settings/DevSettingsScreen.tsx b/app/src/screens/Settings/DevSettingsScreen.tsx index f68d21091..251507311 100644 --- a/app/src/screens/Settings/DevSettingsScreen.tsx +++ b/app/src/screens/Settings/DevSettingsScreen.tsx @@ -1,6 +1,3 @@ -import React, { PropsWithChildren, useEffect, useState } from 'react'; -import { Platform, TextInput } from 'react-native'; - import { useNavigation } from '@react-navigation/native'; import { Check, @@ -9,6 +6,8 @@ import { IterationCw, VenetianMask, } from '@tamagui/lucide-icons'; +import React, { PropsWithChildren, useEffect, useState } from 'react'; +import { Platform, TextInput } from 'react-native'; import { Adapt, Button, diff --git a/app/src/screens/Settings/ModalScreen.tsx b/app/src/screens/Settings/ModalScreen.tsx index 6b5310981..b36788882 100644 --- a/app/src/screens/Settings/ModalScreen.tsx +++ b/app/src/screens/Settings/ModalScreen.tsx @@ -1,7 +1,6 @@ -import React, { useCallback } from 'react'; - import { StaticScreenProps, useNavigation } from '@react-navigation/native'; -import { View, XStack, YStack, styled } from 'tamagui'; +import React, { useCallback } from 'react'; +import { styled, View, XStack, YStack } from 'tamagui'; import { PrimaryButton } from '../../components/buttons/PrimaryButton'; import Description from '../../components/typography/Description'; diff --git a/app/src/screens/Settings/PassportDataInfoScreen.tsx b/app/src/screens/Settings/PassportDataInfoScreen.tsx index 5eea738b1..70eaa87fd 100644 --- a/app/src/screens/Settings/PassportDataInfoScreen.tsx +++ b/app/src/screens/Settings/PassportDataInfoScreen.tsx @@ -1,6 +1,5 @@ -import React, { useCallback, useState } from 'react'; - import { useFocusEffect } from '@react-navigation/native'; +import React, { useCallback, useState } from 'react'; import { ScrollView, Separator, XStack, YStack } from 'tamagui'; import { PassportMetadata } from '../../../../common/src/utils/passports/passport_parsing/parsePassportData'; @@ -87,12 +86,12 @@ const PassportDataInfoScreen: React.FC = ({}) => { !metadata ? '' : key === 'cscaFound' - ? metadata?.cscaFound === true - ? 'Yes' - : 'No' - : (metadata?.[key as keyof PassportMetadata] as - | string - | number) || 'None' + ? metadata?.cscaFound === true + ? 'Yes' + : 'No' + : (metadata?.[key as keyof PassportMetadata] as + | string + | number) || 'None' } /> ))} diff --git a/app/src/screens/SettingsScreen.tsx b/app/src/screens/SettingsScreen.tsx index 0e8abf969..e63e67c5c 100644 --- a/app/src/screens/SettingsScreen.tsx +++ b/app/src/screens/SettingsScreen.tsx @@ -1,16 +1,14 @@ +import { useNavigation } from '@react-navigation/native'; +import { Bug } from '@tamagui/lucide-icons'; import React, { PropsWithChildren, useCallback, useMemo } from 'react'; import { Linking, Platform, Share } from 'react-native'; import { Gesture, GestureDetector } from 'react-native-gesture-handler'; import { getCountry, getLocales, getTimeZone } from 'react-native-localize'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; import { SvgProps } from 'react-native-svg'; - -import { useNavigation } from '@react-navigation/native'; -import { Bug } from '@tamagui/lucide-icons'; import { Button, ScrollView, View, XStack, YStack } from 'tamagui'; import { version } from '../../package.json'; -import { RootStackParamList } from '../Navigation'; import { pressedStyle } from '../components/buttons/pressedStyle'; import { BodyText } from '../components/typography/BodyText'; import { @@ -29,6 +27,7 @@ import ShareIcon from '../images/icons/share.svg'; import Star from '../images/icons/star.svg'; import Telegram from '../images/icons/telegram.svg'; import Web from '../images/icons/webpage.svg'; +import { RootStackParamList } from '../Navigation'; import { useSettingStore } from '../stores/settingStore'; import { amber500, black, neutral700, slate800, white } from '../utils/colors'; import { impactLight } from '../utils/haptic'; diff --git a/app/src/screens/SplashScreen.tsx b/app/src/screens/SplashScreen.tsx index d6ccea989..152189697 100644 --- a/app/src/screens/SplashScreen.tsx +++ b/app/src/screens/SplashScreen.tsx @@ -1,8 +1,7 @@ -import React, { useCallback, useEffect } from 'react'; -import { StyleSheet } from 'react-native'; - import { useNavigation } from '@react-navigation/native'; import LottieView from 'lottie-react-native'; +import React, { useCallback, useEffect } from 'react'; +import { StyleSheet } from 'react-native'; import splashAnimation from '../assets/animations/splash.json'; import { useAuth } from '../stores/authProvider'; diff --git a/app/src/screens/_Aesop/PassportOnboardingScreen.tsx b/app/src/screens/_Aesop/PassportOnboardingScreen.tsx index 2da233c1e..91c72d2a2 100644 --- a/app/src/screens/_Aesop/PassportOnboardingScreen.tsx +++ b/app/src/screens/_Aesop/PassportOnboardingScreen.tsx @@ -1,13 +1,12 @@ +import LottieView from 'lottie-react-native'; import React, { useEffect, useRef } from 'react'; import { StatusBar, StyleSheet, View } from 'react-native'; -import LottieView from 'lottie-react-native'; - import passportOnboardingAnimation from '../../assets/animations/passport_onboarding.json'; -import ButtonsContainer from '../../components/ButtonsContainer'; -import TextsContainer from '../../components/TextsContainer'; import { PrimaryButton } from '../../components/buttons/PrimaryButton'; import { SecondaryButton } from '../../components/buttons/SecondaryButton'; +import ButtonsContainer from '../../components/ButtonsContainer'; +import TextsContainer from '../../components/TextsContainer'; import Additional from '../../components/typography/Additional'; import Description from '../../components/typography/Description'; import { DescriptionTitle } from '../../components/typography/DescriptionTitle'; diff --git a/app/src/stores/appProvider.tsx b/app/src/stores/appProvider.tsx index ef017be59..deac6be40 100644 --- a/app/src/stores/appProvider.tsx +++ b/app/src/stores/appProvider.tsx @@ -1,5 +1,4 @@ import React, { createContext, useContext, useEffect, useRef } from 'react'; - import io, { Socket } from 'socket.io-client'; import { WS_DB_RELAYER } from '../../../common/src/constants/constants'; diff --git a/app/src/stores/authProvider.tsx b/app/src/stores/authProvider.tsx index 3c44704bb..154222c58 100644 --- a/app/src/stores/authProvider.tsx +++ b/app/src/stores/authProvider.tsx @@ -1,6 +1,7 @@ +import { ethers } from 'ethers'; import React, { - PropsWithChildren, createContext, + PropsWithChildren, useCallback, useContext, useMemo, @@ -9,8 +10,6 @@ import React, { import ReactNativeBiometrics from 'react-native-biometrics'; import Keychain from 'react-native-keychain'; -import { ethers } from 'ethers'; - import { Mnemonic } from '../types/mnemonic'; const SERVICE_NAME = 'secret'; diff --git a/app/src/stores/passportDataProvider.tsx b/app/src/stores/passportDataProvider.tsx index b711894db..a1cbf2218 100644 --- a/app/src/stores/passportDataProvider.tsx +++ b/app/src/stores/passportDataProvider.tsx @@ -1,6 +1,6 @@ import React, { - PropsWithChildren, createContext, + PropsWithChildren, useCallback, useContext, useMemo, diff --git a/app/src/stores/proofProvider.tsx b/app/src/stores/proofProvider.tsx index bfe278608..378ecc7fd 100644 --- a/app/src/stores/proofProvider.tsx +++ b/app/src/stores/proofProvider.tsx @@ -1,6 +1,6 @@ import React, { - PropsWithChildren, createContext, + PropsWithChildren, useCallback, useEffect, useMemo, diff --git a/app/src/utils/cloudBackup/index.ts b/app/src/utils/cloudBackup/index.ts index efa12cc20..afbb69407 100644 --- a/app/src/utils/cloudBackup/index.ts +++ b/app/src/utils/cloudBackup/index.ts @@ -1,3 +1,4 @@ +import { ethers } from 'ethers'; import { useMemo } from 'react'; import { Platform } from 'react-native'; import { @@ -6,8 +7,6 @@ import { CloudStorageScope, } from 'react-native-cloud-storage'; -import { ethers } from 'ethers'; - import { name } from '../../../package.json'; import { Mnemonic } from '../../types/mnemonic'; import { googleSignIn } from './google'; diff --git a/app/src/utils/ethers.ts b/app/src/utils/ethers.ts index 34d8edcb6..59d7e4953 100644 --- a/app/src/utils/ethers.ts +++ b/app/src/utils/ethers.ts @@ -1,7 +1,6 @@ // https://docs.ethers.org/v6/cookbook/react-native/ -import crypto from 'react-native-quick-crypto'; - import { ethers } from 'ethers'; +import crypto from 'react-native-quick-crypto'; ethers.randomBytes.register(length => { return new Uint8Array(crypto.randomBytes(length)); diff --git a/app/src/utils/nfcScannerNew.ts b/app/src/utils/nfcScannerNew.ts index bc63a17af..2df1c4d25 100644 --- a/app/src/utils/nfcScannerNew.ts +++ b/app/src/utils/nfcScannerNew.ts @@ -1,9 +1,8 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ +import { Buffer } from 'buffer'; import { NativeModules, Platform } from 'react-native'; import PassportReader from 'react-native-passport-reader'; -import { Buffer } from 'buffer'; - import { PassportData } from '../../../common/src/utils/types'; interface Inputs { diff --git a/app/src/utils/proving/inputs.ts b/app/src/utils/proving/inputs.ts index 6bd74218d..bdc35bece 100644 --- a/app/src/utils/proving/inputs.ts +++ b/app/src/utils/proving/inputs.ts @@ -6,9 +6,9 @@ import nameAndDobSMTData from '../../../../common/ofacdata/outputs/nameAndDobSMT import nameAndYobSMTData from '../../../../common/ofacdata/outputs/nameAndYobSMT.json'; import passportNoAndNationalitySMTData from '../../../../common/ofacdata/outputs/passportNoAndNationalitySMT.json'; import { + attributeToPosition, DEFAULT_MAJORITY, PASSPORT_ATTESTATION_ID, - attributeToPosition, } from '../../../../common/src/constants/constants'; import { EndpointType, SelfApp } from '../../../../common/src/utils/appType'; import { getCircuitNameFromPassportData } from '../../../../common/src/utils/circuits/circuitsName'; @@ -19,8 +19,8 @@ import { } from '../../../../common/src/utils/circuits/generateInputs'; import { hashEndpointWithScope } from '../../../../common/src/utils/scope'; import { - getCSCATree, getCommitmentTree, + getCSCATree, getDSCTree, } from '../../../../common/src/utils/trees'; import { PassportData } from '../../../../common/src/utils/types'; diff --git a/app/src/utils/proving/tee.ts b/app/src/utils/proving/tee.ts index 4f0a9a020..3ad9b3ecf 100644 --- a/app/src/utils/proving/tee.ts +++ b/app/src/utils/proving/tee.ts @@ -11,9 +11,9 @@ import { import { EndpointType } from '../../../../common/src/utils/appType'; import { DiscloseError, - ProofStatusEnum, globalSetDisclosureStatus, globalSetRegistrationStatus, + ProofStatusEnum, } from '../../stores/proofProvider'; import { getPublicKey, verifyAttestation } from './attest'; diff --git a/app/src/utils/qrCodeNew.ts b/app/src/utils/qrCodeNew.ts index 1dc9fb23e..3419f222b 100644 --- a/app/src/utils/qrCodeNew.ts +++ b/app/src/utils/qrCodeNew.ts @@ -1,6 +1,5 @@ -import { Linking } from 'react-native'; - import queryString from 'query-string'; +import { Linking } from 'react-native'; import { SelfApp } from '../../../common/src/utils/appType'; diff --git a/app/yarn.lock b/app/yarn.lock index 537e3725d..f72d515c8 100644 --- a/app/yarn.lock +++ b/app/yarn.lock @@ -22,7 +22,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.24.7, @babel/code-frame@npm:^7.26.2": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.24.7, @babel/code-frame@npm:^7.26.2": version: 7.26.2 resolution: "@babel/code-frame@npm:7.26.2" dependencies: @@ -77,18 +77,7 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:7.17.7": - version: 7.17.7 - resolution: "@babel/generator@npm:7.17.7" - dependencies: - "@babel/types": "npm:^7.17.0" - jsesc: "npm:^2.5.1" - source-map: "npm:^0.5.0" - checksum: 10c0/8088453c4418e0ee6528506fbd5847bbdfd56327a0025ca9496a259261e162c594ffd08be0d63e74c32feced795616772f38acc5f5e493a86a45fd439fd9feb0 - languageName: node - linkType: hard - -"@babel/generator@npm:^7.20.0, @babel/generator@npm:^7.23.0, @babel/generator@npm:^7.25.0, @babel/generator@npm:^7.26.9, @babel/generator@npm:^7.7.2": +"@babel/generator@npm:^7.20.0, @babel/generator@npm:^7.25.0, @babel/generator@npm:^7.26.9, @babel/generator@npm:^7.7.2": version: 7.26.9 resolution: "@babel/generator@npm:7.26.9" dependencies: @@ -168,34 +157,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-environment-visitor@npm:^7.22.20": - version: 7.24.7 - resolution: "@babel/helper-environment-visitor@npm:7.24.7" - dependencies: - "@babel/types": "npm:^7.24.7" - checksum: 10c0/36ece78882b5960e2d26abf13cf15ff5689bf7c325b10a2895a74a499e712de0d305f8d78bb382dd3c05cfba7e47ec98fe28aab5674243e0625cd38438dd0b2d - languageName: node - linkType: hard - -"@babel/helper-function-name@npm:^7.23.0": - version: 7.24.7 - resolution: "@babel/helper-function-name@npm:7.24.7" - dependencies: - "@babel/template": "npm:^7.24.7" - "@babel/types": "npm:^7.24.7" - checksum: 10c0/e5e41e6cf86bd0f8bf272cbb6e7c5ee0f3e9660414174435a46653efba4f2479ce03ce04abff2aa2ef9359cf057c79c06cb7b134a565ad9c0e8a50dcdc3b43c4 - languageName: node - linkType: hard - -"@babel/helper-hoist-variables@npm:^7.22.5": - version: 7.24.7 - resolution: "@babel/helper-hoist-variables@npm:7.24.7" - dependencies: - "@babel/types": "npm:^7.24.7" - checksum: 10c0/19ee37563bbd1219f9d98991ad0e9abef77803ee5945fd85aa7aa62a67c69efca9a801696a1b58dda27f211e878b3327789e6fd2a6f6c725ccefe36774b5ce95 - languageName: node - linkType: hard - "@babel/helper-member-expression-to-functions@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-member-expression-to-functions@npm:7.25.9" @@ -281,15 +242,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-split-export-declaration@npm:^7.22.6": - version: 7.24.7 - resolution: "@babel/helper-split-export-declaration@npm:7.24.7" - dependencies: - "@babel/types": "npm:^7.24.7" - checksum: 10c0/0254577d7086bf09b01bbde98f731d4fcf4b7c3fa9634fdb87929801307c1f6202a1352e3faa5492450fa8da4420542d44de604daf540704ff349594a78184f6 - languageName: node - linkType: hard - "@babel/helper-string-parser@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-string-parser@npm:7.25.9" @@ -297,7 +249,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.16.7, @babel/helper-validator-identifier@npm:^7.25.9": +"@babel/helper-validator-identifier@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-validator-identifier@npm:7.25.9" checksum: 10c0/4fc6f830177b7b7e887ad3277ddb3b91d81e6c4a24151540d9d1023e8dc6b1c0505f0f0628ae653601eb4388a8db45c1c14b2c07a9173837aef7e4116456259d @@ -332,7 +284,7 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.0, @babel/parser@npm:^7.20.5, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.24.7, @babel/parser@npm:^7.25.3, @babel/parser@npm:^7.26.9": +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.24.7, @babel/parser@npm:^7.25.3, @babel/parser@npm:^7.26.9": version: 7.26.9 resolution: "@babel/parser@npm:7.26.9" dependencies: @@ -1076,7 +1028,7 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.0.0, @babel/template@npm:^7.24.7, @babel/template@npm:^7.25.0, @babel/template@npm:^7.25.9, @babel/template@npm:^7.26.9, @babel/template@npm:^7.3.3": +"@babel/template@npm:^7.0.0, @babel/template@npm:^7.25.0, @babel/template@npm:^7.25.9, @babel/template@npm:^7.26.9, @babel/template@npm:^7.3.3": version: 7.26.9 resolution: "@babel/template@npm:7.26.9" dependencies: @@ -1102,35 +1054,7 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:7.23.2": - version: 7.23.2 - resolution: "@babel/traverse@npm:7.23.2" - dependencies: - "@babel/code-frame": "npm:^7.22.13" - "@babel/generator": "npm:^7.23.0" - "@babel/helper-environment-visitor": "npm:^7.22.20" - "@babel/helper-function-name": "npm:^7.23.0" - "@babel/helper-hoist-variables": "npm:^7.22.5" - "@babel/helper-split-export-declaration": "npm:^7.22.6" - "@babel/parser": "npm:^7.23.0" - "@babel/types": "npm:^7.23.0" - debug: "npm:^4.1.0" - globals: "npm:^11.1.0" - checksum: 10c0/d096c7c4bab9262a2f658298a3c630ae4a15a10755bb257ae91d5ab3e3b2877438934859c8d34018b7727379fe6b26c4fa2efc81cf4c462a7fe00caf79fa02ff - languageName: node - linkType: hard - -"@babel/types@npm:7.17.0": - version: 7.17.0 - resolution: "@babel/types@npm:7.17.0" - dependencies: - "@babel/helper-validator-identifier": "npm:^7.16.7" - to-fast-properties: "npm:^2.0.0" - checksum: 10c0/ad09224272b40fedb00b262677d12b6838f5b5df5c47d67059ba1181bd4805439993393a8de32459dae137b536d60ebfcaf39ae84d8b3873f1e81cc75f5aeae8 - languageName: node - linkType: hard - -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.17.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.23.0, @babel/types@npm:^7.24.7, @babel/types@npm:^7.25.2, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.9, @babel/types@npm:^7.3.3": +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.25.2, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.9, @babel/types@npm:^7.3.3": version: 7.26.9 resolution: "@babel/types@npm:7.26.9" dependencies: @@ -1932,6 +1856,13 @@ __metadata: languageName: node linkType: hard +"@pkgr/core@npm:^0.2.3": + version: 0.2.4 + resolution: "@pkgr/core@npm:0.2.4" + checksum: 10c0/2528a443bbbef5d4686614e1d73f834f19ccbc975f62b2a64974a6b97bcdf677b9c5e8948e04808ac4f0d853e2f422adfaae2a06e9e9f4f5cf8af76f1adf8dc1 + languageName: node + linkType: hard + "@react-native-async-storage/async-storage@npm:^2.1.1": version: 2.1.1 resolution: "@react-native-async-storage/async-storage@npm:2.1.1" @@ -5866,26 +5797,6 @@ __metadata: languageName: node linkType: hard -"@trivago/prettier-plugin-sort-imports@npm:^4.3.0": - version: 4.3.0 - resolution: "@trivago/prettier-plugin-sort-imports@npm:4.3.0" - dependencies: - "@babel/generator": "npm:7.17.7" - "@babel/parser": "npm:^7.20.5" - "@babel/traverse": "npm:7.23.2" - "@babel/types": "npm:7.17.0" - javascript-natural-sort: "npm:0.7.1" - lodash: "npm:^4.17.21" - peerDependencies: - "@vue/compiler-sfc": 3.x - prettier: 2.x - 3.x - peerDependenciesMeta: - "@vue/compiler-sfc": - optional: true - checksum: 10c0/42270fb9c89e54a3f8b6ac8c43e6d0e03350e2857e902cdad4de22c78ef1864da600525595311bc7e94e51c16c7dd3882c2e048a162fdab59761ffa893756aa2 - languageName: node - linkType: hard - "@trysound/sax@npm:0.2.0": version: 0.2.0 resolution: "@trysound/sax@npm:0.2.0" @@ -8251,6 +8162,17 @@ __metadata: languageName: node linkType: hard +"eslint-config-prettier@npm:^10.1.2": + version: 10.1.2 + resolution: "eslint-config-prettier@npm:10.1.2" + peerDependencies: + eslint: ">=7.0.0" + bin: + eslint-config-prettier: bin/cli.js + checksum: 10c0/c22c8e29193cc8fd70becf1c2dd072513f2b3004a175c2a49404c79d1745ba4dc0edc2afd00d16b0e26d24f95813a0469e7445a25104aec218f6d84cdb1697e9 + languageName: node + linkType: hard + "eslint-config-prettier@npm:^8.5.0": version: 8.10.0 resolution: "eslint-config-prettier@npm:8.10.0" @@ -8305,6 +8227,26 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-prettier@npm:^5.2.6": + version: 5.2.6 + resolution: "eslint-plugin-prettier@npm:5.2.6" + dependencies: + prettier-linter-helpers: "npm:^1.0.0" + synckit: "npm:^0.11.0" + peerDependencies: + "@types/eslint": ">=8.0.0" + eslint: ">=8.0.0" + eslint-config-prettier: ">= 7.0.0 <10.0.0 || >=10.1.0" + prettier: ">=3.0.0" + peerDependenciesMeta: + "@types/eslint": + optional: true + eslint-config-prettier: + optional: true + checksum: 10c0/9911740a5edac7933d92671381908671c61ffa32a3cee7aed667ebab89831ee2c0b69eb9530f68dbe172ca9d4b3fa3d47350762dc1eb096a3ce125fa31c0e616 + languageName: node + linkType: hard + "eslint-plugin-react-hooks@npm:^4.6.0": version: 4.6.2 resolution: "eslint-plugin-react-hooks@npm:4.6.2" @@ -8360,6 +8302,15 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-simple-import-sort@npm:^12.1.1": + version: 12.1.1 + resolution: "eslint-plugin-simple-import-sort@npm:12.1.1" + peerDependencies: + eslint: ">=5.0.0" + checksum: 10c0/0ad1907ad9ddbadd1db655db0a9d0b77076e274b793a77b982c8525d808d868e6ecfce24f3a411e8a1fa551077387f9ebb38c00956073970ebd7ee6a029ce2b3 + languageName: node + linkType: hard + "eslint-scope@npm:5.1.1, eslint-scope@npm:^5.1.1": version: 5.1.1 resolution: "eslint-scope@npm:5.1.1" @@ -8612,6 +8563,13 @@ __metadata: languageName: node linkType: hard +"fast-diff@npm:^1.1.2": + version: 1.3.0 + resolution: "fast-diff@npm:1.3.0" + checksum: 10c0/5c19af237edb5d5effda008c891a18a585f74bf12953be57923f17a3a4d0979565fc64dbc73b9e20926b9d895f5b690c618cbb969af0cf022e3222471220ad29 + languageName: node + linkType: hard + "fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2": version: 3.3.3 resolution: "fast-glob@npm:3.3.3" @@ -9905,13 +9863,6 @@ __metadata: languageName: node linkType: hard -"javascript-natural-sort@npm:0.7.1": - version: 0.7.1 - resolution: "javascript-natural-sort@npm:0.7.1" - checksum: 10c0/340f8ffc5d30fb516e06dc540e8fa9e0b93c865cf49d791fed3eac3bdc5fc71f0066fc81d44ec1433edc87caecaf9f13eec4a1fce8c5beafc709a71eaedae6fe - languageName: node - linkType: hard - "jest-changed-files@npm:^29.7.0": version: 29.7.0 resolution: "jest-changed-files@npm:29.7.0" @@ -10493,15 +10444,6 @@ __metadata: languageName: node linkType: hard -"jsesc@npm:^2.5.1": - version: 2.5.2 - resolution: "jsesc@npm:2.5.2" - bin: - jsesc: bin/jsesc - checksum: 10c0/dbf59312e0ebf2b4405ef413ec2b25abb5f8f4d9bc5fb8d9f90381622ebca5f2af6a6aa9a8578f65903f9e33990a6dc798edd0ce5586894bf0e9e31803a1de88 - languageName: node - linkType: hard - "jsesc@npm:^3.0.2": version: 3.1.0 resolution: "jsesc@npm:3.1.0" @@ -11970,7 +11912,6 @@ __metadata: "@tamagui/lucide-icons": "npm:1.110.0" "@tamagui/toast": "npm:1.110.0" "@tamagui/types": "npm:1.110.0" - "@trivago/prettier-plugin-sort-imports": "npm:^4.3.0" "@tsconfig/react-native": "npm:^3.0.0" "@types/add": "npm:^2" "@types/elliptic": "npm:^6" @@ -11988,6 +11929,9 @@ __metadata: country-iso-3-to-2: "npm:^1.1.1" elliptic: "npm:^6.6.1" eslint: "npm:^8.19.0" + eslint-config-prettier: "npm:^10.1.2" + eslint-plugin-prettier: "npm:^5.2.6" + eslint-plugin-simple-import-sort: "npm:^12.1.1" ethers: "npm:^6.11.0" expo-modules-core: "npm:^2.2.1" jest: "npm:^29.6.3" @@ -11998,7 +11942,7 @@ __metadata: pako: "npm:^2.1.0" pkijs: "npm:^3.2.4" poseidon-lite: "npm:^0.2.0" - prettier: "npm:2.8.8" + prettier: "npm:^3.5.3" react: "npm:^18.3.1" react-native: "npm:0.75.4" react-native-biometrics: "npm:^3.0.1" @@ -12328,12 +12272,21 @@ __metadata: languageName: node linkType: hard -"prettier@npm:2.8.8": - version: 2.8.8 - resolution: "prettier@npm:2.8.8" +"prettier-linter-helpers@npm:^1.0.0": + version: 1.0.0 + resolution: "prettier-linter-helpers@npm:1.0.0" + dependencies: + fast-diff: "npm:^1.1.2" + checksum: 10c0/81e0027d731b7b3697ccd2129470ed9913ecb111e4ec175a12f0fcfab0096516373bf0af2fef132af50cafb0a905b74ff57996d615f59512bb9ac7378fcc64ab + languageName: node + linkType: hard + +"prettier@npm:^3.5.3": + version: 3.5.3 + resolution: "prettier@npm:3.5.3" bin: - prettier: bin-prettier.js - checksum: 10c0/463ea8f9a0946cd5b828d8cf27bd8b567345cf02f56562d5ecde198b91f47a76b7ac9eae0facd247ace70e927143af6135e8cf411986b8cb8478784a4d6d724a + prettier: bin/prettier.cjs + checksum: 10c0/3880cb90b9dc0635819ab52ff571518c35bd7f15a6e80a2054c05dbc8a3aa6e74f135519e91197de63705bcb38388ded7e7230e2178432a1468005406238b877 languageName: node linkType: hard @@ -13772,7 +13725,7 @@ __metadata: languageName: node linkType: hard -"source-map@npm:^0.5.0, source-map@npm:^0.5.6": +"source-map@npm:^0.5.6": version: 0.5.7 resolution: "source-map@npm:0.5.7" checksum: 10c0/904e767bb9c494929be013017380cbba013637da1b28e5943b566031e29df04fba57edf3f093e0914be094648b577372bd8ad247fa98cfba9c600794cd16b599 @@ -14116,6 +14069,16 @@ __metadata: languageName: node linkType: hard +"synckit@npm:^0.11.0": + version: 0.11.4 + resolution: "synckit@npm:0.11.4" + dependencies: + "@pkgr/core": "npm:^0.2.3" + tslib: "npm:^2.8.1" + checksum: 10c0/dd2965a37c93c0b652bf07b1fd8d1639a803b65cf34c0cb1b827b8403044fc3b09ec87f681d922a324825127ee95b2e0394e7caccb502f407892d63e903c5276 + languageName: node + linkType: hard + "tabbable@npm:^6.0.0": version: 6.2.0 resolution: "tabbable@npm:6.2.0" @@ -14295,13 +14258,6 @@ __metadata: languageName: node linkType: hard -"to-fast-properties@npm:^2.0.0": - version: 2.0.0 - resolution: "to-fast-properties@npm:2.0.0" - checksum: 10c0/b214d21dbfb4bce3452b6244b336806ffea9c05297148d32ebb428d5c43ce7545bdfc65a1ceb58c9ef4376a65c0cb2854d645f33961658b3e3b4f84910ddcdd7 - languageName: node - linkType: hard - "to-regex-range@npm:^5.0.1": version: 5.0.1 resolution: "to-regex-range@npm:5.0.1"