diff --git a/.vscode/settings.json b/.vscode/settings.json
index 1aec0ae..2bb35ee 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,7 +1,7 @@
{
"editor.codeActionsOnSave": {
- "source.fixAll": true,
- "source.fixAll.eslint": true
+ "source.fixAll": "explicit",
+ "source.fixAll.eslint": "explicit"
},
"files.eol": "\n",
"editor.defaultFormatter": "esbenp.prettier-vscode",
diff --git a/App.tsx b/App.tsx
index aabf3c9..27d017e 100644
--- a/App.tsx
+++ b/App.tsx
@@ -10,12 +10,10 @@ import * as SplashScreen from 'expo-splash-screen';
import { StatusBar } from 'expo-status-bar';
import * as React from 'react';
import { View } from 'react-native';
-import { ThemeProvider } from 'styled-components';
-import { initializeAppSettings } from '@/functions';
-
-import { Routes } from './src/routes';
-import { themes } from './src/themes';
+import { initializeAppSettings } from '@/functions/initializeAppSettings';
+import { colors } from '@/helpers/themes';
+import { RootStack } from '@/routes/RootStack';
export default function App() {
const [fontsLoaded] = useFonts({
@@ -50,12 +48,10 @@ export default function App() {
}
return (
-
+
-
-
-
-
+
+
);
diff --git a/README.md b/README.md
index a0c5155..b143778 100644
--- a/README.md
+++ b/README.md
@@ -27,7 +27,7 @@ Create an .env file with the properties:
[Create an account to have your key](https://docs.tatum.com/)
```
-EXPO_PUBLIC_TATUM_SDK_V1=YOUR-API-KEY
+EXPO_PUBLIC_TATUM_SDK_V4=YOUR-API-KEY
```
1. Install dependencies
diff --git a/__test__/setup.ts b/__test__/setup.ts
index 53b9b59..488a611 100644
--- a/__test__/setup.ts
+++ b/__test__/setup.ts
@@ -1,22 +1,24 @@
import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';
+import mockSafeAreaContext from 'react-native-safe-area-context/jest/mock';
import DE_CH from '../src/translate/locales/de-ch.json';
import EN_US from '../src/translate/locales/en-us.json';
import ES_AR from '../src/translate/locales/es-ar.json';
import PT_BR from '../src/translate/locales/pt-br.json';
-jest.mock('react-native-safe-area-context', () => {
- return {
- useSafeAreaInsets: () => ({ bottom: 0 }),
- };
-});
+jest.mock('react-native-safe-area-context', () => mockSafeAreaContext);
jest.mock('react-native-reanimated', () => require('react-native-reanimated/mock'));
-jest.mock('@/hooks', () => {
+jest.mock('@/hooks/useFormatCurrency', () => {
return {
useFormatCurrency: () => '$100.00',
+ };
+});
+
+jest.mock('@/hooks/useFormatDate', () => {
+ return {
useFormatDate: () => ({
date: '12/12/2023',
time: '12:00 PM',
@@ -25,7 +27,7 @@ jest.mock('@/hooks', () => {
};
});
-jest.mock('@/stores', () => {
+jest.mock('@/stores/useBitcoinHistoricalPrice', () => {
return {
useBitcoinHistoricalPrice: () => ({
fetchBitcoinHistoricalPrice: jest.fn(),
@@ -45,6 +47,11 @@ jest.mock('@/stores', () => {
},
],
}),
+ };
+});
+
+jest.mock('@/stores/useUserData', () => {
+ return {
useUserData: () => ({
cleanUserData: jest.fn(),
data: [
@@ -63,6 +70,11 @@ jest.mock('@/stores', () => {
],
status: 'success',
}),
+ };
+});
+
+jest.mock('@/stores/useAppSettings', () => {
+ return {
useAppSettings: Object.assign(
() => {
return { currency: 'usd' };
@@ -73,6 +85,11 @@ jest.mock('@/stores', () => {
},
},
),
+ };
+});
+
+jest.mock('@/stores/useBitcoinDataPrices', () => {
+ return {
useBitcoinDataPrices: () => ({
data: {
current_price: {
diff --git a/app.json b/app.json
index 3422899..7830a11 100644
--- a/app.json
+++ b/app.json
@@ -3,7 +3,7 @@
"name": "Wallet you",
"slug": "wallet-you",
"owner": "cyberkaidev",
- "version": "1.3.3",
+ "version": "1.4.3",
"orientation": "portrait",
"icon": "./assets/images/icon.png",
"userInterfaceStyle": "dark",
@@ -35,7 +35,7 @@
},
"permissions": ["android.permission.USE_BIOMETRIC", "android.permission.USE_FINGERPRINT"],
"package": "com.cyberkaidev.walletyou",
- "versionCode": "7"
+ "versionCode": "8"
},
"web": {
"favicon": "./assets/images/favicon.ico"
diff --git a/package.json b/package.json
index 1cde809..48cac33 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "wallet-you",
- "version": "1.3.3",
+ "version": "1.4.3",
"main": "node_modules/expo/AppEntry.js",
"author": "cyberkaidev",
"license": "MIT",
@@ -24,12 +24,12 @@
},
"dependencies": {
"@react-native-async-storage/async-storage": "1.18.2",
- "@react-navigation/bottom-tabs": "^6.5.7",
- "@react-navigation/native": "^6.1.6",
- "@react-navigation/native-stack": "^6.9.12",
- "@react-navigation/stack": "^6.3.16",
- "@tatumio/tatum": "^3.0.14",
- "axios": "^1.4.0",
+ "@react-navigation/bottom-tabs": "^6.5.11",
+ "@react-navigation/native": "^6.1.9",
+ "@react-navigation/native-stack": "^6.9.17",
+ "@react-navigation/stack": "^6.3.20",
+ "@tatumio/tatum": "^4.2.2",
+ "axios": "^1.6.5",
"currency.js": "^2.0.4",
"expo": "^49.0.0",
"expo-checkbox": "~2.4.0",
@@ -42,27 +42,26 @@
"expo-local-authentication": "~13.4.1",
"expo-localization": "~14.3.0",
"expo-network": "~5.4.0",
- "expo-screen-orientation": "~6.0.5",
+ "expo-screen-orientation": "~6.0.6",
"expo-secure-store": "~12.3.1",
"expo-splash-screen": "~0.20.5",
"expo-status-bar": "~1.6.0",
- "i18next": "^22.5.0",
+ "i18next": "^23.7.16",
"jest-expo": "^49.0.0",
- "moment": "^2.29.4",
- "moti": "^0.25.3",
+ "moment": "^2.30.1",
+ "moti": "^0.27.2",
"react": "18.2.0",
- "react-i18next": "^12.3.1",
- "react-native": "0.72.4",
+ "react-i18next": "^14.0.0",
+ "react-native": "0.72.6",
"react-native-gesture-handler": "~2.12.0",
- "react-native-localize": "^3.0.0",
+ "react-native-localize": "^3.0.5",
"react-native-reanimated": "~3.3.0",
"react-native-responsive-screen": "^1.4.2",
"react-native-safe-area-context": "4.6.3",
"react-native-screens": "~3.22.0",
"react-native-svg": "13.9.0",
"react-native-svg-charts": "^5.4.0",
- "styled-components": "^6.0.2",
- "zustand": "^4.4.1"
+ "zustand": "^4.4.7"
},
"devDependencies": {
"@babel/core": "^7.20.0",
@@ -82,6 +81,7 @@
"eslint-plugin-simple-import-sort": "^10.0.0",
"jest": "^29.2.1",
"metro-react-native-babel-preset": "^0.76.4",
+ "prettier": "3.2.2",
"react-test-renderer": "^18.2.0",
"typescript": "^5.1.3"
},
diff --git a/src/assets/icons/icon-arrow-down.tsx b/src/assets/icons/IconArrowDown.tsx
similarity index 83%
rename from src/assets/icons/icon-arrow-down.tsx
rename to src/assets/icons/IconArrowDown.tsx
index 3a9069d..07a0c53 100644
--- a/src/assets/icons/icon-arrow-down.tsx
+++ b/src/assets/icons/IconArrowDown.tsx
@@ -1,11 +1,10 @@
import React from 'react';
import Svg, { Path } from 'react-native-svg';
-import { themes } from '@/themes';
+import { colors } from '@/helpers/themes';
+import { IconProps } from '@/types/IconType';
-import { IconProps } from './types';
-
-export function IconArrowDown({ color = themes.colors.white, size = 25 }: IconProps) {
+export function IconArrowDown({ color = colors.white, size = 25 }: IconProps) {
return (
)}
-
+
{bitcoin} BTC
-
+
);
}
+
+const styles = StyleSheet.create({
+ priceAndPorcent: {
+ flexDirection: 'row',
+ },
+});
diff --git a/src/components/scroll-view/index.tsx b/src/components/ScrollView.tsx
similarity index 75%
rename from src/components/scroll-view/index.tsx
rename to src/components/ScrollView.tsx
index 18b0eaf..3057fb0 100644
--- a/src/components/scroll-view/index.tsx
+++ b/src/components/ScrollView.tsx
@@ -1,12 +1,10 @@
import React from 'react';
-import { RefreshControl } from 'react-native-gesture-handler';
+import { RefreshControl, ScrollView as ScrollViewContainer } from 'react-native-gesture-handler';
import { heightPercentageToDP as hp } from 'react-native-responsive-screen';
import { useSafeAreaInsets } from 'react-native-safe-area-context';
-import { themes } from '@/themes';
-
-import { ScrollViewContainer } from './styles';
-import { ScrollViewProps } from './types';
+import { colors } from '@/helpers/themes';
+import { ScrollViewProps } from '@/types/ScrollViewType';
export function ScrollView({ children, refreshControl }: ScrollViewProps) {
const [refreshing, setRefreshing] = React.useState(false);
@@ -25,8 +23,8 @@ export function ScrollView({ children, refreshControl }: ScrollViewProps) {
testID="idRefreshControl"
refreshing={refreshing}
onRefresh={onRefresh}
- progressBackgroundColor={themes.colors.dark_grey}
- colors={[themes.colors.white]}
+ progressBackgroundColor={colors.dark_grey}
+ colors={[colors.white]}
/>
);
}
@@ -42,7 +40,7 @@ export function ScrollView({ children, refreshControl }: ScrollViewProps) {
paddingTop: 25,
paddingHorizontal: 15,
}}
- endFillColor={themes.colors.transparent}
+ endFillColor={colors.transparent}
refreshControl={refreshController()}
showsVerticalScrollIndicator={false}
>
diff --git a/src/components/scroll-view-header/index.tsx b/src/components/ScrollViewHeader.tsx
similarity index 73%
rename from src/components/scroll-view-header/index.tsx
rename to src/components/ScrollViewHeader.tsx
index 0b3a243..8aff487 100644
--- a/src/components/scroll-view-header/index.tsx
+++ b/src/components/ScrollViewHeader.tsx
@@ -1,17 +1,16 @@
import Constants from 'expo-constants';
import React from 'react';
-import { Platform } from 'react-native';
+import { Platform, StyleSheet } from 'react-native';
import { RefreshControl } from 'react-native-gesture-handler';
-import { useAnimatedScrollHandler, useSharedValue } from 'react-native-reanimated';
+import Animated, { useAnimatedScrollHandler, useSharedValue } from 'react-native-reanimated';
import { heightPercentageToDP as hp } from 'react-native-responsive-screen';
import { useSafeAreaInsets } from 'react-native-safe-area-context';
-import { useAppSettings } from '@/stores';
-import { themes } from '@/themes';
+import { colors } from '@/helpers/themes';
+import { useAppSettings } from '@/stores/useAppSettings';
+import { ScrollViewHeaderProps } from '@/types/ScrollViewHeaderType';
-import { HeaderAnimated } from './components/header-animated';
-import { ScrollViewHeaderContainer } from './styles';
-import { ScrollViewHeaderProps } from './types';
+import { HeaderAnimated } from './fragments/HeaderAnimated';
export function ScrollViewHeader({
children,
@@ -42,8 +41,8 @@ export function ScrollViewHeader({
testID="idRefreshControl"
refreshing={refreshing}
onRefresh={onRefresh}
- progressBackgroundColor={themes.colors.dark_grey}
- colors={[themes.colors.white]}
+ progressBackgroundColor={colors.dark_grey}
+ colors={[colors.white]}
progressViewOffset={PADDING_TOP}
/>
);
@@ -60,22 +59,30 @@ export function ScrollViewHeader({
return (
-
{children}
-
+
);
}
+
+const styles = StyleSheet.create({
+ scroll: {
+ flex: 1,
+ backgroundColor: colors.black_100,
+ },
+});
diff --git a/src/components/SelectList.tsx b/src/components/SelectList.tsx
new file mode 100644
index 0000000..f757c08
--- /dev/null
+++ b/src/components/SelectList.tsx
@@ -0,0 +1,54 @@
+import React from 'react';
+import { StyleSheet, TouchableOpacity, View } from 'react-native';
+import { widthPercentageToDP as wp } from 'react-native-responsive-screen';
+
+import { colors, spaces } from '@/helpers/themes';
+import { SelectListProps } from '@/types/SelectListType';
+
+import { Text } from './Text';
+
+export function SelectList({ data, selected, onSelected }: SelectListProps) {
+ return (
+
+ {data.map((item, index) => (
+ onSelected(item.ref)}
+ >
+
+ {selected === item.ref && }
+
+
+ {item.title}
+
+
+ ))}
+
+ );
+}
+
+const styles = StyleSheet.create({
+ button: {
+ paddingVertical: spaces.space_15,
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ border: {
+ width: wp('4%'),
+ height: wp('4%'),
+ alignItems: 'center',
+ justifyContent: 'center',
+ borderRadius: 40,
+ borderStyle: 'solid',
+ borderWidth: 2,
+ borderColor: colors.light_cyan,
+ },
+ circle: {
+ width: wp('2%'),
+ height: wp('2%'),
+ borderRadius: 20,
+ backgroundColor: colors.light_cyan,
+ },
+});
diff --git a/src/components/skeleton-loading/index.tsx b/src/components/SkeletonLoading.tsx
similarity index 52%
rename from src/components/skeleton-loading/index.tsx
rename to src/components/SkeletonLoading.tsx
index cb1d089..b336a98 100644
--- a/src/components/skeleton-loading/index.tsx
+++ b/src/components/SkeletonLoading.tsx
@@ -1,36 +1,37 @@
import { Skeleton } from 'moti/skeleton';
import React from 'react';
+import { View } from 'react-native';
import { heightPercentageToDP as hp } from 'react-native-responsive-screen';
-import { themes } from '@/themes';
-
-import { SkeletonLoadingContainer } from './styles';
-import { SkeletonLoadingProps } from './types';
+import { colors } from '@/helpers/themes';
+import { SkeletonLoadingProps } from '@/types/SkeletonLoadingType';
export function SkeletonLoading({
heightPorcent,
radius,
- marginT,
- marginB,
- marginR,
- marginL,
+ marginT = 0,
+ marginB = 0,
+ marginR = 0,
+ marginL = 0,
}: SkeletonLoadingProps) {
return (
-
-
+
);
}
diff --git a/src/components/Text.tsx b/src/components/Text.tsx
new file mode 100644
index 0000000..915b3dc
--- /dev/null
+++ b/src/components/Text.tsx
@@ -0,0 +1,46 @@
+import React from 'react';
+import { Text as TextContainer } from 'react-native';
+import { widthPercentageToDP as wp } from 'react-native-responsive-screen';
+
+import { schemeText } from '@/functions/schemeText';
+import { colors } from '@/helpers/themes';
+import { useAppSettings } from '@/stores/useAppSettings';
+import { TextProps } from '@/types/TextType';
+
+export function Text({
+ children,
+ weight,
+ size,
+ color = colors.white,
+ marginT = 0,
+ marginB = 0,
+ marginR = 0,
+ marginL = 0,
+}: TextProps) {
+ const { isTablet } = useAppSettings(state => state);
+
+ const { onFontFamily, onFontSize } = React.useMemo(() => {
+ return schemeText({
+ weight: weight ?? 'regular',
+ size: size ?? 's',
+ isTablet: isTablet,
+ });
+ }, [weight, size]);
+
+ return (
+
+ {children}
+
+ );
+}
diff --git a/src/components/TextFieldArea.tsx b/src/components/TextFieldArea.tsx
new file mode 100644
index 0000000..ae15d5e
--- /dev/null
+++ b/src/components/TextFieldArea.tsx
@@ -0,0 +1,62 @@
+import React from 'react';
+import { useTranslation } from 'react-i18next';
+import { StyleSheet, TextInput } from 'react-native';
+import {
+ heightPercentageToDP as hp,
+ widthPercentageToDP as wp,
+} from 'react-native-responsive-screen';
+
+import { borderRadius, colors, fontSizes, spaces, width } from '@/helpers/themes';
+import { useAppSettings } from '@/stores/useAppSettings';
+import { TextFieldAreaProps } from '@/types/TextFieldAreaType';
+
+export function TextFieldArea({ value, onChangeText }: TextFieldAreaProps) {
+ const { t } = useTranslation();
+ const { isTablet } = useAppSettings(state => state);
+
+ const [isFocused, setIsFocused] = React.useState(false);
+
+ return (
+ setIsFocused(true)}
+ onBlur={() => setIsFocused(false)}
+ autoCapitalize="none"
+ autoCorrect={false}
+ multiline
+ scrollEnabled
+ blurOnSubmit={true}
+ cursorColor={colors.white}
+ placeholderTextColor={colors.light_grey}
+ returnKeyType="done"
+ style={[
+ styles.container,
+ {
+ textAlignVertical: 'top',
+ borderWidth: isTablet ? 3 : 1,
+ borderColor: isFocused ? colors.light_cyan : colors.transparent,
+ },
+ ]}
+ maxLength={150}
+ />
+ );
+}
+
+const styles = StyleSheet.create({
+ container: {
+ width: '100%',
+ maxWidth: width.max_width,
+ alignSelf: 'center',
+ backgroundColor: colors.black_000,
+ borderRadius: borderRadius.radius_10,
+ color: colors.white,
+ fontSize: wp(fontSizes.m),
+ fontFamily: 'Inter-Regular',
+ height: hp('15%'),
+ padding: spaces.space_10,
+ borderStyle: 'solid',
+ },
+});
diff --git a/src/components/TitleSubtitle.tsx b/src/components/TitleSubtitle.tsx
new file mode 100644
index 0000000..43bbc14
--- /dev/null
+++ b/src/components/TitleSubtitle.tsx
@@ -0,0 +1,40 @@
+import React from 'react';
+import { StyleSheet, View } from 'react-native';
+
+import { colors } from '@/helpers/themes';
+import { TitleSubtitleProps } from '@/types/TitleSubtitleType';
+
+import { SkeletonLoading } from './SkeletonLoading';
+import { Text } from './Text';
+
+export function TitleSubtitle({
+ title,
+ subTitle,
+ isLoading = false,
+ marginB = 0,
+ marginT = 0,
+}: TitleSubtitleProps) {
+ return (
+
+
+ {title}
+
+ {isLoading && (
+
+
+
+ )}
+ {!isLoading && (
+
+ {subTitle}
+
+ )}
+
+ );
+}
+
+const styles = StyleSheet.create({
+ loadingContainer: {
+ width: '50%',
+ },
+});
diff --git a/src/components/TransactionList.tsx b/src/components/TransactionList.tsx
new file mode 100644
index 0000000..132b3a1
--- /dev/null
+++ b/src/components/TransactionList.tsx
@@ -0,0 +1,171 @@
+import { NavigationProp, useNavigation } from '@react-navigation/native';
+import React from 'react';
+import { useTranslation } from 'react-i18next';
+import { StyleSheet, TouchableOpacity, View } from 'react-native';
+import { heightPercentageToDP as hp } from 'react-native-responsive-screen';
+
+import { IconArrowDown, IconArrowRight, IconArrowUp } from '@/assets';
+import { calculateBalance } from '@/functions/calculateBalance';
+import { borderRadius, colors, spaces, width } from '@/helpers/themes';
+import { useFormatCurrency } from '@/hooks/useFormatCurrency';
+import { useFormatDate } from '@/hooks/useFormatDate';
+import { useAppSettings } from '@/stores/useAppSettings';
+import { useBitcoinDataPrices } from '@/stores/useBitcoinDataPrices';
+import { useUserData } from '@/stores/useUserData';
+import { RootStackParamListProps } from '@/types/RoutesType';
+
+import { SkeletonLoading } from './SkeletonLoading';
+import { Text } from './Text';
+
+export function TransactionList() {
+ const { t } = useTranslation();
+ const { isTablet } = useAppSettings(state => state);
+ const { data, status } = useUserData(state => state.transactions);
+ const currency = useAppSettings(state => state.currency);
+ const navigation = useNavigation>();
+ const currentPrice = useBitcoinDataPrices(state => state.data?.current_price);
+
+ const SIZE_ICON_STATUS = hp('2.5%');
+ const SIZE_ICON_ARROW = hp('2%');
+ const PADDING_ITEM_TABLET = hp('3.5%');
+ const MARGIN_TOP_TRANSACTION = hp('5%');
+
+ return (
+
+
+ {t('transactions')}
+
+
+ {(status === 'loading' || status === null) && (
+
+ )}
+
+ {status === 'failed' && (
+
+
+ {t('request-error-try-later')}
+
+
+ )}
+
+ {data.length === 0 && status === 'success' && (
+
+
+ {t('you-dont-have-transactions')}
+
+
+ )}
+
+
+ {data.length > 0 &&
+ status === 'success' &&
+ data.map((item, index) => {
+ if (item.transactionType === 'zero-transfer') return;
+ return (
+ navigation.navigate('TransactionPage', { data: item })}
+ >
+
+ {item.transactionType === 'incoming' && }
+ {item.transactionType === 'outgoing' && }
+
+
+
+
+
+ {useFormatDate(new Date(item.timestamp * 1000)).date}
+
+
+ {item.transactionType === 'incoming' ? '+ ' : '- '}
+ {useFormatCurrency(
+ calculateBalance({
+ balance: item.amount,
+ currentPrice: currentPrice?.[currency],
+ }),
+ )}
+
+
+
+
+ {useFormatDate(new Date(item.timestamp * 1000)).time}
+
+
+ {item.amount} BTC
+
+
+
+
+
+
+ );
+ })}
+
+
+ );
+}
+
+const styles = StyleSheet.create({
+ container: {
+ width: '100%',
+ maxWidth: width.max_width,
+ alignSelf: 'center',
+ },
+ center: {
+ width: '100%',
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ transactionContainer: {
+ borderRadius: borderRadius.radius_10,
+ backgroundColor: colors.black_000,
+ },
+ Button: {
+ flex: 1,
+ flexDirection: 'row',
+ },
+ circle: {
+ width: 50,
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ item: {
+ flex: 1,
+ flexDirection: 'row',
+ alignItems: 'center',
+ borderBottomWidth: 1,
+ borderBottomStyle: 'solid',
+ },
+ column: {
+ flex: 1,
+ marginRight: spaces.space_15,
+ },
+ labels: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ },
+});
diff --git a/src/components/action-list/index.spec.tsx b/src/components/__test__/ActionList.spec.tsx
similarity index 96%
rename from src/components/action-list/index.spec.tsx
rename to src/components/__test__/ActionList.spec.tsx
index a2223a1..db04aec 100644
--- a/src/components/action-list/index.spec.tsx
+++ b/src/components/__test__/ActionList.spec.tsx
@@ -3,7 +3,8 @@ import React from 'react';
import { I18nextProvider, useTranslation } from 'react-i18next';
import { IconBitcoin } from '@/assets';
-import { ActionList } from '@/components';
+
+import { ActionList } from '../ActionList';
describe('ActionList', () => {
const t = renderHook(() => useTranslation());
diff --git a/src/components/alert-modal/index.spec.tsx b/src/components/__test__/AlertModal.spec.tsx
similarity index 98%
rename from src/components/alert-modal/index.spec.tsx
rename to src/components/__test__/AlertModal.spec.tsx
index 186f969..ee402e8 100644
--- a/src/components/alert-modal/index.spec.tsx
+++ b/src/components/__test__/AlertModal.spec.tsx
@@ -2,7 +2,7 @@ import { fireEvent, render, renderHook } from '@testing-library/react-native';
import React from 'react';
import { I18nextProvider, useTranslation } from 'react-i18next';
-import { AlertModal } from '@/components';
+import { AlertModal } from '../AlertModal';
describe('AlertModal', () => {
const configTest = {
diff --git a/src/components/button-title-ghost/index.spec.tsx b/src/components/__test__/ButtonTitleGhost.spec.tsx
similarity index 97%
rename from src/components/button-title-ghost/index.spec.tsx
rename to src/components/__test__/ButtonTitleGhost.spec.tsx
index 2f5e146..30a7cf1 100644
--- a/src/components/button-title-ghost/index.spec.tsx
+++ b/src/components/__test__/ButtonTitleGhost.spec.tsx
@@ -2,7 +2,7 @@ import { fireEvent, render, renderHook } from '@testing-library/react-native';
import React from 'react';
import { I18nextProvider, useTranslation } from 'react-i18next';
-import { ButtonTitleGhost } from '@/components';
+import { ButtonTitleGhost } from '../ButtonTitleGhost';
describe('ButtonTitleGhost', () => {
const configTest = {
diff --git a/src/components/button-title-shape/index.spec.tsx b/src/components/__test__/ButtonTitleShape.spec.tsx
similarity index 97%
rename from src/components/button-title-shape/index.spec.tsx
rename to src/components/__test__/ButtonTitleShape.spec.tsx
index 0b2404e..d2b0a8c 100644
--- a/src/components/button-title-shape/index.spec.tsx
+++ b/src/components/__test__/ButtonTitleShape.spec.tsx
@@ -2,7 +2,7 @@ import { fireEvent, render, renderHook } from '@testing-library/react-native';
import React from 'react';
import { I18nextProvider, useTranslation } from 'react-i18next';
-import { ButtonTitleShape } from '@/components';
+import { ButtonTitleShape } from '../ButtonTitleShape';
describe('ButtonTitleShape', () => {
const configTest = {
diff --git a/src/components/chart-bitcoin/index.spec.tsx b/src/components/__test__/ChartBitcoin.spec.tsx
similarity index 88%
rename from src/components/chart-bitcoin/index.spec.tsx
rename to src/components/__test__/ChartBitcoin.spec.tsx
index 1cc1aa4..0cc9a2e 100644
--- a/src/components/chart-bitcoin/index.spec.tsx
+++ b/src/components/__test__/ChartBitcoin.spec.tsx
@@ -1,7 +1,7 @@
import { render } from '@testing-library/react-native';
import React from 'react';
-import { ChartBitcoin } from '@/components';
+import { ChartBitcoin } from '../ChartBitcoin';
test('Render component with success', () => {
const configTest = {
diff --git a/src/components/check-box-message/index.spec.tsx b/src/components/__test__/CheckBoxMessage.spec.tsx
similarity index 91%
rename from src/components/check-box-message/index.spec.tsx
rename to src/components/__test__/CheckBoxMessage.spec.tsx
index a532757..97e4f12 100644
--- a/src/components/check-box-message/index.spec.tsx
+++ b/src/components/__test__/CheckBoxMessage.spec.tsx
@@ -1,7 +1,7 @@
import { fireEvent, render } from '@testing-library/react-native';
import React from 'react';
-import { CheckBoxMessage } from '@/components';
+import { CheckBoxMessage } from '../CheckBoxMessage';
test('Render component and onPress', () => {
const configTest = {
diff --git a/src/components/header-swiper-options/index.spec.tsx b/src/components/__test__/HeaderSwiperOptions.spec.tsx
similarity index 95%
rename from src/components/header-swiper-options/index.spec.tsx
rename to src/components/__test__/HeaderSwiperOptions.spec.tsx
index a092ceb..f5142c2 100644
--- a/src/components/header-swiper-options/index.spec.tsx
+++ b/src/components/__test__/HeaderSwiperOptions.spec.tsx
@@ -2,7 +2,7 @@ import { fireEvent, render, renderHook } from '@testing-library/react-native';
import React from 'react';
import { I18nextProvider, useTranslation } from 'react-i18next';
-import { HeaderSwiperOptions } from '@/components';
+import { HeaderSwiperOptions } from '../HeaderSwiperOptions';
describe('HeaderSwiperOptions', () => {
const t = renderHook(() => useTranslation());
diff --git a/src/components/limited-width-container/index.spec.tsx b/src/components/__test__/LimitedWidthContainer.spec.tsx
similarity index 81%
rename from src/components/limited-width-container/index.spec.tsx
rename to src/components/__test__/LimitedWidthContainer.spec.tsx
index 2e93c3e..a3324bf 100644
--- a/src/components/limited-width-container/index.spec.tsx
+++ b/src/components/__test__/LimitedWidthContainer.spec.tsx
@@ -1,7 +1,8 @@
import { render } from '@testing-library/react-native';
import React from 'react';
-import { LimitedWidthContainer, Text } from '@/components';
+import { LimitedWidthContainer } from '../LimitedWidthContainer';
+import { Text } from '../Text';
test('Render component', () => {
const configTest = {
diff --git a/src/components/price-bitcoin/index.spec.tsx b/src/components/__test__/PriceBitcoin.spec.tsx
similarity index 96%
rename from src/components/price-bitcoin/index.spec.tsx
rename to src/components/__test__/PriceBitcoin.spec.tsx
index f9c5d3d..7c05b92 100644
--- a/src/components/price-bitcoin/index.spec.tsx
+++ b/src/components/__test__/PriceBitcoin.spec.tsx
@@ -1,7 +1,7 @@
import { render } from '@testing-library/react-native';
import React from 'react';
-import { PriceBitcoin } from '@/components';
+import { PriceBitcoin } from '../PriceBitcoin';
describe('PriceBitcoin', () => {
const configTest = {
diff --git a/src/components/scroll-view/index.spec.tsx b/src/components/__test__/ScrollView.spec.tsx
similarity index 95%
rename from src/components/scroll-view/index.spec.tsx
rename to src/components/__test__/ScrollView.spec.tsx
index 3c4c7a2..06328b2 100644
--- a/src/components/scroll-view/index.spec.tsx
+++ b/src/components/__test__/ScrollView.spec.tsx
@@ -2,7 +2,7 @@ import { act, render } from '@testing-library/react-native';
import React from 'react';
import { View } from 'react-native';
-import { ScrollView } from '@/components';
+import { ScrollView } from '../ScrollView';
describe('ScrollView', () => {
const configTest = {
diff --git a/src/components/scroll-view-header/index.spec.tsx b/src/components/__test__/ScrollViewHeader.spec.tsx
similarity index 95%
rename from src/components/scroll-view-header/index.spec.tsx
rename to src/components/__test__/ScrollViewHeader.spec.tsx
index 8662474..ec90788 100644
--- a/src/components/scroll-view-header/index.spec.tsx
+++ b/src/components/__test__/ScrollViewHeader.spec.tsx
@@ -2,7 +2,7 @@ import { act, render } from '@testing-library/react-native';
import React from 'react';
import { View } from 'react-native';
-import { ScrollViewHeader } from '@/components';
+import { ScrollViewHeader } from '../ScrollViewHeader';
describe('ScrollViewHeader', () => {
const configTest = {
diff --git a/src/components/select-list/index.spec.tsx b/src/components/__test__/SelectList.spec.tsx
similarity index 94%
rename from src/components/select-list/index.spec.tsx
rename to src/components/__test__/SelectList.spec.tsx
index 73c019e..e5ca1dd 100644
--- a/src/components/select-list/index.spec.tsx
+++ b/src/components/__test__/SelectList.spec.tsx
@@ -1,7 +1,7 @@
import { fireEvent, render } from '@testing-library/react-native';
import React from 'react';
-import { SelectList } from '@/components';
+import { SelectList } from '../SelectList';
test('Render component and action', () => {
const configTest = {
diff --git a/src/components/skeleton-loading/index.spec.tsx b/src/components/__test__/SkeletonLoading.spec.tsx
similarity index 83%
rename from src/components/skeleton-loading/index.spec.tsx
rename to src/components/__test__/SkeletonLoading.spec.tsx
index 212bddc..e5a4566 100644
--- a/src/components/skeleton-loading/index.spec.tsx
+++ b/src/components/__test__/SkeletonLoading.spec.tsx
@@ -1,7 +1,7 @@
import { render } from '@testing-library/react-native';
import React from 'react';
-import { SkeletonLoading } from '@/components';
+import { SkeletonLoading } from '../SkeletonLoading';
test('Render component', () => {
const { getByTestId } = render();
diff --git a/src/components/text/index.spec.tsx b/src/components/__test__/Text.spec.tsx
similarity index 90%
rename from src/components/text/index.spec.tsx
rename to src/components/__test__/Text.spec.tsx
index db0086b..52af67d 100644
--- a/src/components/text/index.spec.tsx
+++ b/src/components/__test__/Text.spec.tsx
@@ -1,7 +1,7 @@
import { render } from '@testing-library/react-native';
import React from 'react';
-import { Text } from '@/components';
+import { Text } from '../Text';
test('Render component', () => {
const configTest = {
diff --git a/src/components/text-field-area/index.spec.tsx b/src/components/__test__/TextFieldArea.spec.tsx
similarity index 88%
rename from src/components/text-field-area/index.spec.tsx
rename to src/components/__test__/TextFieldArea.spec.tsx
index 8a8b3b5..83f6715 100644
--- a/src/components/text-field-area/index.spec.tsx
+++ b/src/components/__test__/TextFieldArea.spec.tsx
@@ -2,9 +2,9 @@ import { fireEvent, render, renderHook } from '@testing-library/react-native';
import React from 'react';
import { I18nextProvider, useTranslation } from 'react-i18next';
-import { TextFieldArea } from '@/components';
+import { TextFieldArea } from '../TextFieldArea';
-test('Render component and changeText', () => {
+test('Render component', () => {
const t = renderHook(() => useTranslation());
const configTest = {
value: 'Hello World',
diff --git a/src/components/title-subtitle/index.spec.tsx b/src/components/__test__/TitleSubtitle.spec.tsx
similarity index 94%
rename from src/components/title-subtitle/index.spec.tsx
rename to src/components/__test__/TitleSubtitle.spec.tsx
index 4c3c2f0..fe4c463 100644
--- a/src/components/title-subtitle/index.spec.tsx
+++ b/src/components/__test__/TitleSubtitle.spec.tsx
@@ -1,7 +1,7 @@
import { render } from '@testing-library/react-native';
import React from 'react';
-import { TitleSubtitle } from '@/components';
+import { TitleSubtitle } from '../TitleSubtitle';
describe('TitleSubtitle', () => {
const configTest = {
diff --git a/src/components/transaction-list/index.spec.tsx b/src/components/__test__/TransactionList.spec.tsx
similarity index 92%
rename from src/components/transaction-list/index.spec.tsx
rename to src/components/__test__/TransactionList.spec.tsx
index 6a174ab..8ed6412 100644
--- a/src/components/transaction-list/index.spec.tsx
+++ b/src/components/__test__/TransactionList.spec.tsx
@@ -1,7 +1,7 @@
import { act, render } from '@testing-library/react-native';
import React from 'react';
-import { TransactionList } from '@/components';
+import { TransactionList } from '../TransactionList';
test('Render component and action', () => {
const configTest = {
diff --git a/src/components/action-list/index.tsx b/src/components/action-list/index.tsx
deleted file mode 100644
index 663632d..0000000
--- a/src/components/action-list/index.tsx
+++ /dev/null
@@ -1,36 +0,0 @@
-import React from 'react';
-import { heightPercentageToDP as hp } from 'react-native-responsive-screen';
-
-import { IconArrowRight } from '@/assets';
-import { themes } from '@/themes';
-
-import { Text } from '../text';
-import {
- ActionListContainer,
- IconAndTitleContainer,
- IconContainer,
- Indicator,
- ItemButton,
-} from './styles';
-import { ActionListProps } from './types';
-
-export function ActionList({ list }: ActionListProps) {
- return (
-
- {list.map((item, index) => (
- item.onAction()}>
- {item.prefixIcon && (
- {item.prefixIcon}
- )}
-
- {item.title}
-
-
-
- {list.length !== index + 1 && }
-
-
- ))}
-
- );
-}
diff --git a/src/components/action-list/styles.ts b/src/components/action-list/styles.ts
deleted file mode 100644
index 03eacd5..0000000
--- a/src/components/action-list/styles.ts
+++ /dev/null
@@ -1,46 +0,0 @@
-import styled from 'styled-components/native';
-
-import { useAppSettings } from '@/stores';
-import { themes } from '@/themes';
-
-const { isTablet } = useAppSettings.getState();
-
-const { colors, border_radius, spaces, width } = themes;
-
-export const ActionListContainer = styled.View`
- width: 100%;
- max-width: ${width.max_width};
- align-self: center;
- background-color: ${colors.black_000};
- border-radius: ${border_radius.radius_10};
- border: 1px solid ${colors.dark_grey};
-`;
-
-export const ItemButton = styled.TouchableOpacity`
- padding-left: ${isTablet ? spaces.space_20 : spaces.space_15};
- flex-direction: row;
- justify-content: space-between;
- align-items: center;
-`;
-
-export const Indicator = styled.View`
- position: absolute;
- bottom: 0;
- right: 0;
- height: 1px;
- width: 100%;
- background-color: ${colors.dark_grey};
-`;
-
-export const IconAndTitleContainer = styled.View`
- flex: 1;
- padding: ${isTablet ? spaces.space_25 : spaces.space_20} 0;
- flex-direction: row;
- align-items: center;
- justify-content: space-between;
- position: relative;
-`;
-
-export const IconContainer = styled.View`
- margin-right: ${spaces.space_15};
-`;
diff --git a/src/components/alert-modal/index.tsx b/src/components/alert-modal/index.tsx
deleted file mode 100644
index d558678..0000000
--- a/src/components/alert-modal/index.tsx
+++ /dev/null
@@ -1,40 +0,0 @@
-import React from 'react';
-import { useTranslation } from 'react-i18next';
-
-import { themes } from '@/themes';
-
-import { ButtonTitleGhost } from '../button-title-ghost';
-import { Text } from '../text';
-import { AlertContainer, BackgroundContainer, Footer, ModalContainer } from './styles';
-import { AlertModalProps } from './types';
-
-export function AlertModal({ title, visible, onCancel, onConfirm }: AlertModalProps) {
- const { t } = useTranslation();
-
- return (
-
-
-
-
- {title}
-
-
-
-
-
- );
-}
diff --git a/src/components/alert-modal/styles.ts b/src/components/alert-modal/styles.ts
deleted file mode 100644
index 0500876..0000000
--- a/src/components/alert-modal/styles.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import styled from 'styled-components/native';
-
-import { themes } from '@/themes';
-
-export const ModalContainer = styled.Modal``;
-
-export const BackgroundContainer = styled.View`
- flex: 1;
- background-color: ${themes.colors.black_100_50pct};
- align-items: center;
- justify-content: center;
- padding: 0 ${themes.spaces.space_15};
-`;
-
-export const AlertContainer = styled.View`
- width: 100%;
- max-width: ${themes.width.max_width};
- padding: ${themes.spaces.space_30} ${themes.spaces.space_20};
- border-radius: ${themes.border_radius.radius_15};
- background-color: ${themes.colors.black_000};
-`;
-
-export const Footer = styled.View`
- width: 100%;
- margin-top: ${themes.spaces.space_30};
- flex-direction: row;
- justify-content: flex-end;
-`;
diff --git a/src/components/button-title-ghost/index.tsx b/src/components/button-title-ghost/index.tsx
deleted file mode 100644
index bac0bc8..0000000
--- a/src/components/button-title-ghost/index.tsx
+++ /dev/null
@@ -1,65 +0,0 @@
-import React from 'react';
-import { useTranslation } from 'react-i18next';
-import { ActivityIndicator } from 'react-native';
-
-import { useAppSettings } from '@/stores';
-import { themes } from '@/themes';
-
-import { Text } from '../text';
-import { ButtonTitleGhostContainer } from './styles';
-import { ButtonTitleGhostProps } from './types';
-
-export function ButtonTitleGhost({
- testID = 'idButtonTitleGhost',
- title,
- disabled = false,
- onPress,
- size = 'large',
- loading = false,
- buttonsWeight = 'bold',
- marginT,
- marginB,
- marginR,
- marginL,
-}: ButtonTitleGhostProps) {
- const { t } = useTranslation();
- const { isTablet } = useAppSettings.getState();
-
- return (
- {
- if (!disabled || loading) onPress();
- }}
- disabled={disabled || loading}
- marginT={marginT ?? '0px'}
- marginB={marginB ?? '0px'}
- marginR={marginR ?? '0px'}
- marginL={marginL ?? '0px'}
- isOpacity={disabled}
- >
- {!loading && (
-
- {title}
-
- )}
- {loading && (
-
-
-
- {t('loading')}
-
-
- )}
-
- );
-}
diff --git a/src/components/button-title-ghost/styles.ts b/src/components/button-title-ghost/styles.ts
deleted file mode 100644
index 6fcae74..0000000
--- a/src/components/button-title-ghost/styles.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import styled from 'styled-components/native';
-
-import { themes } from '@/themes';
-
-import { ButtonTitleGhostContainerProps } from './types';
-
-export const ButtonTitleGhostContainer = styled.TouchableOpacity`
- align-self: center;
- flex-direction: row;
- padding: 10px;
- background-color: ${themes.colors.transparent};
- align-items: center;
- justify-content: center;
- margin-top: ${({ marginT }) => marginT};
- margin-bottom: ${({ marginB }) => marginB};
- margin-right: ${({ marginR }) => marginR};
- margin-left: ${({ marginL }) => marginL};
- opacity: ${({ isOpacity }) => (isOpacity ? 0.5 : 1)};
-`;
diff --git a/src/components/button-title-ghost/types.ts b/src/components/button-title-ghost/types.ts
deleted file mode 100644
index b8a11b7..0000000
--- a/src/components/button-title-ghost/types.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import { TextProps } from '../text/types';
-
-export interface ButtonTitleGhostProps {
- testID?: string;
- title: string;
- onPress: () => void;
- disabled?: boolean;
- size?: 'large' | 'small';
- buttonsWeight?: TextProps['weight'];
- loading?: boolean;
- marginT?: string;
- marginB?: string;
- marginR?: string;
- marginL?: string;
-}
-
-export interface ButtonTitleGhostContainerProps {
- isOpacity: boolean;
- marginT: string;
- marginB: string;
- marginR: string;
- marginL: string;
-}
diff --git a/src/components/button-title-shape/index.tsx b/src/components/button-title-shape/index.tsx
deleted file mode 100644
index 580e6ac..0000000
--- a/src/components/button-title-shape/index.tsx
+++ /dev/null
@@ -1,67 +0,0 @@
-import React from 'react';
-import { useTranslation } from 'react-i18next';
-import { ActivityIndicator } from 'react-native';
-
-import { useAppSettings } from '@/stores';
-import { themes } from '@/themes';
-
-import { Text } from '../text';
-import { ButtonTitleShapeContainer } from './styles';
-import { ButtonTitleShapeProps } from './types';
-
-export function ButtonTitleShape({
- title,
- disabled = false,
- onPress,
- size = 'large',
- loading = false,
- marginT,
- marginB,
- marginR,
- marginL,
-}: ButtonTitleShapeProps) {
- const { t } = useTranslation();
- const { colors, spaces, border_radius } = themes;
- const { isTablet } = useAppSettings.getState();
-
- const LARGE_PADDING_V = isTablet ? spaces.space_20 : spaces.space_15;
- const LARGE_PADDING_H = isTablet ? spaces.space_15 : spaces.space_10;
-
- return (
- {
- if (!disabled || loading) onPress();
- }}
- disabled={disabled || loading}
- width={size === 'large' ? '90%' : 'auto'}
- paddingH={size === 'large' ? '0px' : spaces.space_25}
- paddingV={size === 'large' ? LARGE_PADDING_V : LARGE_PADDING_H}
- borderR={size === 'large' ? border_radius.radius_15 : border_radius.radius_10}
- marginT={marginT ?? '0px'}
- marginB={marginB ?? '15px'}
- marginR={marginR ?? '0px'}
- marginL={marginL ?? '0px'}
- isOpacity={disabled}
- >
- {!loading && (
-
- {title}
-
- )}
- {loading && (
-
-
-
- {t('loading')}
-
-
- )}
-
- );
-}
diff --git a/src/components/button-title-shape/styles.ts b/src/components/button-title-shape/styles.ts
deleted file mode 100644
index 62a69e7..0000000
--- a/src/components/button-title-shape/styles.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import styled from 'styled-components/native';
-
-import { themes } from '@/themes';
-
-import { ButtonTitleShapeContainerProps } from './types';
-
-export const ButtonTitleShapeContainer = styled.TouchableOpacity`
- align-self: center;
- flex-direction: row;
- padding: ${({ paddingV, paddingH }) => `${paddingV} ${paddingH}`};
- border-radius: ${({ borderR }) => borderR};
- background-color: ${themes.colors.light_cyan};
- margin-bottom: ${themes.spaces.space_15};
- align-items: center;
- justify-content: center;
- width: ${({ width }) => width};
- margin-top: ${({ marginT }) => marginT};
- margin-bottom: ${({ marginB }) => marginB};
- margin-right: ${({ marginR }) => marginR};
- margin-left: ${({ marginL }) => marginL};
- opacity: ${({ isOpacity }) => (isOpacity ? 0.5 : 1)};
-`;
diff --git a/src/components/button-title-shape/types.ts b/src/components/button-title-shape/types.ts
deleted file mode 100644
index 9b1655e..0000000
--- a/src/components/button-title-shape/types.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-export interface ButtonTitleShapeProps {
- title: string;
- onPress: () => void;
- disabled?: boolean;
- size?: 'large' | 'small';
- loading?: boolean;
- marginT?: string;
- marginB?: string;
- marginR?: string;
- marginL?: string;
-}
-
-export interface ButtonTitleShapeContainerProps {
- isOpacity: boolean;
- width: string;
- paddingV: string;
- paddingH: string;
- borderR: string;
- marginT: string;
- marginB: string;
- marginR: string;
- marginL: string;
-}
diff --git a/src/components/chart-bitcoin/components/custom-line/index.tsx b/src/components/chart-bitcoin/components/custom-line/index.tsx
deleted file mode 100644
index 016df8c..0000000
--- a/src/components/chart-bitcoin/components/custom-line/index.tsx
+++ /dev/null
@@ -1,13 +0,0 @@
-import React from 'react';
-import { Path } from 'react-native-svg';
-
-import { themes } from '@/themes';
-
-import { apx } from '../../functions';
-import { CustomLineProps } from './types';
-
-export function CustomLine({ line }: CustomLineProps) {
- return (
-
- );
-}
diff --git a/src/components/chart-bitcoin/functions/index.ts b/src/components/chart-bitcoin/functions/index.ts
deleted file mode 100644
index 8df3e8d..0000000
--- a/src/components/chart-bitcoin/functions/index.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { Dimensions } from 'react-native';
-
-export const apx = (size = 0) => {
- const width = Dimensions.get('window').width;
- return (width / 750) * size;
-};
diff --git a/src/components/chart-bitcoin/index.tsx b/src/components/chart-bitcoin/index.tsx
deleted file mode 100644
index bb42a95..0000000
--- a/src/components/chart-bitcoin/index.tsx
+++ /dev/null
@@ -1,37 +0,0 @@
-import React from 'react';
-import { useTranslation } from 'react-i18next';
-
-import { useBitcoinHistoricalPrice } from '@/stores';
-import { themes } from '@/themes';
-
-import { SkeletonLoading } from '../skeleton-loading';
-import { Text } from '../text';
-import { ChartMain } from './components/chart-main';
-import { ChartBitcoinContainer, FailedContainer } from './styles';
-
-export function ChartBitcoin() {
- const { t } = useTranslation();
- const { fetchBitcoinHistoricalPrice, status, data } = useBitcoinHistoricalPrice(state => state);
-
- React.useEffect(() => {
- if (status === null) fetchBitcoinHistoricalPrice();
- }, []);
-
- return (
-
- {(status === 'loading' || status === null) && (
-
- )}
-
- {status === 'failed' && (
-
-
- {t('request-error-try-later')}
-
-
- )}
-
- {status === 'success' && }
-
- );
-}
diff --git a/src/components/chart-bitcoin/styles.ts b/src/components/chart-bitcoin/styles.ts
deleted file mode 100644
index cc21ddb..0000000
--- a/src/components/chart-bitcoin/styles.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import {
- heightPercentageToDP as hp,
- widthPercentageToDP as wp,
-} from 'react-native-responsive-screen';
-import styled from 'styled-components/native';
-
-import { useAppSettings } from '@/stores';
-import { themes } from '@/themes';
-
-const { isTablet } = useAppSettings.getState();
-
-const MARGIN_TOP_CHART = `${hp('5%')}px`;
-
-export const ChartBitcoinContainer = styled.View`
- margin-top: ${isTablet ? MARGIN_TOP_CHART : themes.spaces.space_25};
- width: 100%;
-`;
-
-export const FailedContainer = styled.View`
- height: ${wp('35%')}px;
- width: ${wp('100%')}px;
- justify-content: center;
- padding: 0 ${themes.spaces.space_15};
-`;
diff --git a/src/components/check-box-message/index.tsx b/src/components/check-box-message/index.tsx
deleted file mode 100644
index ea24889..0000000
--- a/src/components/check-box-message/index.tsx
+++ /dev/null
@@ -1,24 +0,0 @@
-import React from 'react';
-
-import { themes } from '@/themes';
-
-import { Text } from '../text';
-import { Check, CheckBoxMessageContainer } from './styles';
-import { CheckboxMessageProps } from './types';
-
-export function CheckBoxMessage({ isActivated, onAction, message }: CheckboxMessageProps) {
- return (
-
-
-
- {message}
-
-
- );
-}
diff --git a/src/components/check-box-message/styles.ts b/src/components/check-box-message/styles.ts
deleted file mode 100644
index a3cc7fc..0000000
--- a/src/components/check-box-message/styles.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import Checkbox from 'expo-checkbox';
-import styled from 'styled-components/native';
-
-import { themes } from '@/themes';
-
-export const CheckBoxMessageContainer = styled.View`
- flex-direction: row;
- align-items: center;
- margin-top: ${themes.spaces.space_15};
-`;
-
-export const Check = styled(Checkbox)`
- width: 18px;
- height: 18px;
-`;
diff --git a/src/components/chart-bitcoin/components/chart-main/index.tsx b/src/components/fragments/ChartMain.tsx
similarity index 87%
rename from src/components/chart-bitcoin/components/chart-main/index.tsx
rename to src/components/fragments/ChartMain.tsx
index 68b65a1..1815ea3 100644
--- a/src/components/chart-bitcoin/components/chart-main/index.tsx
+++ b/src/components/fragments/ChartMain.tsx
@@ -3,12 +3,12 @@ import React from 'react';
import { Dimensions, PanResponder, View } from 'react-native';
import { AreaChart } from 'react-native-svg-charts';
-import { useAppSettings } from '@/stores';
-import { themes } from '@/themes';
+import { colors } from '@/helpers/themes';
+import { useAppSettings } from '@/stores/useAppSettings';
+import { ChartMainProps } from '@/types/ChartMainType';
-import { CustomLine } from '../custom-line';
-import { CustomTooltip } from '../custom-tooltip';
-import { ChartMainProps } from './types';
+import { CustomLine } from './CustomLine';
+import { CustomTooltip } from './CustomTooltip';
export function ChartMain({ data }: ChartMainProps) {
const { isTablet } = useAppSettings(state => state);
@@ -71,7 +71,7 @@ export function ChartMain({ data }: ChartMainProps) {
style={{ flex: 1 }}
data={dataList.map(item => item.value)}
contentInset={{ ...verticalContentInset }}
- svg={{ fill: themes.colors.transparent }}
+ svg={{ fill: colors.transparent }}
curve={shape.curveNatural}
animate
>
diff --git a/src/components/fragments/CustomLine.tsx b/src/components/fragments/CustomLine.tsx
new file mode 100644
index 0000000..244b097
--- /dev/null
+++ b/src/components/fragments/CustomLine.tsx
@@ -0,0 +1,15 @@
+import React from 'react';
+import { Dimensions } from 'react-native';
+import { Path } from 'react-native-svg';
+
+import { colors } from '@/helpers/themes';
+import { CustomLineProps } from '@/types/CustomLineType';
+
+export function CustomLine({ line }: CustomLineProps) {
+ const apx = (size = 0) => {
+ const width = Dimensions.get('window').width;
+ return (width / 750) * size;
+ };
+
+ return ;
+}
diff --git a/src/components/chart-bitcoin/components/custom-tooltip/index.tsx b/src/components/fragments/CustomTooltip.tsx
similarity index 69%
rename from src/components/chart-bitcoin/components/custom-tooltip/index.tsx
rename to src/components/fragments/CustomTooltip.tsx
index fd2ad69..eb58bbd 100644
--- a/src/components/chart-bitcoin/components/custom-tooltip/index.tsx
+++ b/src/components/fragments/CustomTooltip.tsx
@@ -1,14 +1,18 @@
import currencyJS from 'currency.js';
import React from 'react';
+import { Dimensions } from 'react-native';
import { Circle, G, Line, Rect, Text as SvgText } from 'react-native-svg';
-import { useFormatDate } from '@/hooks';
-import { themes } from '@/themes';
-
-import { apx } from '../../functions';
-import { CustomTooltipProps } from './types';
+import { colors } from '@/helpers/themes';
+import { useFormatDate } from '@/hooks/useFormatDate';
+import { CustomTooltipProps } from '@/types/CustomTooltipType';
export function CustomTooltip({ x, y, ticks, positionX, size, dataList }: CustomTooltipProps) {
+ const apx = (size = 0) => {
+ const width = Dimensions.get('window').width;
+ return (width / 750) * size;
+ };
+
if (positionX < 0) return null;
const { dateAndTime } = useFormatDate(dataList[positionX].date);
@@ -31,11 +35,11 @@ export function CustomTooltip({ x, y, ticks, positionX, size, dataList }: Custom
ry={apx(12)}
width={apx(300)}
height={apx(96)}
- stroke={themes.colors.transparent}
- fill={themes.colors.transparent}
+ stroke={colors.transparent}
+ fill={colors.transparent}
/>
-
+
{dateAndTime}
{currency}
@@ -53,7 +57,7 @@ export function CustomTooltip({ x, y, ticks, positionX, size, dataList }: Custom
@@ -61,9 +65,9 @@ export function CustomTooltip({ x, y, ticks, positionX, size, dataList }: Custom
diff --git a/src/components/fragments/HeaderAnimated.tsx b/src/components/fragments/HeaderAnimated.tsx
new file mode 100644
index 0000000..e7c07b1
--- /dev/null
+++ b/src/components/fragments/HeaderAnimated.tsx
@@ -0,0 +1,84 @@
+import Constants from 'expo-constants';
+import React from 'react';
+import { Platform, StyleSheet, View } from 'react-native';
+import Animated, { Extrapolate, interpolate, useAnimatedStyle } from 'react-native-reanimated';
+import { heightPercentageToDP as hp } from 'react-native-responsive-screen';
+
+import { colors, spaces } from '@/helpers/themes';
+import { HeaderAnimatedProps } from '@/types/HeaderAnimatedType';
+
+import { Text } from '../Text';
+
+export function HeaderAnimated({ translationY, headerTitle }: HeaderAnimatedProps) {
+ const HEIGHT_ITEM_HEADER = hp('8%');
+ const HEIGHT_STATUS_BAR = Platform.OS === 'ios' ? Constants.statusBarHeight : 0;
+ const HEIGHT_FIRST_ITEM = hp('8%') + HEIGHT_STATUS_BAR;
+ const HEIGHT_SECOND_ITEM = hp('8%') + HEIGHT_FIRST_ITEM;
+
+ const translateY = useAnimatedStyle(() => ({
+ transform: [
+ {
+ translateY: interpolate(
+ translationY.value,
+ [20, HEIGHT_ITEM_HEADER],
+ [0, -HEIGHT_ITEM_HEADER],
+ Extrapolate.CLAMP,
+ ),
+ },
+ ],
+ }));
+
+ const topOpacity = useAnimatedStyle(() => ({
+ opacity: interpolate(
+ translationY.value,
+ [-HEIGHT_ITEM_HEADER, 0, 50, HEIGHT_ITEM_HEADER],
+ [0, 0, 0, 1],
+ Extrapolate.CLAMP,
+ ),
+ }));
+
+ return (
+
+
+
+ {headerTitle}
+
+
+
+
+
+
+ {headerTitle}
+
+
+
+
+
+ );
+}
+
+const styles = StyleSheet.create({
+ secondItem: {
+ position: 'absolute',
+ top: 0,
+ width: '100%',
+ zIndex: 1,
+ paddingHorizontal: spaces.space_15,
+ justifyContent: 'flex-end',
+ backgroundColor: colors.black_000,
+ },
+ animatedContainer: {
+ position: 'absolute',
+ top: 0,
+ left: 0,
+ right: 0,
+ backgroundColor: colors.black_000,
+ zIndex: 99999999,
+ },
+ firstItem: {
+ zIndex: 2,
+ paddingHorizontal: spaces.space_15,
+ justifyContent: 'flex-end',
+ backgroundColor: colors.black_000,
+ },
+});
diff --git a/src/components/header-swiper-options/index.tsx b/src/components/header-swiper-options/index.tsx
deleted file mode 100644
index 246dc0a..0000000
--- a/src/components/header-swiper-options/index.tsx
+++ /dev/null
@@ -1,55 +0,0 @@
-import { useNavigation } from '@react-navigation/native';
-import { setStatusBarBackgroundColor } from 'expo-status-bar';
-import React from 'react';
-import { useTranslation } from 'react-i18next';
-import { Platform } from 'react-native';
-
-import { themes } from '@/themes';
-
-import { ButtonTitleGhost } from '../button-title-ghost';
-import { Text } from '../text';
-import { CenterTitle, HeaderSwiperOptionsContainer } from './styles';
-import { HeaderSwiperOptionsProps } from './types';
-
-export function HeaderSwiperOptions({
- title,
- onAction,
- disableAction = false,
-}: HeaderSwiperOptionsProps) {
- const navigation = useNavigation();
- const { t } = useTranslation();
-
- React.useEffect(() => {
- if (Platform.OS === 'android') setStatusBarBackgroundColor('black', true);
- return () => {
- if (Platform.OS === 'android') setStatusBarBackgroundColor(themes.colors.black_000, true);
- };
- }, []);
-
- return (
-
-
-
- {title}
-
-
- navigation.goBack()}
- marginL={themes.spaces.space_10}
- />
-
-
- );
-}
diff --git a/src/components/header-swiper-options/styles.ts b/src/components/header-swiper-options/styles.ts
deleted file mode 100644
index 462b6c6..0000000
--- a/src/components/header-swiper-options/styles.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import styled from 'styled-components/native';
-
-import { themes } from '@/themes';
-
-export const HeaderSwiperOptionsContainer = styled.View`
- background-color: ${themes.colors.black_000};
- padding: ${themes.spaces.space_10} 0;
- width: 100%;
- flex-direction: row;
- justify-content: space-between;
- align-items: center;
- position: relative;
-`;
-
-export const CenterTitle = styled.View`
- position: absolute;
- align-items: center;
- width: 100%;
-`;
diff --git a/src/components/index.ts b/src/components/index.ts
deleted file mode 100644
index f3d37c0..0000000
--- a/src/components/index.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-import { ActionList } from './action-list';
-import { AlertModal } from './alert-modal';
-import { ButtonTitleGhost } from './button-title-ghost';
-import { ButtonTitleShape } from './button-title-shape';
-import { ChartBitcoin } from './chart-bitcoin';
-import { CheckBoxMessage } from './check-box-message';
-import { HeaderSwiperOptions } from './header-swiper-options';
-import { LimitedWidthContainer } from './limited-width-container';
-import { PriceBitcoin } from './price-bitcoin';
-import { ScrollView } from './scroll-view';
-import { ScrollViewHeader } from './scroll-view-header';
-import { SelectList } from './select-list';
-import { SkeletonLoading } from './skeleton-loading';
-import { SpaceFull } from './space-full';
-import { Text } from './text';
-import { TextFieldArea } from './text-field-area';
-import { TitleSubtitle } from './title-subtitle';
-import { TransactionList } from './transaction-list';
-
-export {
- ActionList,
- AlertModal,
- ButtonTitleGhost,
- ButtonTitleShape,
- ChartBitcoin,
- CheckBoxMessage,
- HeaderSwiperOptions,
- LimitedWidthContainer,
- PriceBitcoin,
- ScrollView,
- ScrollViewHeader,
- SelectList,
- SkeletonLoading,
- SpaceFull,
- Text,
- TextFieldArea,
- TitleSubtitle,
- TransactionList,
-};
diff --git a/src/components/limited-width-container/index.tsx b/src/components/limited-width-container/index.tsx
deleted file mode 100644
index fc12702..0000000
--- a/src/components/limited-width-container/index.tsx
+++ /dev/null
@@ -1,8 +0,0 @@
-import React from 'react';
-
-import { WidthContainer } from './styles';
-import { LimitedWidthContainerProps } from './types';
-
-export function LimitedWidthContainer({ children }: LimitedWidthContainerProps) {
- return {children};
-}
diff --git a/src/components/limited-width-container/styles.ts b/src/components/limited-width-container/styles.ts
deleted file mode 100644
index 6368d0f..0000000
--- a/src/components/limited-width-container/styles.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import styled from 'styled-components/native';
-
-import { themes } from '@/themes';
-
-export const WidthContainer = styled.View`
- max-width: ${themes.width.max_width};
- width: 100%;
- align-self: center;
-`;
diff --git a/src/components/price-bitcoin/styles.ts b/src/components/price-bitcoin/styles.ts
deleted file mode 100644
index f8593e4..0000000
--- a/src/components/price-bitcoin/styles.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import styled from 'styled-components/native';
-
-export const PriceBitcoinContainer = styled.View``;
-
-export const PriceAndPorcent = styled.View`
- flex-direction: row;
-`;
diff --git a/src/components/scroll-view-header/components/header-animated/index.tsx b/src/components/scroll-view-header/components/header-animated/index.tsx
deleted file mode 100644
index 87d627d..0000000
--- a/src/components/scroll-view-header/components/header-animated/index.tsx
+++ /dev/null
@@ -1,64 +0,0 @@
-import React from 'react';
-import { Extrapolate, interpolate, useAnimatedStyle } from 'react-native-reanimated';
-import { heightPercentageToDP as hp } from 'react-native-responsive-screen';
-
-import { themes } from '@/themes';
-
-import { Text } from '../../../text';
-import {
- FirstItem,
- HeaderAnimatedContainer,
- OpacityAnimation,
- SafeArea,
- SecondtItem,
-} from './styles';
-import { HeaderAnimatedProps } from './types';
-
-export function HeaderAnimated({ translationY, headerTitle }: HeaderAnimatedProps) {
- const { spaces } = themes;
-
- const HEIGHT_ITEM_HEADER = hp('8%');
-
- const translateY = useAnimatedStyle(() => ({
- transform: [
- {
- translateY: interpolate(
- translationY.value,
- [20, HEIGHT_ITEM_HEADER],
- [0, -HEIGHT_ITEM_HEADER],
- Extrapolate.CLAMP,
- ),
- },
- ],
- }));
-
- const topOpacity = useAnimatedStyle(() => ({
- opacity: interpolate(
- translationY.value,
- [-HEIGHT_ITEM_HEADER, 0, 50, HEIGHT_ITEM_HEADER],
- [0, 0, 0, 1],
- Extrapolate.CLAMP,
- ),
- }));
-
- return (
-
-
-
- {headerTitle}
-
-
-
-
-
-
-
- {headerTitle}
-
-
-
-
-
-
- );
-}
diff --git a/src/components/scroll-view-header/components/header-animated/styles.ts b/src/components/scroll-view-header/components/header-animated/styles.ts
deleted file mode 100644
index 676da17..0000000
--- a/src/components/scroll-view-header/components/header-animated/styles.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-import Constants from 'expo-constants';
-import { Platform } from 'react-native';
-import Animated from 'react-native-reanimated';
-import { heightPercentageToDP as hp } from 'react-native-responsive-screen';
-import styled from 'styled-components/native';
-
-import { themes } from '@/themes';
-
-const HEIGHT_STATUS_BAR = Platform.OS === 'ios' ? Constants.statusBarHeight : 0;
-const HEIGHT_FIRST_ITEM = hp('8%');
-const HEIGHT_SECOND_ITEM = hp('8%') + HEIGHT_FIRST_ITEM + HEIGHT_STATUS_BAR;
-
-export const HeaderAnimatedContainer = styled.View`
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- background-color: ${themes.colors.black_000};
- z-index: 99999999;
-`;
-
-export const SafeArea = styled.SafeAreaView``;
-
-export const FirstItem = styled.View`
- height: ${HEIGHT_FIRST_ITEM}px;
- z-index: 2;
- padding: 0 ${themes.spaces.space_15};
- justify-content: center;
- background-color: ${themes.colors.black_000};
-`;
-
-export const SecondtItem = styled(Animated.View)`
- position: absolute;
- top: 0;
- height: ${HEIGHT_SECOND_ITEM}px;
- width: 100%;
- z-index: 1;
- padding: 0 ${themes.spaces.space_15};
- justify-content: flex-end;
- background-color: ${themes.colors.black_000};
-`;
-
-export const OpacityAnimation = styled(Animated.View)``;
diff --git a/src/components/scroll-view-header/styles.ts b/src/components/scroll-view-header/styles.ts
deleted file mode 100644
index 882b5d5..0000000
--- a/src/components/scroll-view-header/styles.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import Animated from 'react-native-reanimated';
-import styled from 'styled-components/native';
-
-import { themes } from '@/themes';
-
-export const ScrollViewHeaderContainer = styled(Animated.ScrollView)`
- flex: 1;
- background-color: ${themes.colors.black_100};
-`;
diff --git a/src/components/scroll-view/styles.ts b/src/components/scroll-view/styles.ts
deleted file mode 100644
index 743a2c2..0000000
--- a/src/components/scroll-view/styles.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import styled from 'styled-components/native';
-
-import { themes } from '@/themes';
-
-export const ScrollViewContainer = styled.ScrollView`
- flex: 1;
- background-color: ${themes.colors.black_100};
-`;
diff --git a/src/components/select-list/index.tsx b/src/components/select-list/index.tsx
deleted file mode 100644
index aaa03aa..0000000
--- a/src/components/select-list/index.tsx
+++ /dev/null
@@ -1,22 +0,0 @@
-import React from 'react';
-
-import { themes } from '@/themes';
-
-import { Text } from '../text';
-import { BorderSelect, ItemButton, Selected, SelectListContainer } from './styles';
-import { SelectListProps } from './types';
-
-export function SelectList({ data, selected, onSelected }: SelectListProps) {
- return (
-
- {data.map((item, index) => (
- onSelected(item.ref)}>
- {selected === item.ref && }
-
- {item.title}
-
-
- ))}
-
- );
-}
diff --git a/src/components/select-list/styles.ts b/src/components/select-list/styles.ts
deleted file mode 100644
index 5554df8..0000000
--- a/src/components/select-list/styles.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { widthPercentageToDP as wp } from 'react-native-responsive-screen';
-import styled from 'styled-components/native';
-
-import { themes } from '@/themes';
-
-export const SelectListContainer = styled.View``;
-
-export const ItemButton = styled.TouchableOpacity`
- padding: ${themes.spaces.space_15} 0;
- flex-direction: row;
- align-items: center;
-`;
-
-export const BorderSelect = styled.View`
- width: ${wp('4%')}px;
- height: ${wp('4%')}px;
- align-items: center;
- justify-content: center;
- border-radius: 40px;
- border: 2px solid ${themes.colors.light_cyan};
-`;
-
-export const Selected = styled.View`
- width: ${wp('2%')}px;
- height: ${wp('2%')}px;
- border-radius: 20px;
- background-color: ${themes.colors.light_cyan};
-`;
diff --git a/src/components/skeleton-loading/styles.ts b/src/components/skeleton-loading/styles.ts
deleted file mode 100644
index f9ede29..0000000
--- a/src/components/skeleton-loading/styles.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import styled from 'styled-components/native';
-
-import { SkeletonLoadingContainerProps } from './types';
-
-export const SkeletonLoadingContainer = styled.View`
- margin-top: ${({ marginT }) => marginT};
- margin-bottom: ${({ marginB }) => marginB};
- margin-right: ${({ marginR }) => marginR};
- margin-left: ${({ marginL }) => marginL};
-`;
diff --git a/src/components/skeleton-loading/types.ts b/src/components/skeleton-loading/types.ts
deleted file mode 100644
index ad7922d..0000000
--- a/src/components/skeleton-loading/types.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-export interface SkeletonLoadingContainerProps {
- marginT: string;
- marginB: string;
- marginR: string;
- marginL: string;
-}
-
-export interface SkeletonLoadingProps {
- heightPorcent: string;
- radius: number;
- marginT?: string;
- marginB?: string;
- marginR?: string;
- marginL?: string;
-}
diff --git a/src/components/space-full/index.spec.tsx b/src/components/space-full/index.spec.tsx
deleted file mode 100644
index 8f7ff7a..0000000
--- a/src/components/space-full/index.spec.tsx
+++ /dev/null
@@ -1,14 +0,0 @@
-import { render } from '@testing-library/react-native';
-import React from 'react';
-
-import { SpaceFull } from '@/components';
-
-test('Render component', () => {
- const configTest = {
- id: 'idSpaceFull',
- };
-
- const { getByTestId } = render();
-
- expect(getByTestId(configTest.id)).toBeTruthy();
-});
diff --git a/src/components/space-full/index.tsx b/src/components/space-full/index.tsx
deleted file mode 100644
index 56bf437..0000000
--- a/src/components/space-full/index.tsx
+++ /dev/null
@@ -1,7 +0,0 @@
-import React from 'react';
-
-import { SpaceFullContainer } from './styles';
-
-export function SpaceFull() {
- return ;
-}
diff --git a/src/components/space-full/styles.ts b/src/components/space-full/styles.ts
deleted file mode 100644
index fe185a8..0000000
--- a/src/components/space-full/styles.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import styled from 'styled-components/native';
-
-export const SpaceFullContainer = styled.View`
- flex: 1;
-`;
diff --git a/src/components/text-field-area/index.tsx b/src/components/text-field-area/index.tsx
deleted file mode 100644
index edb2fdb..0000000
--- a/src/components/text-field-area/index.tsx
+++ /dev/null
@@ -1,34 +0,0 @@
-import React from 'react';
-import { useTranslation } from 'react-i18next';
-
-import { themes } from '@/themes';
-
-import { FieldArea } from './styles';
-import { TextFieldAreaProps } from './types';
-
-export function TextFieldArea({ value, onChangeText }: TextFieldAreaProps) {
- const { t } = useTranslation();
- const [isFocused, setIsFocused] = React.useState(false);
-
- return (
- setIsFocused(true)}
- onBlur={() => setIsFocused(false)}
- autoCapitalize="none"
- autoCorrect={false}
- multiline
- scrollEnabled
- blurOnSubmit={true}
- cursorColor={themes.colors.white}
- placeholderTextColor={themes.colors.light_grey}
- returnKeyType="done"
- style={{ textAlignVertical: 'top' }}
- maxLength={150}
- />
- );
-}
diff --git a/src/components/text-field-area/styles.ts b/src/components/text-field-area/styles.ts
deleted file mode 100644
index 6479acc..0000000
--- a/src/components/text-field-area/styles.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import {
- heightPercentageToDP as hp,
- widthPercentageToDP as wp,
-} from 'react-native-responsive-screen';
-import styled from 'styled-components/native';
-
-import { useAppSettings } from '@/stores';
-import { themes } from '@/themes';
-
-import { FieldAreaProps } from './types';
-
-const { colors, spaces, font_sizes, border_radius, width } = themes;
-
-const { isTablet } = useAppSettings.getState();
-
-export const FieldArea = styled.TextInput`
- width: 100%;
- max-width: ${width.max_width};
- align-self: center;
- background-color: ${colors.black_000};
- border-radius: ${border_radius.radius_10};
- color: ${colors.white};
- font-size: ${wp(font_sizes.M)}px;
- font-family: 'Inter-Regular';
- height: ${hp('15%')}px;
- padding: ${spaces.space_10};
- ${({ isFocused }) =>
- isFocused && `border: ${isTablet ? '3px' : '1px'} solid ${colors.light_cyan};`}
-`;
diff --git a/src/components/text/functions/index.ts b/src/components/text/functions/index.ts
deleted file mode 100644
index 6a1085e..0000000
--- a/src/components/text/functions/index.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { schemeText } from './scheme-text';
-
-export { schemeText };
diff --git a/src/components/text/index.tsx b/src/components/text/index.tsx
deleted file mode 100644
index 2e555ce..0000000
--- a/src/components/text/index.tsx
+++ /dev/null
@@ -1,43 +0,0 @@
-import React from 'react';
-import { widthPercentageToDP as wp } from 'react-native-responsive-screen';
-
-import { useAppSettings } from '@/stores';
-import { themes } from '@/themes';
-
-import { schemeText } from './functions';
-import { TextContainer } from './styles';
-import { TextProps } from './types';
-
-export function Text({
- children,
- weight,
- size,
- color,
- marginT,
- marginB,
- marginR,
- marginL,
-}: TextProps) {
- const { isTablet } = useAppSettings(state => state);
-
- const { onFontFamily, onFontSize } = schemeText({
- weight: weight ?? 'regular',
- size: size ?? 'S',
- isTablet: isTablet,
- });
-
- return (
-
- {children}
-
- );
-}
diff --git a/src/components/text/styles.ts b/src/components/text/styles.ts
deleted file mode 100644
index c623f05..0000000
--- a/src/components/text/styles.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import styled from 'styled-components/native';
-
-import { TextContainerProps } from './types';
-
-export const TextContainer = styled.Text`
- font-size: ${({ fontSize }) => fontSize}px;
- font-family: ${({ fontFamily }) => fontFamily};
- color: ${({ color }) => color};
- margin-top: ${({ marginT }) => marginT};
- margin-bottom: ${({ marginB }) => marginB};
- margin-right: ${({ marginR }) => marginR};
- margin-left: ${({ marginL }) => marginL};
-`;
diff --git a/src/components/text/types.ts b/src/components/text/types.ts
deleted file mode 100644
index 8fd8fb6..0000000
--- a/src/components/text/types.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import React from 'react';
-
-export interface TextProps {
- children: React.ReactNode;
- weight?: 'regular' | 'medium' | 'bold';
- size?: 'XS' | 'S' | 'M' | 'L' | 'XL' | 'XXL' | 'XXXL';
- color?: string;
- marginT?: string;
- marginB?: string;
- marginR?: string;
- marginL?: string;
-}
-
-export interface TextContainerProps {
- fontFamily: 'Inter-Regular' | 'Inter-Medium' | 'Inter-Bold';
- fontSize: number;
- color: string;
- marginT: string;
- marginB: string;
- marginR: string;
- marginL: string;
-}
diff --git a/src/components/title-subtitle/index.tsx b/src/components/title-subtitle/index.tsx
deleted file mode 100644
index c192bf3..0000000
--- a/src/components/title-subtitle/index.tsx
+++ /dev/null
@@ -1,38 +0,0 @@
-import React from 'react';
-
-import { themes } from '@/themes';
-
-import { SkeletonLoading } from '../skeleton-loading';
-import { Text } from '../text';
-import { LoadingContainer, TitleSubtitleContainer } from './styles';
-import { TitleSubtitleProps } from './types';
-
-export function TitleSubtitle({
- title,
- subTitle,
- isLoading = false,
- marginB,
- marginT,
-}: TitleSubtitleProps) {
- return (
-
-
- {title}
-
- {isLoading && (
-
-
-
- )}
- {!isLoading && (
-
- {subTitle}
-
- )}
-
- );
-}
diff --git a/src/components/title-subtitle/styles.ts b/src/components/title-subtitle/styles.ts
deleted file mode 100644
index e985d2b..0000000
--- a/src/components/title-subtitle/styles.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import styled from 'styled-components/native';
-
-import { TitleSubtitleContainerProps } from './types';
-
-export const TitleSubtitleContainer = styled.View`
- margin-top: ${({ marginT }) => marginT};
- margin-bottom: ${({ marginB }) => marginB};
-`;
-
-export const LoadingContainer = styled.View`
- width: 50%;
-`;
diff --git a/src/components/title-subtitle/types.ts b/src/components/title-subtitle/types.ts
deleted file mode 100644
index 225e42b..0000000
--- a/src/components/title-subtitle/types.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-export interface TitleSubtitleProps {
- title: string;
- subTitle: string;
- isLoading?: boolean;
- marginT?: string;
- marginB?: string;
-}
-
-export interface TitleSubtitleContainerProps {
- marginT: string;
- marginB: string;
-}
diff --git a/src/components/transaction-list/index.tsx b/src/components/transaction-list/index.tsx
deleted file mode 100644
index 8821efb..0000000
--- a/src/components/transaction-list/index.tsx
+++ /dev/null
@@ -1,110 +0,0 @@
-import { NavigationProp, useNavigation } from '@react-navigation/native';
-import React from 'react';
-import { useTranslation } from 'react-i18next';
-import { heightPercentageToDP as hp } from 'react-native-responsive-screen';
-
-import { IconArrowDown, IconArrowRight, IconArrowUp } from '@/assets';
-import { calculateBalance } from '@/functions';
-import { useFormatCurrency, useFormatDate } from '@/hooks';
-import { RootStackParamListProps } from '@/routes/types';
-import { useAppSettings, useBitcoinDataPrices, useUserData } from '@/stores';
-import { themes } from '@/themes';
-
-import { SkeletonLoading } from '../skeleton-loading';
-import { Text } from '../text';
-import {
- Center,
- Circle,
- Column,
- Items,
- TextContainer,
- TransactionContainer,
- TransactionItemContainer,
- TransactionListContainer,
-} from './styles';
-
-export function TransactionList() {
- const { t } = useTranslation();
- const { data, status } = useUserData(state => state.transactions);
- const currency = useAppSettings(state => state.currency);
- const navigation = useNavigation>();
- const currentPrice = useBitcoinDataPrices(state => state.data?.current_price);
-
- const SIZE_ICON_STATUS = hp('2.5%');
- const SIZE_ICON_ARROW = hp('2%');
-
- return (
-
-
- {t('transactions')}
-
-
- {(status === 'loading' || status === null) && (
-
- )}
-
- {status === 'failed' && (
-
-
- {t('request-error-try-later')}
-
-
- )}
-
- {data.length === 0 && status === 'success' && (
-
-
- {t('you-dont-have-transactions')}
-
-
- )}
-
-
- {data.length > 0 &&
- status === 'success' &&
- data.map((item, index) => {
- if (item.transactionType === 'zero-transfer') return;
- return (
- navigation.navigate('TransactionPage', { data: item })}
- >
-
- {item.transactionType === 'incoming' && }
- {item.transactionType === 'outgoing' && }
-
-
-
-
-
- {useFormatDate(new Date(item.timestamp * 1000)).date}
-
-
- {item.transactionType === 'incoming' ? '+ ' : '- '}
- {useFormatCurrency(
- calculateBalance({
- balance: item.amount,
- currentPrice: currentPrice?.[currency],
- }),
- )}
-
-
-
-
- {useFormatDate(new Date(item.timestamp * 1000)).time}
-
-
- {item.amount} BTC
-
-
-
-
-
-
- );
- })}
-
-
- );
-}
diff --git a/src/components/transaction-list/styles.ts b/src/components/transaction-list/styles.ts
deleted file mode 100644
index fb47002..0000000
--- a/src/components/transaction-list/styles.ts
+++ /dev/null
@@ -1,69 +0,0 @@
-import { heightPercentageToDP as hp } from 'react-native-responsive-screen';
-import styled from 'styled-components/native';
-
-import { useAppSettings } from '@/stores';
-import { themes } from '@/themes';
-
-import { ItemsProps } from './types';
-
-const { colors, border_radius, spaces, width } = themes;
-
-const { isTablet } = useAppSettings.getState();
-
-const PADDING_ITEM_TABLET = `${hp('3.5%')}px`;
-const MARGIN_TOP_TRANSACTION = `${hp('5%')}px`;
-
-export const TransactionListContainer = styled.View`
- margin-top: ${isTablet ? MARGIN_TOP_TRANSACTION : spaces.space_25};
- width: 100%;
- max-width: ${width.max_width};
- align-self: center;
-`;
-
-export const TransactionContainer = styled.View`
- border-radius: ${border_radius.radius_10};
- background-color: ${colors.black_000};
-`;
-
-export const TransactionItemContainer = styled.TouchableOpacity`
- flex: 1;
- flex-direction: row;
- padding-left: ${isTablet ? spaces.space_20 : spaces.space_10};
-`;
-
-export const Items = styled.View`
- flex: 1;
- flex-direction: row;
- align-items: center;
- padding-top: ${isTablet ? PADDING_ITEM_TABLET : spaces.space_25};
- padding-bottom: ${isTablet ? PADDING_ITEM_TABLET : spaces.space_25};
- padding-right: ${isTablet ? spaces.space_20 : spaces.space_10};
- border-bottom-width: 1px;
- border-bottom-color: ${({ borderVisible }) =>
- borderVisible ? colors.dark_grey : colors.transparent};
- border-bottom-style: solid;
-`;
-
-export const TextContainer = styled.View`
- flex-direction: row;
- justify-content: space-between;
- align-items: center;
-`;
-
-export const Circle = styled.View`
- width: 50px;
- justify-content: center;
- align-items: center;
- margin-right: ${isTablet ? spaces.space_20 : spaces.space_10};
-`;
-
-export const Center = styled.View`
- width: 100%;
- justify-content: center;
- align-items: center;
-`;
-
-export const Column = styled.View`
- flex: 1;
- margin-right: ${spaces.space_15};
-`;
diff --git a/src/components/transaction-list/types.ts b/src/components/transaction-list/types.ts
deleted file mode 100644
index cae3602..0000000
--- a/src/components/transaction-list/types.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export interface ItemsProps {
- borderVisible: boolean;
-}
diff --git a/src/functions/calculate-balance/index.ts b/src/functions/calculateBalance.ts
similarity index 65%
rename from src/functions/calculate-balance/index.ts
rename to src/functions/calculateBalance.ts
index 68b285e..252c10d 100644
--- a/src/functions/calculate-balance/index.ts
+++ b/src/functions/calculateBalance.ts
@@ -1,4 +1,4 @@
-import { CalculateBalanceProps } from './types';
+import { CalculateBalanceProps } from '@/types/CalculateBalanceType';
export function calculateBalance({ balance, currentPrice }: CalculateBalanceProps) {
return Number(balance) * (currentPrice ?? 0);
diff --git a/src/pages/bitcoin-data-page/functions/currencies-formatted/index.ts b/src/functions/currenciesFormatted.ts
similarity index 82%
rename from src/pages/bitcoin-data-page/functions/currencies-formatted/index.ts
rename to src/functions/currenciesFormatted.ts
index cc036d5..5842800 100644
--- a/src/pages/bitcoin-data-page/functions/currencies-formatted/index.ts
+++ b/src/functions/currenciesFormatted.ts
@@ -1,6 +1,5 @@
-import { useFormatCurrency } from '@/hooks';
-
-import { CurrenciesFormattedProps } from './types';
+import { useFormatCurrency } from '@/hooks/useFormatCurrency';
+import { CurrenciesFormattedProps } from '@/types/CurrenciesFormattedType';
export function currenciesFormatted({ data, currency }: CurrenciesFormattedProps) {
return {
diff --git a/src/functions/index.ts b/src/functions/index.ts
deleted file mode 100644
index 0d8b975..0000000
--- a/src/functions/index.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { calculateBalance } from './calculate-balance';
-import { initializeAppSettings } from './initialize-app-settings';
-
-export { calculateBalance, initializeAppSettings };
diff --git a/src/functions/initialize-app-settings/index.ts b/src/functions/initializeAppSettings.ts
similarity index 87%
rename from src/functions/initialize-app-settings/index.ts
rename to src/functions/initializeAppSettings.ts
index b0d95dc..416ca96 100644
--- a/src/functions/initialize-app-settings/index.ts
+++ b/src/functions/initializeAppSettings.ts
@@ -1,9 +1,9 @@
import AsyncStorage from '@react-native-async-storage/async-storage';
import { getLocales } from 'expo-localization';
-import { storageKeys } from '@/helpers';
-import { useAppSettings } from '@/stores';
-import { UseAppSettingsProps } from '@/stores/use-app-settings/types';
+import { storageKeys } from '@/helpers/storageKeys';
+import { useAppSettings } from '@/stores/useAppSettings';
+import { UseAppSettingsProps } from '@/types/UseAppSettingsType';
export async function initializeAppSettings() {
const { setCurrency, setLanguage, setIsTablet } = useAppSettings.getState();
diff --git a/src/components/text/functions/scheme-text/index.ts b/src/functions/schemeText.ts
similarity index 83%
rename from src/components/text/functions/scheme-text/index.ts
rename to src/functions/schemeText.ts
index 8f7e39b..e1771d8 100644
--- a/src/components/text/functions/scheme-text/index.ts
+++ b/src/functions/schemeText.ts
@@ -1,4 +1,4 @@
-import { SchemeTextProps } from './types';
+import { SchemeTextProps } from '@/types/SchemeTextType';
export function schemeText({ weight, size, isTablet }: SchemeTextProps) {
function onFontFamily() {
@@ -16,24 +16,24 @@ export function schemeText({ weight, size, isTablet }: SchemeTextProps) {
function onFontSize() {
switch (size) {
- case 'XS':
+ case 'xs':
return '2.5%';
- case 'S':
+ case 's':
if (isTablet) return '2.5%';
return '3%';
- case 'M':
+ case 'm':
if (isTablet) return '3%';
return '3.4%';
- case 'L':
+ case 'l':
if (isTablet) return '3.4%';
return '4.5%';
- case 'XL':
+ case 'xl':
if (isTablet) return '4.5%';
return '5.5%';
- case 'XXL':
+ case 'xxl':
if (isTablet) return '5.5%';
return '6.5%';
- case 'XXXL':
+ case 'xxxl':
if (isTablet) return '6.5%';
return '10%';
default:
diff --git a/src/helpers/index.ts b/src/helpers/index.ts
deleted file mode 100644
index 7f76f03..0000000
--- a/src/helpers/index.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { storageKeys } from './storage-keys';
-
-export { storageKeys };
diff --git a/src/helpers/storage-keys/index.ts b/src/helpers/storageKeys.ts
similarity index 100%
rename from src/helpers/storage-keys/index.ts
rename to src/helpers/storageKeys.ts
diff --git a/src/helpers/themes.ts b/src/helpers/themes.ts
new file mode 100644
index 0000000..a732665
--- /dev/null
+++ b/src/helpers/themes.ts
@@ -0,0 +1,42 @@
+export const width = {
+ max_width: 800,
+};
+
+export const borderRadius = {
+ radius_5: 5,
+ radius_10: 10,
+ radius_15: 15,
+};
+
+export const spaces = {
+ space_5: 5,
+ space_10: 10,
+ space_15: 15,
+ space_20: 20,
+ space_25: 25,
+ space_30: 30,
+};
+
+export const fontSizes = {
+ xs: '3%',
+ s: '3.6%',
+ m: '4%',
+ l: '4.5%',
+ xl: '5%',
+ xxl: '6.5%',
+ xxxl: '7.6%',
+};
+
+export const colors = {
+ white: '#FFFFFF',
+ green: '#ACD9A8',
+ red: '#E17C7C',
+ light_cyan: '#B4C9FF',
+ dark_cyan: '#3E4454',
+ black_100: '#191B1F',
+ black_000: '#222329',
+ light_grey: '#BFBFBF',
+ dark_grey: '#616670',
+ black_100_50pct: 'rgba(25, 27, 31, 0.50)',
+ transparent: 'transparent',
+};
diff --git a/src/hooks/index.ts b/src/hooks/index.ts
deleted file mode 100644
index 4d55809..0000000
--- a/src/hooks/index.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { useFormatCurrency } from './use-format-currency';
-import { useFormatDate } from './use-format-date';
-import { useFormatPercentage } from './use-format-percentage';
-
-export { useFormatCurrency, useFormatDate, useFormatPercentage };
diff --git a/src/hooks/use-format-currency/index.ts b/src/hooks/useFormatCurrency.ts
similarity index 91%
rename from src/hooks/use-format-currency/index.ts
rename to src/hooks/useFormatCurrency.ts
index a637e37..3435f95 100644
--- a/src/hooks/use-format-currency/index.ts
+++ b/src/hooks/useFormatCurrency.ts
@@ -1,6 +1,6 @@
import currencyJS from 'currency.js';
-import { useAppSettings } from '@/stores';
+import { useAppSettings } from '@/stores/useAppSettings';
export function useFormatCurrency(value?: number) {
const { currency } = useAppSettings.getState();
diff --git a/src/hooks/use-format-date/index.ts b/src/hooks/useFormatDate.ts
similarity index 88%
rename from src/hooks/use-format-date/index.ts
rename to src/hooks/useFormatDate.ts
index 0405e82..4d0f6ae 100644
--- a/src/hooks/use-format-date/index.ts
+++ b/src/hooks/useFormatDate.ts
@@ -5,7 +5,7 @@ import 'moment/locale/de';
import moment from 'moment';
-import { useAppSettings } from '@/stores';
+import { useAppSettings } from '@/stores/useAppSettings';
export function useFormatDate(date: Date) {
const { language } = useAppSettings.getState();
diff --git a/src/hooks/use-format-percentage/index.ts b/src/hooks/useFormatPercentage.ts
similarity index 100%
rename from src/hooks/use-format-percentage/index.ts
rename to src/hooks/useFormatPercentage.ts
diff --git a/src/pages/bitcoin-data-page/index.tsx b/src/pages/BitcoinDataPage.tsx
similarity index 68%
rename from src/pages/bitcoin-data-page/index.tsx
rename to src/pages/BitcoinDataPage.tsx
index cb6c2b7..4247e9f 100644
--- a/src/pages/bitcoin-data-page/index.tsx
+++ b/src/pages/BitcoinDataPage.tsx
@@ -1,21 +1,24 @@
import React from 'react';
import { useTranslation } from 'react-i18next';
+import { StyleSheet, View } from 'react-native';
import { heightPercentageToDP as hp } from 'react-native-responsive-screen';
-import { ChartBitcoin, PriceBitcoin, ScrollViewHeader, TitleSubtitle } from '@/components';
-import { useFormatPercentage } from '@/hooks';
-import { useAppSettings, useBitcoinDataPrices } from '@/stores';
-import { themes } from '@/themes';
-
-import { currenciesFormatted } from './functions';
-import { PaddingContainer } from './styles';
+import { ChartBitcoin } from '@/components/ChartBitcoin';
+import { PriceBitcoin } from '@/components/PriceBitcoin';
+import { ScrollViewHeader } from '@/components/ScrollViewHeader';
+import { TitleSubtitle } from '@/components/TitleSubtitle';
+import { currenciesFormatted } from '@/functions/currenciesFormatted';
+import { spaces, width } from '@/helpers/themes';
+import { useFormatPercentage } from '@/hooks/useFormatPercentage';
+import { useAppSettings } from '@/stores/useAppSettings';
+import { useBitcoinDataPrices } from '@/stores/useBitcoinDataPrices';
export function BitcoinDataPage() {
const { t } = useTranslation();
const { data, status } = useBitcoinDataPrices(state => state);
const { currency, isTablet } = useAppSettings(state => state);
- const MARGIN_TOP = isTablet ? `${hp('3.5%')}px` : themes.spaces.space_25;
+ const MARGIN_TOP = isTablet ? hp('3.5%') : spaces.space_25;
const isLoading = status === 'loading' || status === null;
const { percent, isPositive } = useFormatPercentage(
@@ -34,7 +37,7 @@ export function BitcoinDataPage() {
return (
-
+
-
+
-
+
-
+
);
}
+
+const styles = StyleSheet.create({
+ padding: {
+ paddingHorizontal: spaces.space_15,
+ maxWidth: width.max_width,
+ width: '100%',
+ alignSelf: 'center',
+ },
+});
diff --git a/src/pages/currency-page/index.tsx b/src/pages/CurrencyPage.tsx
similarity index 74%
rename from src/pages/currency-page/index.tsx
rename to src/pages/CurrencyPage.tsx
index f5a7cf4..e3214ec 100644
--- a/src/pages/currency-page/index.tsx
+++ b/src/pages/CurrencyPage.tsx
@@ -1,9 +1,11 @@
import React from 'react';
import { useTranslation } from 'react-i18next';
-import { HeaderSwiperOptions, ScrollView, SelectList } from '@/components';
-import { useAppSettings } from '@/stores';
-import { UseAppSettingsProps } from '@/stores/use-app-settings/types';
+import { HeaderSwiperOptions } from '@/components/HeaderSwiperOptions';
+import { ScrollView } from '@/components/ScrollView';
+import { SelectList } from '@/components/SelectList';
+import { useAppSettings } from '@/stores/useAppSettings';
+import { UseAppSettingsProps } from '@/types/UseAppSettingsType';
export function CurrencyPage() {
const { t } = useTranslation();
diff --git a/src/pages/home-page/index.tsx b/src/pages/HomePage.tsx
similarity index 58%
rename from src/pages/home-page/index.tsx
rename to src/pages/HomePage.tsx
index f694e69..14a78f3 100644
--- a/src/pages/home-page/index.tsx
+++ b/src/pages/HomePage.tsx
@@ -1,13 +1,17 @@
import React from 'react';
import { useTranslation } from 'react-i18next';
-import { LimitedWidthContainer, ScrollViewHeader, TransactionList } from '@/components';
-import { calculateBalance } from '@/functions';
-import { useFormatCurrency } from '@/hooks';
-import { getBitcoinBalance } from '@/services';
-import { useAppSettings, useBitcoinDataPrices, useUserData } from '@/stores';
+import { LimitedWidthContainer } from '@/components/LimitedWidthContainer';
+import { ScrollViewHeader } from '@/components/ScrollViewHeader';
+import { TransactionList } from '@/components/TransactionList';
+import { calculateBalance } from '@/functions/calculateBalance';
+import { useFormatCurrency } from '@/hooks/useFormatCurrency';
+import { getBitcoinBalance } from '@/services/getBitcoinBalance';
+import { useAppSettings } from '@/stores/useAppSettings';
+import { useBitcoinDataPrices } from '@/stores/useBitcoinDataPrices';
+import { useUserData } from '@/stores/useUserData';
-import { CryptoCardLarge } from './components/crypto-card-large';
+import { CryptoCardLarge } from './fragments/CryptoCardLarge';
export function HomePage() {
const { t } = useTranslation();
diff --git a/src/pages/language-page/index.tsx b/src/pages/LanguagePage.tsx
similarity index 70%
rename from src/pages/language-page/index.tsx
rename to src/pages/LanguagePage.tsx
index cf7ffd6..4c17c7d 100644
--- a/src/pages/language-page/index.tsx
+++ b/src/pages/LanguagePage.tsx
@@ -1,9 +1,12 @@
import React from 'react';
import { useTranslation } from 'react-i18next';
-import { HeaderSwiperOptions, LimitedWidthContainer, ScrollView, SelectList } from '@/components';
-import { useAppSettings } from '@/stores';
-import { UseAppSettingsProps } from '@/stores/use-app-settings/types';
+import { HeaderSwiperOptions } from '@/components/HeaderSwiperOptions';
+import { LimitedWidthContainer } from '@/components/LimitedWidthContainer';
+import { ScrollView } from '@/components/ScrollView';
+import { SelectList } from '@/components/SelectList';
+import { useAppSettings } from '@/stores/useAppSettings';
+import { UseAppSettingsProps } from '@/types/UseAppSettingsType';
export function LanguagePage() {
const { t } = useTranslation();
diff --git a/src/pages/links-page/index.tsx b/src/pages/LinksPage.tsx
similarity index 86%
rename from src/pages/links-page/index.tsx
rename to src/pages/LinksPage.tsx
index 4b68d00..16704ae 100644
--- a/src/pages/links-page/index.tsx
+++ b/src/pages/LinksPage.tsx
@@ -3,7 +3,8 @@ import React from 'react';
import { heightPercentageToDP as hp } from 'react-native-responsive-screen';
import { IconGithub, IconTwitter } from '@/assets';
-import { ActionList, ScrollView } from '@/components';
+import { ActionList } from '@/components/ActionList';
+import { ScrollView } from '@/components/ScrollView';
export function LinksPage() {
const list = [
diff --git a/src/pages/local-auth-page/index.tsx b/src/pages/LocalAuthPage.tsx
similarity index 73%
rename from src/pages/local-auth-page/index.tsx
rename to src/pages/LocalAuthPage.tsx
index 9ee68f9..1f0ea41 100644
--- a/src/pages/local-auth-page/index.tsx
+++ b/src/pages/LocalAuthPage.tsx
@@ -5,16 +5,15 @@ import * as SecureStore from 'expo-secure-store';
import { setStatusBarBackgroundColor } from 'expo-status-bar';
import React from 'react';
import { useTranslation } from 'react-i18next';
-import { Platform } from 'react-native';
+import { Platform, StyleSheet, View } from 'react-native';
-import { ButtonTitleShape } from '@/components';
-import { storageKeys } from '@/helpers';
-import { RootStackParamListProps } from '@/routes/types';
-import { getBitcoinBalance } from '@/services';
-import { useBitcoinDataPrices, useUserData } from '@/stores';
-import { themes } from '@/themes';
-
-import { LocalAuthPageContainer } from './styles';
+import { ButtonTitleShape } from '@/components/ButtonTitleShape';
+import { storageKeys } from '@/helpers/storageKeys';
+import { colors } from '@/helpers/themes';
+import { getBitcoinBalance } from '@/services/getBitcoinBalance';
+import { useBitcoinDataPrices } from '@/stores/useBitcoinDataPrices';
+import { useUserData } from '@/stores/useUserData';
+import { RootStackParamListProps } from '@/types/RoutesType';
export function LocalAuthPage() {
const navigation = useNavigation>();
@@ -78,15 +77,24 @@ export function LocalAuthPage() {
}, []);
React.useEffect(() => {
- if (Platform.OS === 'android') setStatusBarBackgroundColor(themes.colors.black_100, true);
+ if (Platform.OS === 'android') setStatusBarBackgroundColor(colors.black_100, true);
return () => {
- if (Platform.OS === 'android') setStatusBarBackgroundColor(themes.colors.black_000, true);
+ if (Platform.OS === 'android') setStatusBarBackgroundColor(colors.black_000, true);
};
}, []);
return (
-
+
-
+
);
}
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: colors.black_100,
+ alignItems: 'center',
+ justifyContent: 'center',
+ },
+});
diff --git a/src/pages/public-key-page/index.tsx b/src/pages/PublicKeyPage.tsx
similarity index 73%
rename from src/pages/public-key-page/index.tsx
rename to src/pages/PublicKeyPage.tsx
index f52ae3f..c196a75 100644
--- a/src/pages/public-key-page/index.tsx
+++ b/src/pages/PublicKeyPage.tsx
@@ -2,12 +2,14 @@ import * as Clipboard from 'expo-clipboard';
import React from 'react';
import { useTranslation } from 'react-i18next';
-import { ButtonTitleGhost, LimitedWidthContainer, ScrollView, TitleSubtitle } from '@/components';
-import { useUserData } from '@/stores';
-import { themes } from '@/themes';
+import { ButtonTitleGhost } from '@/components/ButtonTitleGhost';
+import { LimitedWidthContainer } from '@/components/LimitedWidthContainer';
+import { ScrollView } from '@/components/ScrollView';
+import { TitleSubtitle } from '@/components/TitleSubtitle';
+import { spaces } from '@/helpers/themes';
+import { useUserData } from '@/stores/useUserData';
export function PublicKeyPage() {
- const { spaces } = themes;
const { t } = useTranslation();
const { key } = useUserData(state => state);
const [copy, setCopy] = React.useState({ isLoading: false, isCopied: false });
diff --git a/src/pages/register-key-page/index.tsx b/src/pages/RegisterKeyPage.tsx
similarity index 71%
rename from src/pages/register-key-page/index.tsx
rename to src/pages/RegisterKeyPage.tsx
index 09ec84c..2c72b0a 100644
--- a/src/pages/register-key-page/index.tsx
+++ b/src/pages/RegisterKeyPage.tsx
@@ -4,22 +4,19 @@ import * as LocalAuthentication from 'expo-local-authentication';
import * as SecureStore from 'expo-secure-store';
import React from 'react';
import { useTranslation } from 'react-i18next';
+import { StyleSheet, View } from 'react-native';
-import {
- ButtonTitleGhost,
- CheckBoxMessage,
- ScrollViewHeader,
- SpaceFull,
- Text,
- TextFieldArea,
-} from '@/components';
-import { storageKeys } from '@/helpers';
-import { RootStackParamListProps } from '@/routes/types';
-import { getBitcoinBalance } from '@/services';
-import { useBitcoinDataPrices, useUserData } from '@/stores';
-import { themes } from '@/themes';
-
-import { TextErrorContainer } from './styles';
+import { ButtonTitleGhost } from '@/components/ButtonTitleGhost';
+import { CheckBoxMessage } from '@/components/CheckBoxMessage';
+import { ScrollViewHeader } from '@/components/ScrollViewHeader';
+import { Text } from '@/components/Text';
+import { TextFieldArea } from '@/components/TextFieldArea';
+import { storageKeys } from '@/helpers/storageKeys';
+import { colors, spaces, width } from '@/helpers/themes';
+import { getBitcoinBalance } from '@/services/getBitcoinBalance';
+import { useBitcoinDataPrices } from '@/stores/useBitcoinDataPrices';
+import { useUserData } from '@/stores/useUserData';
+import { RootStackParamListProps } from '@/types/RoutesType';
export function RegisterKeyPage() {
const { t } = useTranslation();
@@ -74,11 +71,11 @@ export function RegisterKeyPage() {
{error.visible && (
-
-
+
+
{error.message}
-
+
)}
{showBiometricOption && (
)}
-
+
);
}
+
+const styles = StyleSheet.create({
+ textErrorContainer: {
+ width: '100%',
+ maxWidth: width.max_width,
+ alignSelf: 'center',
+ },
+ space: {
+ flex: 1,
+ },
+});
diff --git a/src/pages/settings-page/index.tsx b/src/pages/SettingsPage.tsx
similarity index 77%
rename from src/pages/settings-page/index.tsx
rename to src/pages/SettingsPage.tsx
index 59e9846..3b7b2e0 100644
--- a/src/pages/settings-page/index.tsx
+++ b/src/pages/SettingsPage.tsx
@@ -5,18 +5,16 @@ import * as SecureStore from 'expo-secure-store';
import React from 'react';
import { useTranslation } from 'react-i18next';
-import {
- ActionList,
- AlertModal,
- LimitedWidthContainer,
- ScrollViewHeader,
- Text,
-} from '@/components';
-import { initializeAppSettings } from '@/functions';
-import { storageKeys } from '@/helpers';
-import { RootStackParamListProps } from '@/routes/types';
-import { useUserData } from '@/stores';
-import { themes } from '@/themes';
+import { ActionList } from '@/components/ActionList';
+import { AlertModal } from '@/components/AlertModal';
+import { LimitedWidthContainer } from '@/components/LimitedWidthContainer';
+import { ScrollViewHeader } from '@/components/ScrollViewHeader';
+import { Text } from '@/components/Text';
+import { initializeAppSettings } from '@/functions/initializeAppSettings';
+import { storageKeys } from '@/helpers/storageKeys';
+import { spaces } from '@/helpers/themes';
+import { useUserData } from '@/stores/useUserData';
+import { RootStackParamListProps } from '@/types/RoutesType';
export function SettingsPage() {
const { t } = useTranslation();
@@ -75,7 +73,7 @@ export function SettingsPage() {
-
+
v {Constants.expoConfig?.version != null ? Constants.expoConfig.version : '-'}
diff --git a/src/pages/support-us-page/index.tsx b/src/pages/SupportUsPage.tsx
similarity index 75%
rename from src/pages/support-us-page/index.tsx
rename to src/pages/SupportUsPage.tsx
index 4874251..b781012 100644
--- a/src/pages/support-us-page/index.tsx
+++ b/src/pages/SupportUsPage.tsx
@@ -2,17 +2,14 @@ import * as Clipboard from 'expo-clipboard';
import React from 'react';
import { useTranslation } from 'react-i18next';
-import {
- ButtonTitleGhost,
- LimitedWidthContainer,
- ScrollView,
- Text,
- TitleSubtitle,
-} from '@/components';
-import { themes } from '@/themes';
+import { ButtonTitleGhost } from '@/components/ButtonTitleGhost';
+import { LimitedWidthContainer } from '@/components/LimitedWidthContainer';
+import { ScrollView } from '@/components/ScrollView';
+import { Text } from '@/components/Text';
+import { TitleSubtitle } from '@/components/TitleSubtitle';
+import { spaces } from '@/helpers/themes';
export function SupportUsPage() {
- const { spaces } = themes;
const { t } = useTranslation();
const [copy, setCopy] = React.useState({ isLoading: false, isCopied: false });
diff --git a/src/pages/terms-page/index.tsx b/src/pages/TermsPage.tsx
similarity index 60%
rename from src/pages/terms-page/index.tsx
rename to src/pages/TermsPage.tsx
index c740dda..f2862da 100644
--- a/src/pages/terms-page/index.tsx
+++ b/src/pages/TermsPage.tsx
@@ -1,36 +1,36 @@
import React from 'react';
-import { LimitedWidthContainer, ScrollView, Text } from '@/components';
-import { themes } from '@/themes';
+import { LimitedWidthContainer } from '@/components/LimitedWidthContainer';
+import { ScrollView } from '@/components/ScrollView';
+import { Text } from '@/components/Text';
+import { colors, spaces } from '@/helpers/themes';
export function TermsPage() {
- const { spaces, colors } = themes;
-
return (
-
+
1 - Security
-
+
1.1 - We do not store your public keys in databases, they are encrypted and stored on your
device;
-
+
1.2 - All information we collect is stored only on your device, we do not store it in
databases.
-
+
2 - What we collect from you
-
+
2.1 - We only collect the country in which you are accessing so that we know precisely
which language and currency to select.
-
+
3 - How we share your information
-
+
3.1 - We only share your public key with the {'"tatum.com"'} library so that we can
collect your balance information and transactions on the blockchain.
diff --git a/src/pages/transaction-page/index.tsx b/src/pages/TransactionPage.tsx
similarity index 70%
rename from src/pages/transaction-page/index.tsx
rename to src/pages/TransactionPage.tsx
index 5868ed6..0a081a3 100644
--- a/src/pages/transaction-page/index.tsx
+++ b/src/pages/TransactionPage.tsx
@@ -3,23 +3,24 @@ import React from 'react';
import { useTranslation } from 'react-i18next';
import { heightPercentageToDP as hp } from 'react-native-responsive-screen';
-import { LimitedWidthContainer, ScrollView, TitleSubtitle } from '@/components';
-import { useFormatDate } from '@/hooks';
-import { RootStackParamListProps } from '@/routes/types';
-import { useAppSettings } from '@/stores';
-import { themes } from '@/themes';
+import { LimitedWidthContainer } from '@/components/LimitedWidthContainer';
+import { ScrollView } from '@/components/ScrollView';
+import { TitleSubtitle } from '@/components/TitleSubtitle';
+import { spaces } from '@/helpers/themes';
+import { useFormatDate } from '@/hooks/useFormatDate';
+import { useAppSettings } from '@/stores/useAppSettings';
+import { RootStackParamListProps } from '@/types/RoutesType';
export function TransactionPage() {
const {
params: { data },
} = useRoute>();
- const { spaces } = themes;
const { isTablet } = useAppSettings(state => state);
const { t } = useTranslation();
const time = useFormatDate(new Date(data.timestamp * 1000));
- const MARGIN_BOTTOM = isTablet ? `${hp('3.5%')}px` : spaces.space_25;
+ const MARGIN_BOTTOM = isTablet ? hp('3.5%') : spaces.space_25;
const transactionsData = [
{
diff --git a/src/pages/bitcoin-data-page/functions/currencies-formatted/types.ts b/src/pages/bitcoin-data-page/functions/currencies-formatted/types.ts
deleted file mode 100644
index 497128b..0000000
--- a/src/pages/bitcoin-data-page/functions/currencies-formatted/types.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { UseAppSettingsProps } from '@/stores/use-app-settings/types';
-import { UseBitcoinDataPricesProps } from '@/stores/use-bitcoin-data-prices/types';
-
-export interface CurrenciesFormattedProps {
- data: UseBitcoinDataPricesProps['data'];
- currency: UseAppSettingsProps['currency'];
-}
diff --git a/src/pages/bitcoin-data-page/functions/index.ts b/src/pages/bitcoin-data-page/functions/index.ts
deleted file mode 100644
index a5fd0fc..0000000
--- a/src/pages/bitcoin-data-page/functions/index.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { currenciesFormatted } from './currencies-formatted';
-
-export { currenciesFormatted };
diff --git a/src/pages/bitcoin-data-page/styles.ts b/src/pages/bitcoin-data-page/styles.ts
deleted file mode 100644
index 5167601..0000000
--- a/src/pages/bitcoin-data-page/styles.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import styled from 'styled-components/native';
-
-import { themes } from '@/themes';
-
-export const PaddingContainer = styled.View`
- padding: 0 ${themes.spaces.space_15};
- max-width: ${themes.width.max_width};
- width: 100%;
- align-self: center;
-`;
diff --git a/src/pages/fragments/CryptoCardLarge.tsx b/src/pages/fragments/CryptoCardLarge.tsx
new file mode 100644
index 0000000..354c1fa
--- /dev/null
+++ b/src/pages/fragments/CryptoCardLarge.tsx
@@ -0,0 +1,72 @@
+import React from 'react';
+import { useTranslation } from 'react-i18next';
+import { StyleSheet, View } from 'react-native';
+import { heightPercentageToDP as hp } from 'react-native-responsive-screen';
+
+import { IconBitcoin, IconCardano } from '@/assets';
+import { SkeletonLoading } from '@/components/SkeletonLoading';
+import { Text } from '@/components/Text';
+import { borderRadius, colors, spaces } from '@/helpers/themes';
+import { useAppSettings } from '@/stores/useAppSettings';
+import { CryptoCardLargeProps } from '@/types/CryptoCardLargeType';
+
+export function CryptoCardLarge({ type, price, balance, status }: CryptoCardLargeProps) {
+ const { t } = useTranslation();
+ const { isTablet } = useAppSettings.getState();
+
+ return (
+
+
+ {type === 'bitcoin' && }
+ {type === 'cardano' && }
+
+ {type === 'bitcoin' && 'Bitcoin'}
+ {type === 'cardano' && 'Cardano'}
+
+
+
+ {status === 'success' && (
+
+ {price.substring(0, price.length - 2)}
+
+ {price.substring(price.length - 2, price.length)}
+
+
+ )}
+ {status === 'failed' && (
+
+ {t('request-error-try-later')}
+
+ )}
+ {(status === 'loading' || status === null) && (
+
+ )}
+
+ {balance} {type === 'bitcoin' ? 'BTC' : 'ADA'}
+
+
+
+ );
+}
+
+const styles = StyleSheet.create({
+ container: {
+ width: 'auto',
+ height: hp('28%'),
+ maxHeight: 450,
+ borderRadius: borderRadius.radius_10,
+ padding: spaces.space_15,
+ backgroundColor: colors.black_000,
+ position: 'relative',
+ },
+ row: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ priceContainer: {
+ position: 'absolute',
+ paddingLeft: spaces.space_15,
+ justifyContent: 'center',
+ height: hp('28%'),
+ },
+});
diff --git a/src/pages/home-page/components/crypto-card-large/index.tsx b/src/pages/home-page/components/crypto-card-large/index.tsx
deleted file mode 100644
index 2843c55..0000000
--- a/src/pages/home-page/components/crypto-card-large/index.tsx
+++ /dev/null
@@ -1,50 +0,0 @@
-import React from 'react';
-import { useTranslation } from 'react-i18next';
-import { heightPercentageToDP as hp } from 'react-native-responsive-screen';
-
-import { IconBitcoin, IconCardano } from '@/assets';
-import { SkeletonLoading, Text } from '@/components';
-import { useAppSettings } from '@/stores';
-import { themes } from '@/themes';
-
-import { CryptoCardLargeContainer, PriceContainer, Row } from './styles';
-import { CryptoCardLargeProps } from './types';
-
-export function CryptoCardLarge({ type, price, balance, status }: CryptoCardLargeProps) {
- const { t } = useTranslation();
- const { isTablet } = useAppSettings.getState();
-
- return (
-
-
- {type === 'bitcoin' && }
- {type === 'cardano' && }
-
- {type === 'bitcoin' && 'Bitcoin'}
- {type === 'cardano' && 'Cardano'}
-
-
-
- {status === 'success' && (
-
- {price.substring(0, price.length - 2)}
-
- {price.substring(price.length - 2, price.length)}
-
-
- )}
- {status === 'failed' && (
-
- {t('request-error-try-later')}
-
- )}
- {(status === 'loading' || status === null) && (
-
- )}
-
- {balance} {type === 'bitcoin' ? 'BTC' : 'ADA'}
-
-
-
- );
-}
diff --git a/src/pages/home-page/components/crypto-card-large/styles.ts b/src/pages/home-page/components/crypto-card-large/styles.ts
deleted file mode 100644
index fdebbd2..0000000
--- a/src/pages/home-page/components/crypto-card-large/styles.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { heightPercentageToDP as hp } from 'react-native-responsive-screen';
-import styled from 'styled-components/native';
-
-import { themes } from '@/themes';
-
-const { colors, border_radius, spaces } = themes;
-
-export const CryptoCardLargeContainer = styled.View`
- width: auto;
- height: ${hp('28%')}px;
- max-height: 450px;
- border-radius: ${border_radius.radius_10};
- padding: ${spaces.space_15};
- background-color: ${colors.black_000};
- position: relative;
-`;
-
-export const Row = styled.View`
- flex-direction: row;
- align-items: center;
-`;
-
-export const PriceContainer = styled.View`
- position: absolute;
- padding-left: ${spaces.space_15};
- justify-content: center;
- height: ${hp('28%')}px;
-`;
diff --git a/src/pages/local-auth-page/styles.ts b/src/pages/local-auth-page/styles.ts
deleted file mode 100644
index 7b37d77..0000000
--- a/src/pages/local-auth-page/styles.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import styled from 'styled-components/native';
-
-import { themes } from '@/themes';
-
-export const LocalAuthPageContainer = styled.View`
- flex: 1;
- background-color: ${themes.colors.black_100};
- align-items: center;
- justify-content: center;
-`;
diff --git a/src/pages/register-key-page/styles.ts b/src/pages/register-key-page/styles.ts
deleted file mode 100644
index 2a60c56..0000000
--- a/src/pages/register-key-page/styles.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import styled from 'styled-components/native';
-
-import { themes } from '@/themes';
-
-export const TextErrorContainer = styled.View`
- width: 100%;
- max-width: ${themes.width.max_width};
- align-self: center;
-`;
diff --git a/src/pages/transaction-page/types.ts b/src/pages/transaction-page/types.ts
deleted file mode 100644
index bd05894..0000000
--- a/src/pages/transaction-page/types.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { AddressTransaction } from '@tatumio/tatum';
-
-export interface TransactionPageProps {
- data: AddressTransaction;
-}
diff --git a/src/routes/index.tsx b/src/routes/RootStack.tsx
similarity index 73%
rename from src/routes/index.tsx
rename to src/routes/RootStack.tsx
index f5974c2..4e1f442 100644
--- a/src/routes/index.tsx
+++ b/src/routes/RootStack.tsx
@@ -4,22 +4,23 @@ import React from 'react';
import { useTranslation } from 'react-i18next';
import { Animated } from 'react-native';
-import { BitcoinDataPage } from '@/pages/bitcoin-data-page';
-import { CurrencyPage } from '@/pages/currency-page';
-import { HomePage } from '@/pages/home-page';
-import { LanguagePage } from '@/pages/language-page';
-import { LinksPage } from '@/pages/links-page';
-import { LocalAuthPage } from '@/pages/local-auth-page';
-import { PublicKeyPage } from '@/pages/public-key-page';
-import { RegisterKeyPage } from '@/pages/register-key-page';
-import { SettingsPage } from '@/pages/settings-page';
-import { SupportUsPage } from '@/pages/support-us-page';
-import { TermsPage } from '@/pages/terms-page';
-import { TransactionPage } from '@/pages/transaction-page';
-import { themes } from '@/themes';
+import { colors } from '@/helpers/themes';
+import { BitcoinDataPage } from '@/pages/BitcoinDataPage';
+import { CurrencyPage } from '@/pages/CurrencyPage';
+import { HomePage } from '@/pages/HomePage';
+import { LanguagePage } from '@/pages/LanguagePage';
+import { LinksPage } from '@/pages/LinksPage';
+import { LocalAuthPage } from '@/pages/LocalAuthPage';
+import { PublicKeyPage } from '@/pages/PublicKeyPage';
+import { RegisterKeyPage } from '@/pages/RegisterKeyPage';
+import { SettingsPage } from '@/pages/SettingsPage';
+import { SupportUsPage } from '@/pages/SupportUsPage';
+import { TermsPage } from '@/pages/TermsPage';
+import { TransactionPage } from '@/pages/TransactionPage';
+import { RootStackParamListProps } from '@/types/RoutesType';
-import { HeaderSwiperIndicator, TabBar } from './components';
-import { RootStackParamListProps } from './types';
+import { HeaderSwiperIndicator } from './fragments/HeaderSwiperIndicator';
+import { TabBar } from './fragments/TabBar';
const Stack = createStackNavigator();
const Tab = createBottomTabNavigator();
@@ -36,7 +37,7 @@ fixAnimateToIOS.addListener(() => {
return;
});
-export function Routes() {
+export function RootStack() {
const { t } = useTranslation();
return (
@@ -44,7 +45,7 @@ export function Routes() {
initialRouteName="LocalAuthPage"
screenOptions={{
headerShown: false,
- cardStyle: { backgroundColor: themes.colors.black_100 },
+ cardStyle: { backgroundColor: colors.black_100 },
}}
>
@@ -118,7 +119,7 @@ function TabsRoutes() {
(
)}
diff --git a/src/routes/components/header-swiper-indicator/index.spec.tsx b/src/routes/__test__/HeaderSwiperIndicator.spec.tsx
similarity index 84%
rename from src/routes/components/header-swiper-indicator/index.spec.tsx
rename to src/routes/__test__/HeaderSwiperIndicator.spec.tsx
index 4f72447..4553629 100644
--- a/src/routes/components/header-swiper-indicator/index.spec.tsx
+++ b/src/routes/__test__/HeaderSwiperIndicator.spec.tsx
@@ -1,7 +1,7 @@
import { render } from '@testing-library/react-native';
import React from 'react';
-import { HeaderSwiperIndicator } from '@/routes/components';
+import { HeaderSwiperIndicator } from '../fragments/HeaderSwiperIndicator';
test('Render component', () => {
const configTest = {
diff --git a/src/routes/components/tab-bar/index.spec.tsx b/src/routes/__test__/TabBar.spec.tsx
similarity index 85%
rename from src/routes/components/tab-bar/index.spec.tsx
rename to src/routes/__test__/TabBar.spec.tsx
index 6ee12fb..5347de7 100644
--- a/src/routes/components/tab-bar/index.spec.tsx
+++ b/src/routes/__test__/TabBar.spec.tsx
@@ -5,8 +5,9 @@ import {
import { NavigationHelpers, ParamListBase, TabNavigationState } from '@react-navigation/native';
import { render } from '@testing-library/react-native';
import React from 'react';
+import { SafeAreaProvider } from 'react-native-safe-area-context';
-import { TabBar } from '@/routes/components';
+import { TabBar } from '../fragments/TabBar';
test('Render component', () => {
const configTest = {
@@ -49,11 +50,13 @@ test('Render component', () => {
};
const { getByTestId } = render(
- ,
+
+
+ ,
);
expect(getByTestId(configTest.id)).toBeTruthy();
diff --git a/src/routes/components/header-swiper-indicator/index.tsx b/src/routes/components/header-swiper-indicator/index.tsx
deleted file mode 100644
index 87bae1a..0000000
--- a/src/routes/components/header-swiper-indicator/index.tsx
+++ /dev/null
@@ -1,27 +0,0 @@
-import { setStatusBarBackgroundColor } from 'expo-status-bar';
-import React from 'react';
-import { Platform } from 'react-native';
-
-import { Text } from '@/components';
-import { themes } from '@/themes';
-
-import { HeaderSwiperIndicatorContainer, Indicator } from './styles';
-import { HeaderSwiperIndicatorProps } from './types';
-
-export function HeaderSwiperIndicator({ title }: HeaderSwiperIndicatorProps) {
- React.useEffect(() => {
- if (Platform.OS === 'android') setStatusBarBackgroundColor('black', true);
- return () => {
- if (Platform.OS === 'android') setStatusBarBackgroundColor(themes.colors.black_000, true);
- };
- }, []);
-
- return (
-
-
-
- {title}
-
-
- );
-}
diff --git a/src/routes/components/header-swiper-indicator/styles.ts b/src/routes/components/header-swiper-indicator/styles.ts
deleted file mode 100644
index 233faae..0000000
--- a/src/routes/components/header-swiper-indicator/styles.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import styled from 'styled-components/native';
-
-import { themes } from '@/themes';
-
-export const HeaderSwiperIndicatorContainer = styled.View`
- background-color: ${themes.colors.black_000};
- padding: ${themes.spaces.space_10} ${themes.spaces.space_15};
- justify-content: center;
- align-items: center;
-`;
-
-export const Indicator = styled.View`
- width: 35px;
- height: 5px;
- border-radius: 10px;
- margin-bottom: ${themes.spaces.space_5};
- background-color: ${themes.colors.dark_grey};
-`;
diff --git a/src/routes/components/index.ts b/src/routes/components/index.ts
deleted file mode 100644
index 18bde97..0000000
--- a/src/routes/components/index.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { HeaderSwiperIndicator } from './header-swiper-indicator';
-import { TabBar } from './tab-bar';
-
-export { HeaderSwiperIndicator, TabBar };
diff --git a/src/routes/components/tab-bar/index.tsx b/src/routes/components/tab-bar/index.tsx
deleted file mode 100644
index d8ae382..0000000
--- a/src/routes/components/tab-bar/index.tsx
+++ /dev/null
@@ -1,70 +0,0 @@
-import React from 'react';
-import { heightPercentageToDP as hp } from 'react-native-responsive-screen';
-
-import { IconChart, IconHome, IconSettings } from '@/assets';
-import { themes } from '@/themes';
-
-import { ButtonsContainer, Indicator, SafeArea, TabBarContainer, Touch } from './styles';
-import { TabBarProps } from './types';
-
-export function TabBar({ state, descriptors, navigation }: TabBarProps) {
- const { colors } = themes;
- const SIZE_ICON = hp('2.5%');
-
- return (
-
-
-
- {state.routes.map((route, index) => {
- const isFocused = state.index === index;
- const { options } = descriptors[route.key];
-
- const onPress = () => {
- const event = navigation.emit({
- type: 'tabPress',
- target: route.key,
- canPreventDefault: true,
- });
-
- if (!isFocused && !event.defaultPrevented) {
- navigation.navigate(route.name);
- }
- };
-
- return (
-
-
- {route.name === 'HomePage' && (
-
- )}
- {route.name === 'BitcoinDataPage' && (
-
- )}
- {route.name === 'SettingsPage' && (
-
- )}
-
-
- );
- })}
-
-
-
- );
-}
diff --git a/src/routes/components/tab-bar/styles.ts b/src/routes/components/tab-bar/styles.ts
deleted file mode 100644
index 1b2562b..0000000
--- a/src/routes/components/tab-bar/styles.ts
+++ /dev/null
@@ -1,38 +0,0 @@
-import { heightPercentageToDP as hp } from 'react-native-responsive-screen';
-import styled from 'styled-components/native';
-
-import { themes } from '@/themes';
-
-import { IndicatorProps } from './types';
-
-const { colors } = themes;
-
-const HEIGHT_TAB_BAR = hp('8%');
-
-export const TabBarContainer = styled.View`
- background-color: ${colors.black_000};
-`;
-
-export const SafeArea = styled.SafeAreaView``;
-
-export const Touch = styled.TouchableOpacity`
- flex: 1;
- align-items: center;
- justify-content: center;
-`;
-
-export const Indicator = styled.View`
- background-color: ${({ isFocused }) => (isFocused ? colors.dark_cyan : colors.transparent)};
- width: ${hp('8.5%')}px;
- max-width: 120px;
- height: ${hp('4.5%')}px;
- align-items: center;
- justify-content: center;
- border-radius: 100px;
-`;
-
-export const ButtonsContainer = styled.View`
- height: ${HEIGHT_TAB_BAR}px;
- width: 100%;
- flex-direction: row;
-`;
diff --git a/src/routes/fragments/HeaderSwiperIndicator.tsx b/src/routes/fragments/HeaderSwiperIndicator.tsx
new file mode 100644
index 0000000..e6b0496
--- /dev/null
+++ b/src/routes/fragments/HeaderSwiperIndicator.tsx
@@ -0,0 +1,42 @@
+import { setStatusBarBackgroundColor } from 'expo-status-bar';
+import React from 'react';
+import { Platform, StyleSheet, View } from 'react-native';
+
+import { Text } from '@/components/Text';
+import { borderRadius, colors, spaces } from '@/helpers/themes';
+import { HeaderSwiperIndicatorProps } from '@/types/HeaderSwiperIndicatorType';
+
+export function HeaderSwiperIndicator({ title }: HeaderSwiperIndicatorProps) {
+ React.useEffect(() => {
+ if (Platform.OS === 'android') setStatusBarBackgroundColor('black', true);
+ return () => {
+ if (Platform.OS === 'android') setStatusBarBackgroundColor(colors.black_000, true);
+ };
+ }, []);
+
+ return (
+
+
+
+ {title}
+
+
+ );
+}
+
+const styles = StyleSheet.create({
+ container: {
+ backgroundColor: colors.black_000,
+ paddingHorizontal: spaces.space_15,
+ paddingVertical: spaces.space_10,
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ indicator: {
+ width: 35,
+ height: 5,
+ borderRadius: borderRadius.radius_10,
+ marginBottom: spaces.space_5,
+ backgroundColor: colors.dark_grey,
+ },
+});
diff --git a/src/routes/fragments/TabBar.tsx b/src/routes/fragments/TabBar.tsx
new file mode 100644
index 0000000..ebfab43
--- /dev/null
+++ b/src/routes/fragments/TabBar.tsx
@@ -0,0 +1,96 @@
+import React from 'react';
+import { StyleSheet, TouchableOpacity, View } from 'react-native';
+import { heightPercentageToDP as hp } from 'react-native-responsive-screen';
+import { useSafeAreaInsets } from 'react-native-safe-area-context';
+
+import { IconChart, IconHome, IconSettings } from '@/assets';
+import { colors } from '@/helpers/themes';
+import { TabBarProps } from '@/types/TabBarType';
+
+export function TabBar({ state, descriptors, navigation }: TabBarProps) {
+ const SIZE_ICON = hp('2.5%');
+ const insets = useSafeAreaInsets();
+ const HEIGHT_TABBAR = hp('8%') + insets.bottom;
+
+ return (
+
+
+ {state.routes.map((route, index) => {
+ const isFocused = state.index === index;
+ const { options } = descriptors[route.key];
+
+ const onPress = () => {
+ const event = navigation.emit({
+ type: 'tabPress',
+ target: route.key,
+ canPreventDefault: true,
+ });
+
+ if (!isFocused && !event.defaultPrevented) {
+ navigation.navigate(route.name);
+ }
+ };
+
+ return (
+
+
+ {route.name === 'HomePage' && (
+
+ )}
+ {route.name === 'BitcoinDataPage' && (
+
+ )}
+ {route.name === 'SettingsPage' && (
+
+ )}
+
+
+ );
+ })}
+
+
+ );
+}
+
+const styles = StyleSheet.create({
+ container: {
+ backgroundColor: colors.black_000,
+ },
+ button: {
+ flex: 1,
+ alignItems: 'center',
+ justifyContent: 'center',
+ },
+ indicator: {
+ width: hp('8.5%'),
+ maxWidth: 120,
+ height: hp('4.5%'),
+ alignItems: 'center',
+ justifyContent: 'center',
+ borderRadius: 100,
+ },
+ buttonContainer: {
+ flex: 1,
+ width: '100%',
+ flexDirection: 'row',
+ },
+});
diff --git a/src/services/get-bitcoin-balance/index.ts b/src/services/getBitcoinBalance.ts
similarity index 86%
rename from src/services/get-bitcoin-balance/index.ts
rename to src/services/getBitcoinBalance.ts
index 08646e9..52501e5 100644
--- a/src/services/get-bitcoin-balance/index.ts
+++ b/src/services/getBitcoinBalance.ts
@@ -1,6 +1,6 @@
import { AddressBalance, Bitcoin, Network, ResponseDto, TatumSDK } from '@tatumio/tatum';
-import { useUserData } from '@/stores/use-user-data';
+import { useUserData } from '@/stores/useUserData';
export async function getBitcoinBalance(address: string) {
const { setBalance } = useUserData.getState();
@@ -9,7 +9,7 @@ export async function getBitcoinBalance(address: string) {
const tatum = await TatumSDK.init({
network: Network.BITCOIN,
apiKey: {
- v1: process.env.EXPO_PUBLIC_TATUM_SDK_V1,
+ v4: process.env.EXPO_PUBLIC_TATUM_SDK_V4,
},
});
diff --git a/src/services/get-bitcoin-data-prices/index.ts b/src/services/getBitcoinDataPrices.ts
similarity index 92%
rename from src/services/get-bitcoin-data-prices/index.ts
rename to src/services/getBitcoinDataPrices.ts
index 910cddf..6575858 100644
--- a/src/services/get-bitcoin-data-prices/index.ts
+++ b/src/services/getBitcoinDataPrices.ts
@@ -1,6 +1,6 @@
import axios from 'axios';
-import { ResponseData } from './types';
+import { ResponseData } from '@/types/GetBitcoinDataPricesType';
export async function getBitcoinDataPrices() {
try {
diff --git a/src/services/get-bitcoin-historical-price/index.ts b/src/services/getBitcoinHistoricalPrice.ts
similarity index 88%
rename from src/services/get-bitcoin-historical-price/index.ts
rename to src/services/getBitcoinHistoricalPrice.ts
index b88bae5..b8adcad 100644
--- a/src/services/get-bitcoin-historical-price/index.ts
+++ b/src/services/getBitcoinHistoricalPrice.ts
@@ -1,6 +1,6 @@
import axios from 'axios';
-import { ResponseData } from './types';
+import { ResponseData } from '@/types/GetBitcoinHistoricalPriceType';
export async function getBitcoinHistoricalPrice() {
try {
diff --git a/src/services/get-bitcoin-transactions/index.ts b/src/services/getBitcoinTransactions.ts
similarity index 92%
rename from src/services/get-bitcoin-transactions/index.ts
rename to src/services/getBitcoinTransactions.ts
index d6a1b74..1cff6fd 100644
--- a/src/services/get-bitcoin-transactions/index.ts
+++ b/src/services/getBitcoinTransactions.ts
@@ -5,7 +5,7 @@ export async function getBitcoinTransactions(address: string) {
const tatum = await TatumSDK.init({
network: Network.BITCOIN,
apiKey: {
- v1: process.env.EXPO_PUBLIC_TATUM_SDK_V1,
+ v4: process.env.EXPO_PUBLIC_TATUM_SDK_V4,
},
});
diff --git a/src/services/index.ts b/src/services/index.ts
deleted file mode 100644
index 635360e..0000000
--- a/src/services/index.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { getBitcoinBalance } from './get-bitcoin-balance';
-import { getBitcoinDataPrices } from './get-bitcoin-data-prices';
-import { getBitcoinHistoricalPrice } from './get-bitcoin-historical-price';
-import { getBitcoinTransactions } from './get-bitcoin-transactions';
-
-export {
- getBitcoinBalance,
- getBitcoinDataPrices,
- getBitcoinHistoricalPrice,
- getBitcoinTransactions,
-};
diff --git a/src/stores/index.ts b/src/stores/index.ts
deleted file mode 100644
index a831e65..0000000
--- a/src/stores/index.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { useAppSettings } from './use-app-settings';
-import { useBitcoinDataPrices } from './use-bitcoin-data-prices';
-import { useBitcoinHistoricalPrice } from './use-bitcoin-historical-price';
-import { useUserData } from './use-user-data';
-
-export { useAppSettings, useBitcoinDataPrices, useBitcoinHistoricalPrice, useUserData };
diff --git a/src/stores/use-app-settings/index.ts b/src/stores/useAppSettings.ts
similarity index 86%
rename from src/stores/use-app-settings/index.ts
rename to src/stores/useAppSettings.ts
index 48ffc33..bf75ff0 100644
--- a/src/stores/use-app-settings/index.ts
+++ b/src/stores/useAppSettings.ts
@@ -3,9 +3,8 @@ import * as Device from 'expo-device';
import i18n from 'i18next';
import { create } from 'zustand';
-import { storageKeys } from '@/helpers';
-
-import { UseAppSettingsProps } from './types';
+import { storageKeys } from '@/helpers/storageKeys';
+import { UseAppSettingsProps } from '@/types/UseAppSettingsType';
export const useAppSettings = create(set => ({
currency: 'usd',
diff --git a/src/stores/use-bitcoin-data-prices/index.ts b/src/stores/useBitcoinDataPrices.ts
similarity index 70%
rename from src/stores/use-bitcoin-data-prices/index.ts
rename to src/stores/useBitcoinDataPrices.ts
index 93805bb..3c11906 100644
--- a/src/stores/use-bitcoin-data-prices/index.ts
+++ b/src/stores/useBitcoinDataPrices.ts
@@ -1,8 +1,7 @@
import { create } from 'zustand';
-import { getBitcoinDataPrices } from '@/services';
-
-import { UseBitcoinDataPricesProps } from './types';
+import { getBitcoinDataPrices } from '@/services/getBitcoinDataPrices';
+import { UseBitcoinDataPricesProps } from '@/types/UseBitcoinDataPricesType';
export const useBitcoinDataPrices = create(set => ({
data: null,
diff --git a/src/stores/use-bitcoin-historical-price/index.ts b/src/stores/useBitcoinHistoricalPrice.ts
similarity index 68%
rename from src/stores/use-bitcoin-historical-price/index.ts
rename to src/stores/useBitcoinHistoricalPrice.ts
index d667eee..ba50a4b 100644
--- a/src/stores/use-bitcoin-historical-price/index.ts
+++ b/src/stores/useBitcoinHistoricalPrice.ts
@@ -1,8 +1,7 @@
import { create } from 'zustand';
-import { getBitcoinHistoricalPrice } from '@/services';
-
-import { UseBitcoinHistoricalPriceProps } from './types';
+import { getBitcoinHistoricalPrice } from '@/services/getBitcoinHistoricalPrice';
+import { UseBitcoinHistoricalPriceProps } from '@/types/UseBitcoinHistoricalPriceType';
export const useBitcoinHistoricalPrice = create(set => ({
data: [],
diff --git a/src/stores/use-user-data/index.ts b/src/stores/useUserData.ts
similarity index 81%
rename from src/stores/use-user-data/index.ts
rename to src/stores/useUserData.ts
index 3b8f120..5e12f57 100644
--- a/src/stores/use-user-data/index.ts
+++ b/src/stores/useUserData.ts
@@ -1,8 +1,7 @@
import { create } from 'zustand';
-import { getBitcoinTransactions } from '@/services/get-bitcoin-transactions';
-
-import { UseUserDataProps } from './types';
+import { getBitcoinTransactions } from '@/services/getBitcoinTransactions';
+import { UseUserDataProps } from '@/types/UseUserDataType';
export const useUserData = create(set => ({
key: '',
diff --git a/src/themes/index.ts b/src/themes/index.ts
deleted file mode 100644
index 80668d0..0000000
--- a/src/themes/index.ts
+++ /dev/null
@@ -1,42 +0,0 @@
-import { DefaultTheme } from 'styled-components';
-
-export const themes: DefaultTheme = {
- width: {
- max_width: '800px',
- },
- border_radius: {
- radius_5: '5px',
- radius_10: '10px',
- radius_15: '15px',
- },
- spaces: {
- space_5: '5px',
- space_10: '10px',
- space_15: '15px',
- space_20: '20px',
- space_25: '25px',
- space_30: '30px',
- },
- font_sizes: {
- XS: '3%',
- S: '3.6%',
- M: '4%',
- L: '4.5%',
- XL: '5%',
- XXL: '6.5%',
- XXXL: '7.6%',
- },
- colors: {
- white: '#FFFFFF',
- green: '#ACD9A8',
- red: '#E17C7C',
- light_cyan: '#B4C9FF',
- dark_cyan: '#3E4454',
- black_100: '#191B1F',
- black_000: '#222329',
- light_grey: '#BFBFBF',
- dark_grey: '#616670',
- black_100_50pct: 'rgba(25, 27, 31, 0.50)',
- transparent: 'transparent',
- },
-};
diff --git a/src/themes/styled.d.ts b/src/themes/styled.d.ts
deleted file mode 100644
index 03ae9ce..0000000
--- a/src/themes/styled.d.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-import 'styled-components';
-
-declare module 'styled-components' {
- export interface DefaultTheme {
- width: {
- max_width: string;
- };
- border_radius: {
- radius_5: string;
- radius_10: string;
- radius_15: string;
- };
- spaces: {
- space_5: string;
- space_10: string;
- space_15: string;
- space_20: string;
- space_25: string;
- space_30: string;
- };
- font_sizes: {
- XS: string;
- S: string;
- M: string;
- L: string;
- XL: string;
- XXL: string;
- XXXL: string;
- };
- colors: {
- white: string;
- green: string;
- red: string;
- light_cyan: string;
- dark_cyan: string;
- black_100: string;
- black_000: string;
- light_grey: string;
- dark_grey: string;
- black_100_50pct: string;
- transparent: string;
- };
- }
-}
diff --git a/src/components/action-list/types.ts b/src/types/ActionListType.ts
similarity index 100%
rename from src/components/action-list/types.ts
rename to src/types/ActionListType.ts
diff --git a/src/components/alert-modal/types.ts b/src/types/AlertModalType.ts
similarity index 100%
rename from src/components/alert-modal/types.ts
rename to src/types/AlertModalType.ts
diff --git a/src/types/ButtonTitleGhostType.ts b/src/types/ButtonTitleGhostType.ts
new file mode 100644
index 0000000..d1ce8e0
--- /dev/null
+++ b/src/types/ButtonTitleGhostType.ts
@@ -0,0 +1,15 @@
+import { SchemeTextProps } from './SchemeTextType';
+
+export interface ButtonTitleGhostProps {
+ testID?: string;
+ title: string;
+ onPress: () => void;
+ disabled?: boolean;
+ size?: 'large' | 'small';
+ buttonsWeight?: SchemeTextProps['weight'];
+ loading?: boolean;
+ marginT?: number;
+ marginB?: number;
+ marginR?: number;
+ marginL?: number;
+}
diff --git a/src/types/ButtonTitleShapeType.ts b/src/types/ButtonTitleShapeType.ts
new file mode 100644
index 0000000..1cd1da0
--- /dev/null
+++ b/src/types/ButtonTitleShapeType.ts
@@ -0,0 +1,11 @@
+export interface ButtonTitleShapeProps {
+ title: string;
+ onPress: () => void;
+ disabled?: boolean;
+ size?: 'large' | 'small';
+ loading?: boolean;
+ marginT?: number;
+ marginB?: number;
+ marginR?: number;
+ marginL?: number;
+}
diff --git a/src/functions/calculate-balance/types.ts b/src/types/CalculateBalanceType.ts
similarity index 100%
rename from src/functions/calculate-balance/types.ts
rename to src/types/CalculateBalanceType.ts
diff --git a/src/components/chart-bitcoin/components/chart-main/types.ts b/src/types/ChartMainType.ts
similarity index 100%
rename from src/components/chart-bitcoin/components/chart-main/types.ts
rename to src/types/ChartMainType.ts
diff --git a/src/components/check-box-message/types.ts b/src/types/CheckboxMessageType.ts
similarity index 100%
rename from src/components/check-box-message/types.ts
rename to src/types/CheckboxMessageType.ts
diff --git a/src/pages/home-page/components/crypto-card-large/types.ts b/src/types/CryptoCardLargeType.ts
similarity index 100%
rename from src/pages/home-page/components/crypto-card-large/types.ts
rename to src/types/CryptoCardLargeType.ts
diff --git a/src/types/CurrenciesFormattedType.ts b/src/types/CurrenciesFormattedType.ts
new file mode 100644
index 0000000..cc899cf
--- /dev/null
+++ b/src/types/CurrenciesFormattedType.ts
@@ -0,0 +1,7 @@
+import { UseAppSettingsProps } from './UseAppSettingsType';
+import { UseBitcoinDataPricesProps } from './UseBitcoinDataPricesType';
+
+export interface CurrenciesFormattedProps {
+ data: UseBitcoinDataPricesProps['data'];
+ currency: UseAppSettingsProps['currency'];
+}
diff --git a/src/components/chart-bitcoin/components/custom-line/types.ts b/src/types/CustomLineType.ts
similarity index 100%
rename from src/components/chart-bitcoin/components/custom-line/types.ts
rename to src/types/CustomLineType.ts
diff --git a/src/components/chart-bitcoin/components/custom-tooltip/types.ts b/src/types/CustomTooltipType.ts
similarity index 100%
rename from src/components/chart-bitcoin/components/custom-tooltip/types.ts
rename to src/types/CustomTooltipType.ts
diff --git a/src/services/get-bitcoin-data-prices/types.ts b/src/types/GetBitcoinDataPricesType.ts
similarity index 100%
rename from src/services/get-bitcoin-data-prices/types.ts
rename to src/types/GetBitcoinDataPricesType.ts
diff --git a/src/services/get-bitcoin-historical-price/types.ts b/src/types/GetBitcoinHistoricalPriceType.ts
similarity index 100%
rename from src/services/get-bitcoin-historical-price/types.ts
rename to src/types/GetBitcoinHistoricalPriceType.ts
diff --git a/src/components/scroll-view-header/components/header-animated/types.ts b/src/types/HeaderAnimatedType.ts
similarity index 100%
rename from src/components/scroll-view-header/components/header-animated/types.ts
rename to src/types/HeaderAnimatedType.ts
diff --git a/src/routes/components/header-swiper-indicator/types.ts b/src/types/HeaderSwiperIndicatorType.ts
similarity index 100%
rename from src/routes/components/header-swiper-indicator/types.ts
rename to src/types/HeaderSwiperIndicatorType.ts
diff --git a/src/components/header-swiper-options/types.ts b/src/types/HeaderSwiperOptionsType.ts
similarity index 100%
rename from src/components/header-swiper-options/types.ts
rename to src/types/HeaderSwiperOptionsType.ts
diff --git a/src/assets/icons/types.ts b/src/types/IconType.ts
similarity index 100%
rename from src/assets/icons/types.ts
rename to src/types/IconType.ts
diff --git a/src/components/limited-width-container/types.ts b/src/types/LimitedWidthContainerType.ts
similarity index 100%
rename from src/components/limited-width-container/types.ts
rename to src/types/LimitedWidthContainerType.ts
diff --git a/src/components/price-bitcoin/types.ts b/src/types/PriceBitcoinType.ts
similarity index 100%
rename from src/components/price-bitcoin/types.ts
rename to src/types/PriceBitcoinType.ts
diff --git a/src/routes/types.ts b/src/types/RoutesType.ts
similarity index 76%
rename from src/routes/types.ts
rename to src/types/RoutesType.ts
index a64fae9..963d412 100644
--- a/src/routes/types.ts
+++ b/src/types/RoutesType.ts
@@ -1,4 +1,4 @@
-import { TransactionPageProps } from '@/pages/transaction-page/types';
+import { AddressTransaction } from '@tatumio/tatum';
export type RootStackParamListProps = {
RegisterKeyPage: undefined;
@@ -6,7 +6,9 @@ export type RootStackParamListProps = {
TabsRoutes: undefined;
HomePage: undefined;
BitcoinDataPage: undefined;
- TransactionPage: TransactionPageProps;
+ TransactionPage: {
+ data: AddressTransaction;
+ };
SettingsPage: undefined;
PublicKeyPage: undefined;
LanguagePage: undefined;
diff --git a/src/components/text/functions/scheme-text/types.ts b/src/types/SchemeTextType.ts
similarity index 57%
rename from src/components/text/functions/scheme-text/types.ts
rename to src/types/SchemeTextType.ts
index 0b0ff61..461ea1d 100644
--- a/src/components/text/functions/scheme-text/types.ts
+++ b/src/types/SchemeTextType.ts
@@ -1,5 +1,7 @@
+import { StylesProps } from './StylesType';
+
export interface SchemeTextProps {
weight: 'regular' | 'medium' | 'bold';
- size: 'XS' | 'S' | 'M' | 'L' | 'XL' | 'XXL' | 'XXXL';
+ size: StylesProps['fontSize'];
isTablet: boolean | null;
}
diff --git a/src/components/scroll-view-header/types.ts b/src/types/ScrollViewHeaderType.ts
similarity index 100%
rename from src/components/scroll-view-header/types.ts
rename to src/types/ScrollViewHeaderType.ts
diff --git a/src/components/scroll-view/types.ts b/src/types/ScrollViewType.ts
similarity index 100%
rename from src/components/scroll-view/types.ts
rename to src/types/ScrollViewType.ts
diff --git a/src/components/select-list/types.ts b/src/types/SelectListType.ts
similarity index 100%
rename from src/components/select-list/types.ts
rename to src/types/SelectListType.ts
diff --git a/src/types/SkeletonLoadingType.ts b/src/types/SkeletonLoadingType.ts
new file mode 100644
index 0000000..db3f7eb
--- /dev/null
+++ b/src/types/SkeletonLoadingType.ts
@@ -0,0 +1,8 @@
+export interface SkeletonLoadingProps {
+ heightPorcent: string;
+ radius: number;
+ marginT?: number;
+ marginB?: number;
+ marginR?: number;
+ marginL?: number;
+}
diff --git a/src/types/StylesType.ts b/src/types/StylesType.ts
new file mode 100644
index 0000000..70b21af
--- /dev/null
+++ b/src/types/StylesType.ts
@@ -0,0 +1,4 @@
+export interface StylesProps {
+ fontFamily: 'Inter-Regular' | 'Inter-Medium' | 'Inter-Bold';
+ fontSize: 'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl' | 'xxxl';
+}
diff --git a/src/routes/components/tab-bar/types.ts b/src/types/TabBarType.ts
similarity index 100%
rename from src/routes/components/tab-bar/types.ts
rename to src/types/TabBarType.ts
diff --git a/src/components/text-field-area/types.ts b/src/types/TextFieldAreaType.ts
similarity index 100%
rename from src/components/text-field-area/types.ts
rename to src/types/TextFieldAreaType.ts
diff --git a/src/types/TextType.ts b/src/types/TextType.ts
new file mode 100644
index 0000000..c0a38a0
--- /dev/null
+++ b/src/types/TextType.ts
@@ -0,0 +1,14 @@
+import React from 'react';
+
+import { StylesProps } from './StylesType';
+
+export interface TextProps {
+ children: React.ReactNode;
+ weight?: 'regular' | 'medium' | 'bold';
+ size?: StylesProps['fontSize'];
+ color?: string;
+ marginT?: number;
+ marginB?: number;
+ marginR?: number;
+ marginL?: number;
+}
diff --git a/src/types/TitleSubtitleType.ts b/src/types/TitleSubtitleType.ts
new file mode 100644
index 0000000..c25a040
--- /dev/null
+++ b/src/types/TitleSubtitleType.ts
@@ -0,0 +1,7 @@
+export interface TitleSubtitleProps {
+ title: string;
+ subTitle: string;
+ isLoading?: boolean;
+ marginT?: number;
+ marginB?: number;
+}
diff --git a/src/stores/use-app-settings/types.ts b/src/types/UseAppSettingsType.ts
similarity index 100%
rename from src/stores/use-app-settings/types.ts
rename to src/types/UseAppSettingsType.ts
diff --git a/src/stores/use-bitcoin-data-prices/types.ts b/src/types/UseBitcoinDataPricesType.ts
similarity index 77%
rename from src/stores/use-bitcoin-data-prices/types.ts
rename to src/types/UseBitcoinDataPricesType.ts
index bb2a2cd..6441937 100644
--- a/src/stores/use-bitcoin-data-prices/types.ts
+++ b/src/types/UseBitcoinDataPricesType.ts
@@ -1,4 +1,4 @@
-import { ResponseData } from '@/services/get-bitcoin-data-prices/types';
+import { ResponseData } from './GetBitcoinDataPricesType';
export interface DataProps {
data: ResponseData['data']['market_data'] | null;
diff --git a/src/stores/use-bitcoin-historical-price/types.ts b/src/types/UseBitcoinHistoricalPriceType.ts
similarity index 100%
rename from src/stores/use-bitcoin-historical-price/types.ts
rename to src/types/UseBitcoinHistoricalPriceType.ts
diff --git a/src/stores/use-user-data/types.ts b/src/types/UseUserDataType.ts
similarity index 100%
rename from src/stores/use-user-data/types.ts
rename to src/types/UseUserDataType.ts
diff --git a/yarn.lock b/yarn.lock
index a15efd5..2cea777 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -20,22 +20,6 @@
"@jridgewell/gen-mapping" "^0.3.0"
"@jridgewell/trace-mapping" "^0.3.9"
-"@babel/cli@^7.21.0":
- version "7.22.10"
- resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.22.10.tgz#25e4bbd8d0a0d8b4b389e1b5e2d7a238bd4c1b75"
- integrity sha512-rM9ZMmaII630zGvtMtQ3P4GyHs28CHLYE9apLG7L8TgaSqcfoIGrlLSLsh4Q8kDTdZQQEXZm1M0nQtOvU/2heg==
- dependencies:
- "@jridgewell/trace-mapping" "^0.3.17"
- commander "^4.0.1"
- convert-source-map "^1.1.0"
- fs-readdir-recursive "^1.1.0"
- glob "^7.2.0"
- make-dir "^2.1.0"
- slash "^2.0.0"
- optionalDependencies:
- "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3"
- chokidar "^3.4.0"
-
"@babel/code-frame@7.10.4", "@babel/code-frame@~7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a"
@@ -56,7 +40,7 @@
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730"
integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==
-"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.13.16", "@babel/core@^7.20.0", "@babel/core@^7.21.0":
+"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.13.16", "@babel/core@^7.20.0":
version "7.22.11"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.11.tgz#8033acaa2aa24c3f814edaaa057f3ce0ba559c24"
integrity sha512-lh7RJrtPdhibbxndr6/xx0w8+CVlY5FJZiaSz908Fpy+G0xkBFTvwLcKJFF4PJxVfGhVWNebikpWGnOoC71juQ==
@@ -174,7 +158,7 @@
dependencies:
"@babel/types" "^7.22.5"
-"@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.22.5":
+"@babel/helper-module-imports@^7.22.5":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c"
integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==
@@ -306,13 +290,6 @@
"@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
"@babel/plugin-transform-optional-chaining" "^7.22.5"
-"@babel/plugin-external-helpers@^7.18.6":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-external-helpers/-/plugin-external-helpers-7.22.5.tgz#92b0705b74756123f289388320e0e12c407fdf9a"
- integrity sha512-ngnNEWxmykPk82mH4ajZT0qTztr3Je6hrMuKAslZVM8G1YZTENJSYwrIGtt6KOtznug3exmAtF4so/nPqJuA4A==
- dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
-
"@babel/plugin-proposal-async-generator-functions@^7.0.0":
version "7.20.7"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326"
@@ -323,7 +300,7 @@
"@babel/helper-remap-async-to-generator" "^7.18.9"
"@babel/plugin-syntax-async-generators" "^7.8.4"
-"@babel/plugin-proposal-class-properties@^7.0.0", "@babel/plugin-proposal-class-properties@^7.13.0", "@babel/plugin-proposal-class-properties@^7.18.0", "@babel/plugin-proposal-class-properties@^7.18.6":
+"@babel/plugin-proposal-class-properties@^7.0.0", "@babel/plugin-proposal-class-properties@^7.13.0", "@babel/plugin-proposal-class-properties@^7.18.0":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3"
integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==
@@ -374,7 +351,7 @@
"@babel/helper-plugin-utils" "^7.18.6"
"@babel/plugin-syntax-numeric-separator" "^7.10.4"
-"@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.12.13", "@babel/plugin-proposal-object-rest-spread@^7.20.0", "@babel/plugin-proposal-object-rest-spread@^7.20.7":
+"@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.12.13", "@babel/plugin-proposal-object-rest-spread@^7.20.0":
version "7.20.7"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a"
integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==
@@ -897,20 +874,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-react-display-name@^7.0.0", "@babel/plugin-transform-react-display-name@^7.22.5":
+"@babel/plugin-transform-react-display-name@^7.0.0":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz#3c4326f9fce31c7968d6cb9debcaf32d9e279a2b"
integrity sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw==
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-react-jsx-development@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz#e716b6edbef972a92165cd69d92f1255f7e73e87"
- integrity sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==
- dependencies:
- "@babel/plugin-transform-react-jsx" "^7.22.5"
-
"@babel/plugin-transform-react-jsx-self@^7.0.0":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.22.5.tgz#ca2fdc11bc20d4d46de01137318b13d04e481d8e"
@@ -925,7 +895,7 @@
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-react-jsx@^7.0.0", "@babel/plugin-transform-react-jsx@^7.12.17", "@babel/plugin-transform-react-jsx@^7.22.5":
+"@babel/plugin-transform-react-jsx@^7.0.0", "@babel/plugin-transform-react-jsx@^7.12.17":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz#932c291eb6dd1153359e2a90cb5e557dcf068416"
integrity sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==
@@ -936,14 +906,6 @@
"@babel/plugin-syntax-jsx" "^7.22.5"
"@babel/types" "^7.22.5"
-"@babel/plugin-transform-react-pure-annotations@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz#1f58363eef6626d6fa517b95ac66fe94685e32c0"
- integrity sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA==
- dependencies:
- "@babel/helper-annotate-as-pure" "^7.22.5"
- "@babel/helper-plugin-utils" "^7.22.5"
-
"@babel/plugin-transform-regenerator@^7.22.10":
version "7.22.10"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz#8ceef3bd7375c4db7652878b0241b2be5d0c3cca"
@@ -1048,7 +1010,7 @@
"@babel/helper-create-regexp-features-plugin" "^7.22.5"
"@babel/helper-plugin-utils" "^7.22.5"
-"@babel/preset-env@^7.20.0", "@babel/preset-env@^7.20.2":
+"@babel/preset-env@^7.20.0":
version "7.22.10"
resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.10.tgz#3263b9fe2c8823d191d28e61eac60a79f9ce8a0f"
integrity sha512-riHpLb1drNkpLlocmSyEg4oYJIQFeXAK/d7rI6mbD0XsvoTOOweXDmQPG/ErxsEhWk3rl3Q/3F6RFQlVFS8m0A==
@@ -1152,19 +1114,7 @@
"@babel/types" "^7.4.4"
esutils "^2.0.2"
-"@babel/preset-react@^7.18.6":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.22.5.tgz#c4d6058fbf80bccad02dd8c313a9aaa67e3c3dd6"
- integrity sha512-M+Is3WikOpEJHgR385HbuCITPTaPRaNkibTEa9oiofmJvIsrceb4yp9RL9Kb+TE8LznmeyZqpP+Lopwcx59xPQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
- "@babel/helper-validator-option" "^7.22.5"
- "@babel/plugin-transform-react-display-name" "^7.22.5"
- "@babel/plugin-transform-react-jsx" "^7.22.5"
- "@babel/plugin-transform-react-jsx-development" "^7.22.5"
- "@babel/plugin-transform-react-pure-annotations" "^7.22.5"
-
-"@babel/preset-typescript@^7.13.0", "@babel/preset-typescript@^7.16.7", "@babel/preset-typescript@^7.21.0", "@babel/preset-typescript@^7.21.5":
+"@babel/preset-typescript@^7.13.0", "@babel/preset-typescript@^7.16.7", "@babel/preset-typescript@^7.21.5":
version "7.22.11"
resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.22.11.tgz#f218cd0345524ac888aa3dc32f029de5b064b575"
integrity sha512-tWY5wyCZYBGY7IlalfKI1rLiGlIfnwsRHZqlky0HVv8qviwQ1Uo/05M6+s+TcTCVa6Bmoo2uJW5TMFX6Wa4qVg==
@@ -1191,13 +1141,20 @@
resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310"
integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==
-"@babel/runtime@^7.0.0", "@babel/runtime@^7.20.0", "@babel/runtime@^7.20.6", "@babel/runtime@^7.8.4":
+"@babel/runtime@^7.0.0", "@babel/runtime@^7.20.0", "@babel/runtime@^7.8.4":
version "7.22.11"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.11.tgz#7a9ba3bbe406ad6f9e8dd4da2ece453eb23a77a4"
integrity sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA==
dependencies:
regenerator-runtime "^0.14.0"
+"@babel/runtime@^7.22.5", "@babel/runtime@^7.23.2":
+ version "7.23.8"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.8.tgz#8ee6fe1ac47add7122902f257b8ddf55c898f650"
+ integrity sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==
+ dependencies:
+ regenerator-runtime "^0.14.0"
+
"@babel/template@^7.0.0", "@babel/template@^7.22.5", "@babel/template@^7.3.3":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec"
@@ -1207,7 +1164,7 @@
"@babel/parser" "^7.22.5"
"@babel/types" "^7.22.5"
-"@babel/traverse@^7.20.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.22.11":
+"@babel/traverse@^7.20.0", "@babel/traverse@^7.22.11":
version "7.22.11"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.11.tgz#71ebb3af7a05ff97280b83f05f8865ac94b2027c"
integrity sha512-mzAenteTfomcB7mfPtyi+4oe5BZ6MXxWcn4CX+h4IRJ+OOGXBrWU6jDQavkQI9Vuc5P+donFabBfFCcmWka9lQ==
@@ -1251,28 +1208,11 @@
dependencies:
"@emotion/memoize" "0.7.4"
-"@emotion/is-prop-valid@^1.2.1":
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz#23116cf1ed18bfeac910ec6436561ecb1a3885cc"
- integrity sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==
- dependencies:
- "@emotion/memoize" "^0.8.1"
-
"@emotion/memoize@0.7.4":
version "0.7.4"
resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb"
integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==
-"@emotion/memoize@^0.8.1":
- version "0.8.1"
- resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.1.tgz#c1ddb040429c6d21d38cc945fe75c818cfb68e17"
- integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==
-
-"@emotion/unitless@^0.8.0":
- version "0.8.1"
- resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.1.tgz#182b5a4704ef8ad91bde93f7a860a88fd92c79a3"
- integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==
-
"@eslint-community/eslint-utils@^4.2.0":
version "4.4.0"
resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
@@ -1998,11 +1938,6 @@
hey-listen "^1.0.8"
tslib "^2.3.1"
-"@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3":
- version "2.1.8-no-fsevents.3"
- resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz#323d72dd25103d0c4fbdce89dadf574a787b1f9b"
- integrity sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==
-
"@nodelib/fs.scandir@2.1.5":
version "2.1.5"
resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
@@ -2047,44 +1982,44 @@
dependencies:
merge-options "^3.0.4"
-"@react-native-community/cli-clean@11.3.6":
- version "11.3.6"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-11.3.6.tgz#43a06cbee1a5480da804debc4f94662a197720f2"
- integrity sha512-jOOaeG5ebSXTHweq1NznVJVAFKtTFWL4lWgUXl845bCGX7t1lL8xQNWHKwT8Oh1pGR2CI3cKmRjY4hBg+pEI9g==
+"@react-native-community/cli-clean@11.3.7":
+ version "11.3.7"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-11.3.7.tgz#cb4c2f225f78593412c2d191b55b8570f409a48f"
+ integrity sha512-twtsv54ohcRyWVzPXL3F9VHGb4Qhn3slqqRs3wEuRzjR7cTmV2TIO2b1VhaqF4HlCgNd+cGuirvLtK2JJyaxMg==
dependencies:
- "@react-native-community/cli-tools" "11.3.6"
+ "@react-native-community/cli-tools" "11.3.7"
chalk "^4.1.2"
execa "^5.0.0"
prompts "^2.4.0"
-"@react-native-community/cli-config@11.3.6":
- version "11.3.6"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-11.3.6.tgz#6d3636a8a3c4542ebb123eaf61bbbc0c2a1d2a6b"
- integrity sha512-edy7fwllSFLan/6BG6/rznOBCLPrjmJAE10FzkEqNLHowi0bckiAPg1+1jlgQ2qqAxV5kuk+c9eajVfQvPLYDA==
+"@react-native-community/cli-config@11.3.7":
+ version "11.3.7"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-11.3.7.tgz#4ce95548252ecb094b576369abebf9867c95d277"
+ integrity sha512-FDBLku9xskS+bx0YFJFLCmUJhEZ4/MMSC9qPYOGBollWYdgE7k/TWI0IeYFmMALAnbCdKQAYP5N29N55Tad8lg==
dependencies:
- "@react-native-community/cli-tools" "11.3.6"
+ "@react-native-community/cli-tools" "11.3.7"
chalk "^4.1.2"
cosmiconfig "^5.1.0"
deepmerge "^4.3.0"
glob "^7.1.3"
joi "^17.2.1"
-"@react-native-community/cli-debugger-ui@11.3.6":
- version "11.3.6"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-11.3.6.tgz#1eb2276450f270a938686b49881fe232a08c01c4"
- integrity sha512-jhMOSN/iOlid9jn/A2/uf7HbC3u7+lGktpeGSLnHNw21iahFBzcpuO71ekEdlmTZ4zC/WyxBXw9j2ka33T358w==
+"@react-native-community/cli-debugger-ui@11.3.7":
+ version "11.3.7"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-11.3.7.tgz#2147b73313af8de3c9b396406d5d344b904cf2bb"
+ integrity sha512-aVmKuPKHZENR8SrflkMurZqeyLwbKieHdOvaZCh1Nn/0UC5CxWcyST2DB2XQboZwsvr3/WXKJkSUO+SZ1J9qTQ==
dependencies:
serve-static "^1.13.1"
-"@react-native-community/cli-doctor@11.3.6":
- version "11.3.6"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-11.3.6.tgz#fa33ee00fe5120af516aa0f17fe3ad50270976e7"
- integrity sha512-UT/Tt6omVPi1j6JEX+CObc85eVFghSZwy4GR9JFMsO7gNg2Tvcu1RGWlUkrbmWMAMHw127LUu6TGK66Ugu1NLA==
+"@react-native-community/cli-doctor@11.3.7":
+ version "11.3.7"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-11.3.7.tgz#7d5f5b1aea78134bba713fa97795986345ff1344"
+ integrity sha512-YEHUqWISOHnsl5+NM14KHelKh68Sr5/HeEZvvNdIcvcKtZic3FU7Xd1WcbNdo3gCq5JvzGFfufx02Tabh5zmrg==
dependencies:
- "@react-native-community/cli-config" "11.3.6"
- "@react-native-community/cli-platform-android" "11.3.6"
- "@react-native-community/cli-platform-ios" "11.3.6"
- "@react-native-community/cli-tools" "11.3.6"
+ "@react-native-community/cli-config" "11.3.7"
+ "@react-native-community/cli-platform-android" "11.3.7"
+ "@react-native-community/cli-platform-ios" "11.3.7"
+ "@react-native-community/cli-tools" "11.3.7"
chalk "^4.1.2"
command-exists "^1.2.8"
envinfo "^7.7.2"
@@ -2100,64 +2035,64 @@
wcwidth "^1.0.1"
yaml "^2.2.1"
-"@react-native-community/cli-hermes@11.3.6":
- version "11.3.6"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-11.3.6.tgz#b1acc7feff66ab0859488e5812b3b3e8b8e9434c"
- integrity sha512-O55YAYGZ3XynpUdePPVvNuUPGPY0IJdctLAOHme73OvS80gNwfntHDXfmY70TGHWIfkK2zBhA0B+2v8s5aTyTA==
+"@react-native-community/cli-hermes@11.3.7":
+ version "11.3.7"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-11.3.7.tgz#091e730a1f8bace6c3729e8744bad6141002e0e8"
+ integrity sha512-chkKd8n/xeZkinRvtH6QcYA8rjNOKU3S3Lw/3Psxgx+hAYV0Gyk95qJHTalx7iu+PwjOOqqvCkJo5jCkYLkoqw==
dependencies:
- "@react-native-community/cli-platform-android" "11.3.6"
- "@react-native-community/cli-tools" "11.3.6"
+ "@react-native-community/cli-platform-android" "11.3.7"
+ "@react-native-community/cli-tools" "11.3.7"
chalk "^4.1.2"
hermes-profile-transformer "^0.0.6"
ip "^1.1.5"
-"@react-native-community/cli-platform-android@11.3.6":
- version "11.3.6"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-11.3.6.tgz#6f3581ca4eed3deec7edba83c1bc467098c8167b"
- integrity sha512-ZARrpLv5tn3rmhZc//IuDM1LSAdYnjUmjrp58RynlvjLDI4ZEjBAGCQmgysRgXAsK7ekMrfkZgemUczfn9td2A==
+"@react-native-community/cli-platform-android@11.3.7":
+ version "11.3.7"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-11.3.7.tgz#7845bc48258b6bb55df208a23b3690647f113995"
+ integrity sha512-WGtXI/Rm178UQb8bu1TAeFC/RJvYGnbHpULXvE20GkmeJ1HIrMjkagyk6kkY3Ej25JAP2R878gv+TJ/XiRhaEg==
dependencies:
- "@react-native-community/cli-tools" "11.3.6"
+ "@react-native-community/cli-tools" "11.3.7"
chalk "^4.1.2"
execa "^5.0.0"
glob "^7.1.3"
logkitty "^0.7.1"
-"@react-native-community/cli-platform-ios@11.3.6":
- version "11.3.6"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-11.3.6.tgz#0fa58d01f55d85618c4218925509a4be77867dab"
- integrity sha512-tZ9VbXWiRW+F+fbZzpLMZlj93g3Q96HpuMsS6DRhrTiG+vMQ3o6oPWSEEmMGOvJSYU7+y68Dc9ms2liC7VD6cw==
+"@react-native-community/cli-platform-ios@11.3.7":
+ version "11.3.7"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-11.3.7.tgz#87478f907634713b7236c77870446a5ca1f35ff1"
+ integrity sha512-Z/8rseBput49EldX7MogvN6zJlWzZ/4M97s2P+zjS09ZoBU7I0eOKLi0N9wx+95FNBvGQQ/0P62bB9UaFQH2jw==
dependencies:
- "@react-native-community/cli-tools" "11.3.6"
+ "@react-native-community/cli-tools" "11.3.7"
chalk "^4.1.2"
execa "^5.0.0"
fast-xml-parser "^4.0.12"
glob "^7.1.3"
ora "^5.4.1"
-"@react-native-community/cli-plugin-metro@11.3.6":
- version "11.3.6"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-11.3.6.tgz#2d632c304313435c9ea104086901fbbeba0f1882"
- integrity sha512-D97racrPX3069ibyabJNKw9aJpVcaZrkYiEzsEnx50uauQtPDoQ1ELb/5c6CtMhAEGKoZ0B5MS23BbsSZcLs2g==
+"@react-native-community/cli-plugin-metro@11.3.7":
+ version "11.3.7"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-11.3.7.tgz#2e8a9deb30b40495c5c1347a1837a824400fa00f"
+ integrity sha512-0WhgoBVGF1f9jXcuagQmtxpwpfP+2LbLZH4qMyo6OtYLWLG13n2uRep+8tdGzfNzl1bIuUTeE9yZSAdnf9LfYQ==
dependencies:
- "@react-native-community/cli-server-api" "11.3.6"
- "@react-native-community/cli-tools" "11.3.6"
+ "@react-native-community/cli-server-api" "11.3.7"
+ "@react-native-community/cli-tools" "11.3.7"
chalk "^4.1.2"
execa "^5.0.0"
- metro "0.76.7"
- metro-config "0.76.7"
- metro-core "0.76.7"
- metro-react-native-babel-transformer "0.76.7"
- metro-resolver "0.76.7"
- metro-runtime "0.76.7"
+ metro "0.76.8"
+ metro-config "0.76.8"
+ metro-core "0.76.8"
+ metro-react-native-babel-transformer "0.76.8"
+ metro-resolver "0.76.8"
+ metro-runtime "0.76.8"
readline "^1.3.0"
-"@react-native-community/cli-server-api@11.3.6":
- version "11.3.6"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-11.3.6.tgz#3a16039518f7f3865f85f8f54b19174448bbcdbb"
- integrity sha512-8GUKodPnURGtJ9JKg8yOHIRtWepPciI3ssXVw5jik7+dZ43yN8P5BqCoDaq8e1H1yRer27iiOfT7XVnwk8Dueg==
+"@react-native-community/cli-server-api@11.3.7":
+ version "11.3.7"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-11.3.7.tgz#2cce54b3331c9c51b9067129c297ab2e9a142216"
+ integrity sha512-yoFyGdvR3HxCnU6i9vFqKmmSqFzCbnFSnJ29a+5dppgPRetN+d//O8ard/YHqHzToFnXutAFf2neONn23qcJAg==
dependencies:
- "@react-native-community/cli-debugger-ui" "11.3.6"
- "@react-native-community/cli-tools" "11.3.6"
+ "@react-native-community/cli-debugger-ui" "11.3.7"
+ "@react-native-community/cli-tools" "11.3.7"
compression "^1.7.1"
connect "^3.6.5"
errorhandler "^1.5.1"
@@ -2166,10 +2101,10 @@
serve-static "^1.13.1"
ws "^7.5.1"
-"@react-native-community/cli-tools@11.3.6":
- version "11.3.6"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-11.3.6.tgz#ec213b8409917a56e023595f148c84b9cb3ad871"
- integrity sha512-JpmUTcDwAGiTzLsfMlIAYpCMSJ9w2Qlf7PU7mZIRyEu61UzEawyw83DkqfbzDPBuRwRnaeN44JX2CP/yTO3ThQ==
+"@react-native-community/cli-tools@11.3.7":
+ version "11.3.7"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-11.3.7.tgz#37aa7efc7b4a1b7077d541f1d7bb11a2ab7b6ff2"
+ integrity sha512-peyhP4TV6Ps1hk+MBHTFaIR1eI3u+OfGBvr5r0wPwo3FAJvldRinMgcB/TcCcOBXVORu7ba1XYjkubPeYcqAyA==
dependencies:
appdirsjs "^1.2.4"
chalk "^4.1.2"
@@ -2181,27 +2116,27 @@
semver "^7.5.2"
shell-quote "^1.7.3"
-"@react-native-community/cli-types@11.3.6":
- version "11.3.6"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-11.3.6.tgz#34012f1d0cb1c4039268828abc07c9c69f2e15be"
- integrity sha512-6DxjrMKx5x68N/tCJYVYRKAtlRHbtUVBZrnAvkxbRWFD9v4vhNgsPM0RQm8i2vRugeksnao5mbnRGpS6c0awCw==
+"@react-native-community/cli-types@11.3.7":
+ version "11.3.7"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-11.3.7.tgz#12fe7cff3da08bd27e11116531b2e001939854b9"
+ integrity sha512-OhSr/TiDQkXjL5YOs8+hvGSB+HltLn5ZI0+A3DCiMsjUgTTsYh+Z63OtyMpNjrdCEFcg0MpfdU2uxstCS6Dc5g==
dependencies:
joi "^17.2.1"
-"@react-native-community/cli@11.3.6":
- version "11.3.6"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-11.3.6.tgz#d92618d75229eaf6c0391a6b075684eba5d9819f"
- integrity sha512-bdwOIYTBVQ9VK34dsf6t3u6vOUU5lfdhKaAxiAVArjsr7Je88Bgs4sAbsOYsNK3tkE8G77U6wLpekknXcanlww==
- dependencies:
- "@react-native-community/cli-clean" "11.3.6"
- "@react-native-community/cli-config" "11.3.6"
- "@react-native-community/cli-debugger-ui" "11.3.6"
- "@react-native-community/cli-doctor" "11.3.6"
- "@react-native-community/cli-hermes" "11.3.6"
- "@react-native-community/cli-plugin-metro" "11.3.6"
- "@react-native-community/cli-server-api" "11.3.6"
- "@react-native-community/cli-tools" "11.3.6"
- "@react-native-community/cli-types" "11.3.6"
+"@react-native-community/cli@11.3.7":
+ version "11.3.7"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-11.3.7.tgz#564c0054269d8385fa9d301750b2e56dbb5c0cc9"
+ integrity sha512-Ou8eDlF+yh2rzXeCTpMPYJ2fuqsusNOhmpYPYNQJQ2h6PvaF30kPomflgRILems+EBBuggRtcT+I+1YH4o/q6w==
+ dependencies:
+ "@react-native-community/cli-clean" "11.3.7"
+ "@react-native-community/cli-config" "11.3.7"
+ "@react-native-community/cli-debugger-ui" "11.3.7"
+ "@react-native-community/cli-doctor" "11.3.7"
+ "@react-native-community/cli-hermes" "11.3.7"
+ "@react-native-community/cli-plugin-metro" "11.3.7"
+ "@react-native-community/cli-server-api" "11.3.7"
+ "@react-native-community/cli-tools" "11.3.7"
+ "@react-native-community/cli-types" "11.3.7"
chalk "^4.1.2"
commander "^9.4.1"
execa "^5.0.0"
@@ -2216,14 +2151,17 @@
resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.72.0.tgz#c82a76a1d86ec0c3907be76f7faf97a32bbed05d"
integrity sha512-Im93xRJuHHxb1wniGhBMsxLwcfzdYreSZVQGDoMJgkd6+Iky61LInGEHnQCTN0fKNYF1Dvcofb4uMmE1RQHXHQ==
-"@react-native/codegen@^0.72.6":
- version "0.72.6"
- resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.72.6.tgz#029cf61f82f5c6872f0b2ce58f27c4239a5586c8"
- integrity sha512-idTVI1es/oopN0jJT/0jB6nKdvTUKE3757zA5+NPXZTeB46CIRbmmos4XBiAec8ufu9/DigLPbHTYAaMNZJ6Ig==
+"@react-native/codegen@^0.72.7":
+ version "0.72.8"
+ resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.72.8.tgz#0593f628e1310f430450a9479fbb4be35e7b63d6"
+ integrity sha512-jQCcBlXV7B7ap5VlHhwIPieYz89yiRgwd2FPUBu+unz+kcJ6pAiB2U8RdLDmyIs8fiWd+Vq1xxaWs4TR329/ng==
dependencies:
"@babel/parser" "^7.20.0"
flow-parser "^0.206.0"
+ glob "^7.1.1"
+ invariant "^2.2.4"
jscodeshift "^0.14.0"
+ mkdirp "^0.5.1"
nullthrows "^1.1.1"
"@react-native/gradle-plugin@^0.72.11":
@@ -2259,46 +2197,46 @@
invariant "^2.2.4"
nullthrows "^1.1.1"
-"@react-navigation/bottom-tabs@^6.5.7":
- version "6.5.8"
- resolved "https://registry.yarnpkg.com/@react-navigation/bottom-tabs/-/bottom-tabs-6.5.8.tgz#9536c6e45154abc183c363d07c94991e10b14856"
- integrity sha512-0aa/jXea+LyBgR5NoRNWGKw0aFhjHwCkusigMRXIrCA4kINauDcAO0w0iFbZeKfaTCVAix5kK5UxDJJ2aJpevg==
+"@react-navigation/bottom-tabs@^6.5.11":
+ version "6.5.11"
+ resolved "https://registry.yarnpkg.com/@react-navigation/bottom-tabs/-/bottom-tabs-6.5.11.tgz#b6e67a3aa19e60ed9c1139fa0253586c479832d5"
+ integrity sha512-CBN/NOdxnMvmjw+AJQI1kltOYaClTZmGec5pQ3ZNTPX86ytbIOylDIITKMfTgHZcIEFQDymx1SHeS++PIL3Szw==
dependencies:
- "@react-navigation/elements" "^1.3.18"
+ "@react-navigation/elements" "^1.3.21"
color "^4.2.3"
warn-once "^0.1.0"
-"@react-navigation/core@^6.4.9":
- version "6.4.9"
- resolved "https://registry.yarnpkg.com/@react-navigation/core/-/core-6.4.9.tgz#aa09ce534f5393427cb993cf242abdbd848fb2c7"
- integrity sha512-G9GH7bP9x0qqupxZnkSftnkn4JoXancElTvFc8FVGfEvxnxP+gBo3wqcknyBi7M5Vad4qecsYjCOa9wqsftv9g==
+"@react-navigation/core@^6.4.10":
+ version "6.4.10"
+ resolved "https://registry.yarnpkg.com/@react-navigation/core/-/core-6.4.10.tgz#0c52621968b35e3a75e189e823d3b9e3bad77aff"
+ integrity sha512-oYhqxETRHNHKsipm/BtGL0LI43Hs2VSFoWMbBdHK9OqgQPjTVUitslgLcPpo4zApCcmBWoOLX2qPxhsBda644A==
dependencies:
"@react-navigation/routers" "^6.1.9"
escape-string-regexp "^4.0.0"
nanoid "^3.1.23"
query-string "^7.1.3"
react-is "^16.13.0"
- use-latest-callback "^0.1.5"
+ use-latest-callback "^0.1.7"
-"@react-navigation/elements@^1.3.18":
- version "1.3.18"
- resolved "https://registry.yarnpkg.com/@react-navigation/elements/-/elements-1.3.18.tgz#d8364b40276f3efb9c229c39da3b8b465f18f0a2"
- integrity sha512-/0hwnJkrr415yP0Hf4PjUKgGyfshrvNUKFXN85Mrt1gY49hy9IwxZgrrxlh0THXkPeq8q4VWw44eHDfAcQf20Q==
+"@react-navigation/elements@^1.3.21":
+ version "1.3.21"
+ resolved "https://registry.yarnpkg.com/@react-navigation/elements/-/elements-1.3.21.tgz#debac6becc6b6692da09ec30e705e476a780dfe1"
+ integrity sha512-eyS2C6McNR8ihUoYfc166O1D8VYVh9KIl0UQPI8/ZJVsStlfSTgeEEh+WXge6+7SFPnZ4ewzEJdSAHH+jzcEfg==
-"@react-navigation/native-stack@^6.9.12":
- version "6.9.13"
- resolved "https://registry.yarnpkg.com/@react-navigation/native-stack/-/native-stack-6.9.13.tgz#f308c398ee18fcd45de8ec7c04fe0641735feb31"
- integrity sha512-ejlepMrvFneewL+XlXHHhn+6y3lwvavM4/R7XwBV0XJxCymujexK+7Vkg7UcvJ1lx4CRhOcyBSNfGmdNIHREyQ==
+"@react-navigation/native-stack@^6.9.17":
+ version "6.9.17"
+ resolved "https://registry.yarnpkg.com/@react-navigation/native-stack/-/native-stack-6.9.17.tgz#4fc370b14be07296423ae8c00940fb002c6001b5"
+ integrity sha512-X8p8aS7JptQq7uZZNFEvfEcPf6tlK4PyVwYDdryRbG98B4bh2wFQYMThxvqa+FGEN7USEuHdv2mF0GhFKfX0ew==
dependencies:
- "@react-navigation/elements" "^1.3.18"
+ "@react-navigation/elements" "^1.3.21"
warn-once "^0.1.0"
-"@react-navigation/native@^6.1.6":
- version "6.1.7"
- resolved "https://registry.yarnpkg.com/@react-navigation/native/-/native-6.1.7.tgz#968ef85b76d35f63111890668836fe2f125bbf90"
- integrity sha512-W6E3+AtTombMucCRo6q7vPmluq8hSjS+IxfazJ/SokOe7ChJX7eLvvralIsJkjFj3iWV1KgOSnHxa6hdiFasBw==
+"@react-navigation/native@^6.1.9":
+ version "6.1.9"
+ resolved "https://registry.yarnpkg.com/@react-navigation/native/-/native-6.1.9.tgz#8ef87095cd9c2ed094308c726157c7f6fc28796e"
+ integrity sha512-AMuJDpwXE7UlfyhIXaUCCynXmv69Kb8NzKgKJO7v0k0L+u6xUTbt6xvshmJ79vsvaFyaEH9Jg5FMzek5/S5qNw==
dependencies:
- "@react-navigation/core" "^6.4.9"
+ "@react-navigation/core" "^6.4.10"
escape-string-regexp "^4.0.0"
fast-deep-equal "^3.1.3"
nanoid "^3.1.23"
@@ -2310,12 +2248,12 @@
dependencies:
nanoid "^3.1.23"
-"@react-navigation/stack@^6.3.16":
- version "6.3.17"
- resolved "https://registry.yarnpkg.com/@react-navigation/stack/-/stack-6.3.17.tgz#dd3375916a2adaa130659c0113fe05939bc19470"
- integrity sha512-8/8ZvJROK3fp6PRmQ9MrXd9epBowA8NkfCaWW/N9H5arqwNX9lTXAkmcjicRhjpX+UNlMBR9dTLkWvPRe2vY9A==
+"@react-navigation/stack@^6.3.20":
+ version "6.3.20"
+ resolved "https://registry.yarnpkg.com/@react-navigation/stack/-/stack-6.3.20.tgz#8eec944888f317bb1ba1ff30e7f513806bea16c2"
+ integrity sha512-vE6mgZzOgoa5Uy7ayT97Cj+ZIK7DK+JBYVuKUViILlWZy6IWK7HFDuqoChSbZ1ajTIfAxj/acVGg1jkbAKsToA==
dependencies:
- "@react-navigation/elements" "^1.3.18"
+ "@react-navigation/elements" "^1.3.21"
color "^4.2.3"
warn-once "^0.1.0"
@@ -2363,12 +2301,13 @@
dependencies:
"@sinonjs/commons" "^3.0.0"
-"@tatumio/tatum@^3.0.14":
- version "3.0.14"
- resolved "https://registry.yarnpkg.com/@tatumio/tatum/-/tatum-3.0.14.tgz#2661cb898e44caf8d0508a5eda4b852eb0c0d36a"
- integrity sha512-BLB7yW49kHTom/3FiVpQIhArOm0T7NwAM4d4wTOslt86ymvxmvUyjwrmfYV3wRK6GL/T1TAz3bLqxsw7R3nx5A==
+"@tatumio/tatum@^4.2.2":
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/@tatumio/tatum/-/tatum-4.2.2.tgz#ab7246a78d393e3ebb63b058d0b157fc4d91510b"
+ integrity sha512-ZJkEyHP9ACQcX4tGpjCx9qif/8/Dp7iCO5pjjbiZWV+DLiFDbTr4QqliUBDsK0p5+E8PfXeYT8e3otus2vjsFg==
dependencies:
bignumber.js "^9.1.1"
+ chalk "^4.1.2"
reflect-metadata "^0.1.13"
typedi "^0.10.0"
@@ -2582,11 +2521,6 @@
resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c"
integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==
-"@types/stylis@^4.0.2":
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/@types/stylis/-/stylis-4.2.0.tgz#199a3f473f0c3a6f6e4e1b17cdbc967f274bdc6b"
- integrity sha512-n4sx2bqL0mW1tvDf/loQ+aMX7GQD3lc3fkCMC55VFNDu/vBOabO+LTIeXKM14xK0ppk5TUGcWRjiSpIlUpghKw==
-
"@types/tough-cookie@*":
version "4.0.2"
resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.2.tgz#6286b4c7228d58ab7866d19716f3696e03a09397"
@@ -2871,7 +2805,7 @@ any-promise@^1.0.0:
resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==
-anymatch@^3.0.3, anymatch@~3.1.2:
+anymatch@^3.0.3:
version "3.1.3"
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
@@ -3022,12 +2956,12 @@ available-typed-arrays@^1.0.5:
resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7"
integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==
-axios@^1.4.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/axios/-/axios-1.5.0.tgz#f02e4af823e2e46a9768cfc74691fdd0517ea267"
- integrity sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==
+axios@^1.6.5:
+ version "1.6.5"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.5.tgz#2c090da14aeeab3770ad30c3a1461bc970fb0cd8"
+ integrity sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==
dependencies:
- follow-redirects "^1.15.0"
+ follow-redirects "^1.15.4"
form-data "^4.0.0"
proxy-from-env "^1.1.0"
@@ -3222,11 +3156,6 @@ bignumber.js@^9.1.1:
resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.1.tgz#c4df7dc496bd849d4c9464344c1aa74228b4dac6"
integrity sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==
-binary-extensions@^2.0.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
- integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
-
bl@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
@@ -3300,7 +3229,7 @@ brace-expansion@^2.0.1:
dependencies:
balanced-match "^1.0.0"
-braces@^3.0.2, braces@~3.0.2:
+braces@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
@@ -3436,11 +3365,6 @@ camelcase@^6.2.0:
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
-camelize@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.1.tgz#89b7e16884056331a35d6b5ad064332c91daa6c3"
- integrity sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==
-
caniuse-lite@^1.0.30001517:
version "1.0.30001524"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001524.tgz#1e14bce4f43c41a7deaeb5ebfe86664fe8dadb80"
@@ -3486,21 +3410,6 @@ charenc@0.0.2, charenc@~0.0.1:
resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667"
integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==
-chokidar@^3.4.0:
- version "3.5.3"
- resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
- integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
- dependencies:
- anymatch "~3.1.2"
- braces "~3.0.2"
- glob-parent "~5.1.2"
- is-binary-path "~2.1.0"
- is-glob "~4.0.1"
- normalize-path "~3.0.0"
- readdirp "~3.6.0"
- optionalDependencies:
- fsevents "~2.3.2"
-
chownr@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece"
@@ -3662,7 +3571,7 @@ commander@^2.20.0:
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
-commander@^4.0.0, commander@^4.0.1:
+commander@^4.0.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
@@ -3737,7 +3646,7 @@ content-type@~1.0.5:
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918"
integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
-convert-source-map@^1.1.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0:
+convert-source-map@^1.6.0, convert-source-map@^1.7.0:
version "1.9.0"
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f"
integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==
@@ -3811,11 +3720,6 @@ crypto-random-string@^2.0.0:
resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
-css-color-keywords@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05"
- integrity sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==
-
css-select@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6"
@@ -3827,15 +3731,6 @@ css-select@^5.1.0:
domutils "^3.0.1"
nth-check "^2.0.1"
-css-to-react-native@^3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.2.0.tgz#cdd8099f71024e149e4f6fe17a7d46ecd55f1e32"
- integrity sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==
- dependencies:
- camelize "^1.0.0"
- css-color-keywords "^1.0.0"
- postcss-value-parser "^4.0.2"
-
css-tree@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d"
@@ -3866,7 +3761,7 @@ cssstyle@^2.3.0:
dependencies:
cssom "~0.3.6"
-csstype@^3.0.2, csstype@^3.1.2:
+csstype@^3.0.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b"
integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==
@@ -4686,10 +4581,10 @@ expo-network@~5.4.0:
resolved "https://registry.yarnpkg.com/expo-network/-/expo-network-5.4.0.tgz#4eddde3e54a80b46c7cd2e4ce22a98e61aa97468"
integrity sha512-6Hdm6CRmt7KpEYSTp9Q0fH1V63Y3tLlgkZfJBqJHksxEP/ooOjBLsK8M09q+FiWsStByI/PKj6NO86+uymz5ig==
-expo-screen-orientation@~6.0.5:
- version "6.0.5"
- resolved "https://registry.yarnpkg.com/expo-screen-orientation/-/expo-screen-orientation-6.0.5.tgz#4fcac69c641522c7e658d4fb20b22de82d732aee"
- integrity sha512-aOOuuQkxNHNxSzfEO037jnD0zYiwBVTvuXeFy/0KntFmuqWmZGaFmFks1uTA2+0wKlbA049kVjkBnA1peybmHQ==
+expo-screen-orientation@~6.0.6:
+ version "6.0.6"
+ resolved "https://registry.yarnpkg.com/expo-screen-orientation/-/expo-screen-orientation-6.0.6.tgz#48b395bde2c4aa8d5236fc570bc36a7681895030"
+ integrity sha512-qiTGX1udJi6hj+8JUP9C27+TJDU7+42HcYcgmGd5hi/iXvIK1YwuCkXFdny+BkiapFb5jQnJCBZfdhMk1fjh+Q==
expo-secure-store@~12.3.1:
version "12.3.1"
@@ -4919,10 +4814,10 @@ flow-parser@^0.206.0:
resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.206.0.tgz#f4f794f8026535278393308e01ea72f31000bfef"
integrity sha512-HVzoK3r6Vsg+lKvlIZzaWNBVai+FXTX1wdYhz/wVlH13tb/gOdLXmlTqy6odmTBhT5UoWUbq0k8263Qhr9d88w==
-follow-redirects@^1.15.0:
- version "1.15.2"
- resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13"
- integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
+follow-redirects@^1.15.4:
+ version "1.15.5"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020"
+ integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==
fontfaceobserver@^2.1.0:
version "2.3.0"
@@ -5021,17 +4916,12 @@ fs-minipass@^2.0.0:
dependencies:
minipass "^3.0.0"
-fs-readdir-recursive@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27"
- integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==
-
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
-fsevents@^2.3.2, fsevents@~2.3.2:
+fsevents@^2.3.2:
version "2.3.3"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
@@ -5111,7 +5001,7 @@ getenv@^1.0.0:
resolved "https://registry.yarnpkg.com/getenv/-/getenv-1.0.0.tgz#874f2e7544fbca53c7a4738f37de8605c3fcfc31"
integrity sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==
-glob-parent@^5.1.2, glob-parent@~5.1.2:
+glob-parent@^5.1.2:
version "5.1.2"
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
@@ -5148,7 +5038,7 @@ glob@^6.0.1:
once "^1.3.0"
path-is-absolute "^1.0.0"
-glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.2.0:
+glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
version "7.2.3"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
@@ -5367,12 +5257,12 @@ human-signals@^2.1.0:
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
-i18next@^22.5.0:
- version "22.5.1"
- resolved "https://registry.yarnpkg.com/i18next/-/i18next-22.5.1.tgz#99df0b318741a506000c243429a7352e5f44d424"
- integrity sha512-8TGPgM3pAD+VRsMtUMNknRz3kzqwp/gPALrWMsDnmC1mKqJwpWyooQRLMcbTwq8z8YwSmuj+ZYvc+xCuEpkssA==
+i18next@^23.7.16:
+ version "23.7.16"
+ resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.7.16.tgz#7026d18b7a3ac9e2ecfeb78da5e4da5ca33312ef"
+ integrity sha512-SrqFkMn9W6Wb43ZJ9qrO6U2U4S80RsFMA7VYFSqp7oc7RllQOYDCdRfsse6A7Cq/V8MnpxKvJCYgM8++27n4Fw==
dependencies:
- "@babel/runtime" "^7.20.6"
+ "@babel/runtime" "^7.23.2"
iconv-lite@0.4.24:
version "0.4.24"
@@ -5534,13 +5424,6 @@ is-bigint@^1.0.1:
dependencies:
has-bigints "^1.0.1"
-is-binary-path@~2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
- integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
- dependencies:
- binary-extensions "^2.0.0"
-
is-boolean-object@^1.1.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719"
@@ -5629,7 +5512,7 @@ is-glob@^2.0.0:
dependencies:
is-extglob "^1.0.0"
-is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
+is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3:
version "4.0.3"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
@@ -6773,53 +6656,53 @@ merge2@^1.3.0, merge2@^1.4.1:
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
-metro-babel-transformer@0.76.7:
- version "0.76.7"
- resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.76.7.tgz#ba620d64cbaf97d1aa14146d654a3e5d7477fc62"
- integrity sha512-bgr2OFn0J4r0qoZcHrwEvccF7g9k3wdgTOgk6gmGHrtlZ1Jn3oCpklW/DfZ9PzHfjY2mQammKTc19g/EFGyOJw==
+metro-babel-transformer@0.76.8:
+ version "0.76.8"
+ resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.76.8.tgz#5efd1027353b36b73706164ef09c290dceac096a"
+ integrity sha512-Hh6PW34Ug/nShlBGxkwQJSgPGAzSJ9FwQXhUImkzdsDgVu6zj5bx258J8cJVSandjNoQ8nbaHK6CaHlnbZKbyA==
dependencies:
"@babel/core" "^7.20.0"
hermes-parser "0.12.0"
nullthrows "^1.1.1"
-metro-cache-key@0.76.7:
- version "0.76.7"
- resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.76.7.tgz#70913f43b92b313096673c37532edd07438cb325"
- integrity sha512-0pecoIzwsD/Whn/Qfa+SDMX2YyasV0ndbcgUFx7w1Ct2sLHClujdhQ4ik6mvQmsaOcnGkIyN0zcceMDjC2+BFQ==
+metro-cache-key@0.76.8:
+ version "0.76.8"
+ resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.76.8.tgz#8a0a5e991c06f56fcc584acadacb313c312bdc16"
+ integrity sha512-buKQ5xentPig9G6T37Ww/R/bC+/V1MA5xU/D8zjnhlelsrPG6w6LtHUS61ID3zZcMZqYaELWk5UIadIdDsaaLw==
-metro-cache@0.76.7:
- version "0.76.7"
- resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.76.7.tgz#e49e51423fa960df4eeff9760d131f03e003a9eb"
- integrity sha512-nWBMztrs5RuSxZRI7hgFgob5PhYDmxICh9FF8anm9/ito0u0vpPvRxt7sRu8fyeD2AHdXqE7kX32rWY0LiXgeg==
+metro-cache@0.76.8:
+ version "0.76.8"
+ resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.76.8.tgz#296c1c189db2053b89735a8f33dbe82575f53661"
+ integrity sha512-QBJSJIVNH7Hc/Yo6br/U/qQDUpiUdRgZ2ZBJmvAbmAKp2XDzsapnMwK/3BGj8JNWJF7OLrqrYHsRsukSbUBpvQ==
dependencies:
- metro-core "0.76.7"
+ metro-core "0.76.8"
rimraf "^3.0.2"
-metro-config@0.76.7:
- version "0.76.7"
- resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.76.7.tgz#f0fc171707523aa7d3a9311550872136880558c0"
- integrity sha512-CFDyNb9bqxZemiChC/gNdXZ7OQkIwmXzkrEXivcXGbgzlt/b2juCv555GWJHyZSlorwnwJfY3uzAFu4A9iRVfg==
+metro-config@0.76.8:
+ version "0.76.8"
+ resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.76.8.tgz#20bd5397fcc6096f98d2a813a7cecb38b8af062d"
+ integrity sha512-SL1lfKB0qGHALcAk2zBqVgQZpazDYvYFGwCK1ikz0S6Y/CM2i2/HwuZN31kpX6z3mqjv/6KvlzaKoTb1otuSAA==
dependencies:
connect "^3.6.5"
cosmiconfig "^5.0.5"
jest-validate "^29.2.1"
- metro "0.76.7"
- metro-cache "0.76.7"
- metro-core "0.76.7"
- metro-runtime "0.76.7"
+ metro "0.76.8"
+ metro-cache "0.76.8"
+ metro-core "0.76.8"
+ metro-runtime "0.76.8"
-metro-core@0.76.7:
- version "0.76.7"
- resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.76.7.tgz#5d2b8bac2cde801dc22666ad7be1336d1f021b61"
- integrity sha512-0b8KfrwPmwCMW+1V7ZQPkTy2tsEKZjYG9Pu1PTsu463Z9fxX7WaR0fcHFshv+J1CnQSUTwIGGjbNvj1teKe+pw==
+metro-core@0.76.8:
+ version "0.76.8"
+ resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.76.8.tgz#917c8157c63406cb223522835abb8e7c6291dcad"
+ integrity sha512-sl2QLFI3d1b1XUUGxwzw/KbaXXU/bvFYrSKz6Sg19AdYGWFyzsgZ1VISRIDf+HWm4R/TJXluhWMEkEtZuqi3qA==
dependencies:
lodash.throttle "^4.1.1"
- metro-resolver "0.76.7"
+ metro-resolver "0.76.8"
-metro-file-map@0.76.7:
- version "0.76.7"
- resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.76.7.tgz#0f041a4f186ac672f0188180310609c8483ffe89"
- integrity sha512-s+zEkTcJ4mOJTgEE2ht4jIo1DZfeWreQR3tpT3gDV/Y/0UQ8aJBTv62dE775z0GLsWZApiblAYZsj7ZE8P06nw==
+metro-file-map@0.76.8:
+ version "0.76.8"
+ resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.76.8.tgz#a1db1185b6c316904ba6b53d628e5d1323991d79"
+ integrity sha512-A/xP1YNEVwO1SUV9/YYo6/Y1MmzhL4ZnVgcJC3VmHp/BYVOXVStzgVbWv2wILe56IIMkfXU+jpXrGKKYhFyHVw==
dependencies:
anymatch "^3.0.3"
debug "^2.2.0"
@@ -6836,10 +6719,10 @@ metro-file-map@0.76.7:
optionalDependencies:
fsevents "^2.3.2"
-metro-inspector-proxy@0.76.7:
- version "0.76.7"
- resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.76.7.tgz#c067df25056e932002a72a4b45cf7b4b749f808e"
- integrity sha512-rNZ/6edTl/1qUekAhAbaFjczMphM50/UjtxiKulo6vqvgn/Mjd9hVqDvVYfAMZXqPvlusD88n38UjVYPkruLSg==
+metro-inspector-proxy@0.76.8:
+ version "0.76.8"
+ resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.76.8.tgz#6b8678a7461b0b42f913a7881cc9319b4d3cddff"
+ integrity sha512-Us5o5UEd4Smgn1+TfHX4LvVPoWVo9VsVMn4Ldbk0g5CQx3Gu0ygc/ei2AKPGTwsOZmKxJeACj7yMH2kgxQP/iw==
dependencies:
connect "^3.6.5"
debug "^2.2.0"
@@ -6847,65 +6730,20 @@ metro-inspector-proxy@0.76.7:
ws "^7.5.1"
yargs "^17.6.2"
-metro-minify-terser@0.76.7:
- version "0.76.7"
- resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.76.7.tgz#aefac8bb8b6b3a0fcb5ea0238623cf3e100893ff"
- integrity sha512-FQiZGhIxCzhDwK4LxyPMLlq0Tsmla10X7BfNGlYFK0A5IsaVKNJbETyTzhpIwc+YFRT4GkFFwgo0V2N5vxO5HA==
+metro-minify-terser@0.76.8:
+ version "0.76.8"
+ resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.76.8.tgz#915ab4d1419257fc6a0b9fa15827b83fe69814bf"
+ integrity sha512-Orbvg18qXHCrSj1KbaeSDVYRy/gkro2PC7Fy2tDSH1c9RB4aH8tuMOIXnKJE+1SXxBtjWmQ5Yirwkth2DyyEZA==
dependencies:
terser "^5.15.0"
-metro-minify-uglify@0.76.7:
- version "0.76.7"
- resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.76.7.tgz#3e0143786718dcaea4e28a724698d4f8ac199a43"
- integrity sha512-FuXIU3j2uNcSvQtPrAJjYWHruPiQ+EpE++J9Z+VznQKEHcIxMMoQZAfIF2IpZSrZYfLOjVFyGMvj41jQMxV1Vw==
+metro-minify-uglify@0.76.8:
+ version "0.76.8"
+ resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.76.8.tgz#74745045ea2dd29f8783db483b2fce58385ba695"
+ integrity sha512-6l8/bEvtVaTSuhG1FqS0+Mc8lZ3Bl4RI8SeRIifVLC21eeSDp4CEBUWSGjpFyUDfi6R5dXzYaFnSgMNyfxADiQ==
dependencies:
uglify-es "^3.1.9"
-metro-react-native-babel-preset@0.76.7:
- version "0.76.7"
- resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.7.tgz#dfe15c040d0918147a8b0e9f530d558287acbb54"
- integrity sha512-R25wq+VOSorAK3hc07NW0SmN8z9S/IR0Us0oGAsBcMZnsgkbOxu77Mduqf+f4is/wnWHc5+9bfiqdLnaMngiVw==
- dependencies:
- "@babel/core" "^7.20.0"
- "@babel/plugin-proposal-async-generator-functions" "^7.0.0"
- "@babel/plugin-proposal-class-properties" "^7.18.0"
- "@babel/plugin-proposal-export-default-from" "^7.0.0"
- "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.0"
- "@babel/plugin-proposal-numeric-separator" "^7.0.0"
- "@babel/plugin-proposal-object-rest-spread" "^7.20.0"
- "@babel/plugin-proposal-optional-catch-binding" "^7.0.0"
- "@babel/plugin-proposal-optional-chaining" "^7.20.0"
- "@babel/plugin-syntax-dynamic-import" "^7.8.0"
- "@babel/plugin-syntax-export-default-from" "^7.0.0"
- "@babel/plugin-syntax-flow" "^7.18.0"
- "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0"
- "@babel/plugin-syntax-optional-chaining" "^7.0.0"
- "@babel/plugin-transform-arrow-functions" "^7.0.0"
- "@babel/plugin-transform-async-to-generator" "^7.20.0"
- "@babel/plugin-transform-block-scoping" "^7.0.0"
- "@babel/plugin-transform-classes" "^7.0.0"
- "@babel/plugin-transform-computed-properties" "^7.0.0"
- "@babel/plugin-transform-destructuring" "^7.20.0"
- "@babel/plugin-transform-flow-strip-types" "^7.20.0"
- "@babel/plugin-transform-function-name" "^7.0.0"
- "@babel/plugin-transform-literals" "^7.0.0"
- "@babel/plugin-transform-modules-commonjs" "^7.0.0"
- "@babel/plugin-transform-named-capturing-groups-regex" "^7.0.0"
- "@babel/plugin-transform-parameters" "^7.0.0"
- "@babel/plugin-transform-react-display-name" "^7.0.0"
- "@babel/plugin-transform-react-jsx" "^7.0.0"
- "@babel/plugin-transform-react-jsx-self" "^7.0.0"
- "@babel/plugin-transform-react-jsx-source" "^7.0.0"
- "@babel/plugin-transform-runtime" "^7.0.0"
- "@babel/plugin-transform-shorthand-properties" "^7.0.0"
- "@babel/plugin-transform-spread" "^7.0.0"
- "@babel/plugin-transform-sticky-regex" "^7.0.0"
- "@babel/plugin-transform-typescript" "^7.5.0"
- "@babel/plugin-transform-unicode-regex" "^7.0.0"
- "@babel/template" "^7.0.0"
- babel-plugin-transform-flow-enums "^0.0.2"
- react-refresh "^0.4.0"
-
metro-react-native-babel-preset@0.76.8, metro-react-native-babel-preset@^0.76.4:
version "0.76.8"
resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.8.tgz#7476efae14363cbdfeeec403b4f01d7348e6c048"
@@ -6951,29 +6789,21 @@ metro-react-native-babel-preset@0.76.8, metro-react-native-babel-preset@^0.76.4:
babel-plugin-transform-flow-enums "^0.0.2"
react-refresh "^0.4.0"
-metro-react-native-babel-transformer@0.76.7:
- version "0.76.7"
- resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.76.7.tgz#ccc7c25b49ee8a1860aafdbf48bfa5441d206f8f"
- integrity sha512-W6lW3J7y/05ph3c2p3KKJNhH0IdyxdOCbQ5it7aM2MAl0SM4wgKjaV6EYv9b3rHklpV6K3qMH37UKVcjMooWiA==
+metro-react-native-babel-transformer@0.76.8:
+ version "0.76.8"
+ resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.76.8.tgz#c3a98e1f4cd5faf1e21eba8e004b94a90c4db69b"
+ integrity sha512-3h+LfS1WG1PAzhq8QF0kfXjxuXetbY/lgz8vYMQhgrMMp17WM1DNJD0gjx8tOGYbpbBC1qesJ45KMS4o5TA73A==
dependencies:
"@babel/core" "^7.20.0"
babel-preset-fbjs "^3.4.0"
hermes-parser "0.12.0"
- metro-react-native-babel-preset "0.76.7"
+ metro-react-native-babel-preset "0.76.8"
nullthrows "^1.1.1"
-metro-resolver@0.76.7:
- version "0.76.7"
- resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.76.7.tgz#f00ebead64e451c060f30926ecbf4f797588df52"
- integrity sha512-pC0Wgq29HHIHrwz23xxiNgylhI8Rq1V01kQaJ9Kz11zWrIdlrH0ZdnJ7GC6qA0ErROG+cXmJ0rJb8/SW1Zp2IA==
-
-metro-runtime@0.76.7:
- version "0.76.7"
- resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.76.7.tgz#4d75f2dbbcd19a4f01e0d89494e140b0ba8247e4"
- integrity sha512-MuWHubQHymUWBpZLwuKZQgA/qbb35WnDAKPo83rk7JRLIFPvzXSvFaC18voPuzJBt1V98lKQIonh6MiC9gd8Ug==
- dependencies:
- "@babel/runtime" "^7.0.0"
- react-refresh "^0.4.0"
+metro-resolver@0.76.8:
+ version "0.76.8"
+ resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.76.8.tgz#0862755b9b84e26853978322464fb37c6fdad76d"
+ integrity sha512-KccOqc10vrzS7ZhG2NSnL2dh3uVydarB7nOhjreQ7C4zyWuiW9XpLC4h47KtGQv3Rnv/NDLJYeDqaJ4/+140HQ==
metro-runtime@0.76.8:
version "0.76.8"
@@ -6983,20 +6813,6 @@ metro-runtime@0.76.8:
"@babel/runtime" "^7.0.0"
react-refresh "^0.4.0"
-metro-source-map@0.76.7:
- version "0.76.7"
- resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.76.7.tgz#9a4aa3a35e1e8ffde9a74cd7ab5f49d9d4a4da14"
- integrity sha512-Prhx7PeRV1LuogT0Kn5VjCuFu9fVD68eefntdWabrksmNY6mXK8pRqzvNJOhTojh6nek+RxBzZeD6MIOOyXS6w==
- dependencies:
- "@babel/traverse" "^7.20.0"
- "@babel/types" "^7.20.0"
- invariant "^2.2.4"
- metro-symbolicate "0.76.7"
- nullthrows "^1.1.1"
- ob1 "0.76.7"
- source-map "^0.5.6"
- vlq "^1.0.0"
-
metro-source-map@0.76.8:
version "0.76.8"
resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.76.8.tgz#f085800152a6ba0b41ca26833874d31ec36c5a53"
@@ -7011,18 +6827,6 @@ metro-source-map@0.76.8:
source-map "^0.5.6"
vlq "^1.0.0"
-metro-symbolicate@0.76.7:
- version "0.76.7"
- resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.76.7.tgz#1720e6b4ce5676935d7a8a440f25d3f16638e87a"
- integrity sha512-p0zWEME5qLSL1bJb93iq+zt5fz3sfVn9xFYzca1TJIpY5MommEaS64Va87lp56O0sfEIvh4307Oaf/ZzRjuLiQ==
- dependencies:
- invariant "^2.2.4"
- metro-source-map "0.76.7"
- nullthrows "^1.1.1"
- source-map "^0.5.6"
- through2 "^2.0.1"
- vlq "^1.0.0"
-
metro-symbolicate@0.76.8:
version "0.76.8"
resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.76.8.tgz#f102ac1a306d51597ecc8fdf961c0a88bddbca03"
@@ -7035,10 +6839,10 @@ metro-symbolicate@0.76.8:
through2 "^2.0.1"
vlq "^1.0.0"
-metro-transform-plugins@0.76.7:
- version "0.76.7"
- resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.76.7.tgz#5d5f75371706fbf5166288e43ffd36b5e5bd05bc"
- integrity sha512-iSmnjVApbdivjuzb88Orb0JHvcEt5veVyFAzxiS5h0QB+zV79w6JCSqZlHCrbNOkOKBED//LqtKbFVakxllnNg==
+metro-transform-plugins@0.76.8:
+ version "0.76.8"
+ resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.76.8.tgz#d77c28a6547a8e3b72250f740fcfbd7f5408f8ba"
+ integrity sha512-PlkGTQNqS51Bx4vuufSQCdSn2R2rt7korzngo+b5GCkeX5pjinPjnO2kNhQ8l+5bO0iUD/WZ9nsM2PGGKIkWFA==
dependencies:
"@babel/core" "^7.20.0"
"@babel/generator" "^7.20.0"
@@ -7046,28 +6850,28 @@ metro-transform-plugins@0.76.7:
"@babel/traverse" "^7.20.0"
nullthrows "^1.1.1"
-metro-transform-worker@0.76.7:
- version "0.76.7"
- resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.76.7.tgz#b842d5a542f1806cca401633fc002559b3e3d668"
- integrity sha512-cGvELqFMVk9XTC15CMVzrCzcO6sO1lURfcbgjuuPdzaWuD11eEyocvkTX0DPiRjsvgAmicz4XYxVzgYl3MykDw==
+metro-transform-worker@0.76.8:
+ version "0.76.8"
+ resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.76.8.tgz#b9012a196cee205170d0c899b8b175b9305acdea"
+ integrity sha512-mE1fxVAnJKmwwJyDtThildxxos9+DGs9+vTrx2ktSFMEVTtXS/bIv2W6hux1pqivqAfyJpTeACXHk5u2DgGvIQ==
dependencies:
"@babel/core" "^7.20.0"
"@babel/generator" "^7.20.0"
"@babel/parser" "^7.20.0"
"@babel/types" "^7.20.0"
babel-preset-fbjs "^3.4.0"
- metro "0.76.7"
- metro-babel-transformer "0.76.7"
- metro-cache "0.76.7"
- metro-cache-key "0.76.7"
- metro-source-map "0.76.7"
- metro-transform-plugins "0.76.7"
+ metro "0.76.8"
+ metro-babel-transformer "0.76.8"
+ metro-cache "0.76.8"
+ metro-cache-key "0.76.8"
+ metro-source-map "0.76.8"
+ metro-transform-plugins "0.76.8"
nullthrows "^1.1.1"
-metro@0.76.7:
- version "0.76.7"
- resolved "https://registry.yarnpkg.com/metro/-/metro-0.76.7.tgz#4885917ad28738c7d1e556630e0155f687336230"
- integrity sha512-67ZGwDeumEPnrHI+pEDSKH2cx+C81Gx8Mn5qOtmGUPm/Up9Y4I1H2dJZ5n17MWzejNo0XAvPh0QL0CrlJEODVQ==
+metro@0.76.8:
+ version "0.76.8"
+ resolved "https://registry.yarnpkg.com/metro/-/metro-0.76.8.tgz#ba526808b99977ca3f9ac5a7432fd02a340d13a6"
+ integrity sha512-oQA3gLzrrYv3qKtuWArMgHPbHu8odZOD9AoavrqSFllkPgOtmkBvNNDLCELqv5SjBfqjISNffypg+5UGG3y0pg==
dependencies:
"@babel/code-frame" "^7.0.0"
"@babel/core" "^7.20.0"
@@ -7091,22 +6895,22 @@ metro@0.76.7:
jest-worker "^27.2.0"
jsc-safe-url "^0.2.2"
lodash.throttle "^4.1.1"
- metro-babel-transformer "0.76.7"
- metro-cache "0.76.7"
- metro-cache-key "0.76.7"
- metro-config "0.76.7"
- metro-core "0.76.7"
- metro-file-map "0.76.7"
- metro-inspector-proxy "0.76.7"
- metro-minify-terser "0.76.7"
- metro-minify-uglify "0.76.7"
- metro-react-native-babel-preset "0.76.7"
- metro-resolver "0.76.7"
- metro-runtime "0.76.7"
- metro-source-map "0.76.7"
- metro-symbolicate "0.76.7"
- metro-transform-plugins "0.76.7"
- metro-transform-worker "0.76.7"
+ metro-babel-transformer "0.76.8"
+ metro-cache "0.76.8"
+ metro-cache-key "0.76.8"
+ metro-config "0.76.8"
+ metro-core "0.76.8"
+ metro-file-map "0.76.8"
+ metro-inspector-proxy "0.76.8"
+ metro-minify-terser "0.76.8"
+ metro-minify-uglify "0.76.8"
+ metro-react-native-babel-preset "0.76.8"
+ metro-resolver "0.76.8"
+ metro-runtime "0.76.8"
+ metro-source-map "0.76.8"
+ metro-symbolicate "0.76.8"
+ metro-transform-plugins "0.76.8"
+ metro-transform-worker "0.76.8"
mime-types "^2.1.27"
node-fetch "^2.2.0"
nullthrows "^1.1.1"
@@ -7242,15 +7046,15 @@ mkdirp@^1.0.3, mkdirp@^1.0.4:
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
-moment@^2.29.4:
- version "2.29.4"
- resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108"
- integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==
+moment@^2.30.1:
+ version "2.30.1"
+ resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae"
+ integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==
-moti@^0.25.3:
- version "0.25.4"
- resolved "https://registry.yarnpkg.com/moti/-/moti-0.25.4.tgz#772f50eda85ee65d6a31bdc601d6c43d08a736b3"
- integrity sha512-UiH0WcWzUYlUmo8Y1F+iyVW+qVVZ3YkXO3Q/gQUZzOhje6+Q0MdllYfqKW2m5IhFs+Vxt2i+osjvWBxXKK2yOw==
+moti@^0.27.2:
+ version "0.27.2"
+ resolved "https://registry.yarnpkg.com/moti/-/moti-0.27.2.tgz#617217500a45f3eca93a26a8adb4d7a47cf82843"
+ integrity sha512-QYH9Id14Zdjx9L75iMPyvxUN+GvHZ4lk6QhUyA63kWgXyqPT2yMnEIbk7hIeQ0WQDW2eLAXEi2/6FJkS7TEwsw==
dependencies:
framer-motion "^6.5.1"
@@ -7371,7 +7175,7 @@ node-stream-zip@^1.9.1:
resolved "https://registry.yarnpkg.com/node-stream-zip/-/node-stream-zip-1.15.0.tgz#158adb88ed8004c6c49a396b50a6a5de3bca33ea"
integrity sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==
-normalize-path@^3.0.0, normalize-path@~3.0.0:
+normalize-path@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
@@ -7417,11 +7221,6 @@ nwsapi@^2.2.2:
resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30"
integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==
-ob1@0.76.7:
- version "0.76.7"
- resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.76.7.tgz#95b68fadafd47e7a6a0ad64cf80f3140dd6d1124"
- integrity sha512-BQdRtxxoUNfSoZxqeBGOyuT9nEYSn18xZHwGMb0mMVpn2NBcYbnyKY4BK2LIHRgw33CBGlUmE+KMaNvyTpLLtQ==
-
ob1@0.76.8:
version "0.76.8"
resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.76.8.tgz#ac4c459465b1c0e2c29aaa527e09fc463d3ffec8"
@@ -7754,7 +7553,7 @@ picocolors@^1.0.0:
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
-picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1:
+picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
@@ -7814,12 +7613,7 @@ popmotion@11.0.3:
style-value-types "5.0.0"
tslib "^2.1.0"
-postcss-value-parser@^4.0.2:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
- integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
-
-postcss@^8.4.23, postcss@~8.4.21:
+postcss@~8.4.21:
version "8.4.28"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.28.tgz#c6cc681ed00109072816e1557f889ef51cf950a5"
integrity sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==
@@ -7833,6 +7627,11 @@ prelude-ls@^1.2.1:
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
+prettier@3.2.2:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.2.tgz#96e580f7ca9c96090ad054616c0c4597e2844b65"
+ integrity sha512-HTByuKZzw7utPiDO523Tt2pLtEyK7OibUD9suEJQrPUCYQqrHr74GGX6VidMrovbf/I50mPqr8j/II6oBAuc5A==
+
pretty-bytes@5.6.0:
version "5.6.0"
resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb"
@@ -8015,12 +7814,12 @@ react-freeze@^1.0.0:
resolved "https://registry.yarnpkg.com/react-freeze/-/react-freeze-1.0.3.tgz#5e3ca90e682fed1d73a7cb50c2c7402b3e85618d"
integrity sha512-ZnXwLQnGzrDpHBHiC56TXFXvmolPeMjTn1UOm610M4EXGzbEDR7oOIyS2ZiItgbs6eZc4oU/a0hpk8PrcKvv5g==
-react-i18next@^12.3.1:
- version "12.3.1"
- resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-12.3.1.tgz#30134a41a2a71c61dc69c6383504929aed1c99e7"
- integrity sha512-5v8E2XjZDFzK7K87eSwC7AJcAkcLt5xYZ4+yTPDAW1i7C93oOY1dnr4BaQM7un4Hm+GmghuiPvevWwlca5PwDA==
+react-i18next@^14.0.0:
+ version "14.0.0"
+ resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-14.0.0.tgz#eb39d2245fd1024237828c955f770e409a1ccb12"
+ integrity sha512-OCrS8rHNAmnr8ggGRDxjakzihrMW7HCbsplduTm3EuuQ6fyvWGT41ksZpqbduYoqJurBmEsEVZ1pILSUWkHZng==
dependencies:
- "@babel/runtime" "^7.20.6"
+ "@babel/runtime" "^7.22.5"
html-parse-stringify "^3.0.1"
"react-is@^16.12.0 || ^17.0.0 || ^18.0.0", react-is@^18.0.0, react-is@^18.2.0:
@@ -8049,10 +7848,10 @@ react-native-gesture-handler@~2.12.0:
lodash "^4.17.21"
prop-types "^15.7.2"
-react-native-localize@^3.0.0:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/react-native-localize/-/react-native-localize-3.0.2.tgz#43fa75c0097dbdb24a54ff320b3c8ad732407365"
- integrity sha512-/l/oE1LVNgIRRhLbhmfFMHiWV0xhUn0A0iz1ytLVRYywL7FTp8Rx2vkJS/q/RpExDvV7yLw2493XZBYIM1dnLQ==
+react-native-localize@^3.0.5:
+ version "3.0.5"
+ resolved "https://registry.yarnpkg.com/react-native-localize/-/react-native-localize-3.0.5.tgz#2065bc37fda4fc13a4eab0bfbff926c6333a05c0"
+ integrity sha512-tg3OzBY2654lgTrP2YYU4jMwk0ecWIoWLWCP6IAiiOgLiojo+A3NtroX84G3TpVHuCJ3mJkaTunVet5HVGS3AA==
react-native-reanimated@~3.3.0:
version "3.3.0"
@@ -8110,17 +7909,17 @@ react-native-svg@^6.2.1:
lodash "^4.16.6"
pegjs "^0.10.0"
-react-native@0.72.4:
- version "0.72.4"
- resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.72.4.tgz#97b57e22e4d7657eaf4d1f62a678511fcf9bdda7"
- integrity sha512-+vrObi0wZR+NeqL09KihAAdVlQ9IdplwznJWtYrjnQ4UbCW6rkzZJebRsugwUneSOKNFaHFEo1uKU89HsgtYBg==
+react-native@0.72.6:
+ version "0.72.6"
+ resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.72.6.tgz#9f8d090694907e2f83af22e115cc0e4a3d5fa626"
+ integrity sha512-RafPY2gM7mcrFySS8TL8x+TIO3q7oAlHpzEmC7Im6pmXni6n1AuufGaVh0Narbr1daxstw7yW7T9BKW5dpVc2A==
dependencies:
"@jest/create-cache-key-function" "^29.2.1"
- "@react-native-community/cli" "11.3.6"
- "@react-native-community/cli-platform-android" "11.3.6"
- "@react-native-community/cli-platform-ios" "11.3.6"
+ "@react-native-community/cli" "11.3.7"
+ "@react-native-community/cli-platform-android" "11.3.7"
+ "@react-native-community/cli-platform-ios" "11.3.7"
"@react-native/assets-registry" "^0.72.0"
- "@react-native/codegen" "^0.72.6"
+ "@react-native/codegen" "^0.72.7"
"@react-native/gradle-plugin" "^0.72.11"
"@react-native/js-polyfills" "^0.72.1"
"@react-native/normalize-colors" "^0.72.0"
@@ -8203,13 +8002,6 @@ readable-stream@~2.3.6:
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
-readdirp@~3.6.0:
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
- integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
- dependencies:
- picomatch "^2.2.1"
-
readline@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/readline/-/readline-1.3.0.tgz#c580d77ef2cfc8752b132498060dc9793a7ac01c"
@@ -8616,11 +8408,6 @@ shallow-clone@^3.0.0:
dependencies:
kind-of "^6.0.2"
-shallowequal@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8"
- integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==
-
shebang-command@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
@@ -8685,11 +8472,6 @@ sisteransi@^1.0.5:
resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
-slash@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
- integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==
-
slash@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
@@ -8964,36 +8746,6 @@ style-value-types@5.0.0:
hey-listen "^1.0.8"
tslib "^2.1.0"
-styled-components@^6.0.2:
- version "6.0.7"
- resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-6.0.7.tgz#1cf4a5e6b6181b29f941934df54af19b7ef05ab0"
- integrity sha512-xIwWuiRMYR43mskVsW9MGTRjSo7ol4bcVjT595fGUp3OLBJOlOgaiKaxsHdC4a2HqWKqKnh0CmcRbk5ogyDjTg==
- dependencies:
- "@babel/cli" "^7.21.0"
- "@babel/core" "^7.21.0"
- "@babel/helper-module-imports" "^7.18.6"
- "@babel/plugin-external-helpers" "^7.18.6"
- "@babel/plugin-proposal-class-properties" "^7.18.6"
- "@babel/plugin-proposal-object-rest-spread" "^7.20.7"
- "@babel/preset-env" "^7.20.2"
- "@babel/preset-react" "^7.18.6"
- "@babel/preset-typescript" "^7.21.0"
- "@babel/traverse" "^7.21.2"
- "@emotion/is-prop-valid" "^1.2.1"
- "@emotion/unitless" "^0.8.0"
- "@types/stylis" "^4.0.2"
- css-to-react-native "^3.2.0"
- csstype "^3.1.2"
- postcss "^8.4.23"
- shallowequal "^1.1.0"
- stylis "^4.3.0"
- tslib "^2.5.0"
-
-stylis@^4.3.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.3.0.tgz#abe305a669fc3d8777e10eefcfc73ad861c5588c"
- integrity sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==
-
sucrase@^3.20.0:
version "3.34.0"
resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.34.0.tgz#1e0e2d8fcf07f8b9c3569067d92fbd8690fb576f"
@@ -9240,7 +8992,7 @@ tslib@^1.8.1:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
-tslib@^2.0.1, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0:
+tslib@^2.0.1, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0:
version "2.6.2"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
@@ -9488,10 +9240,10 @@ url-parse@^1.5.3, url-parse@^1.5.9:
querystringify "^2.1.1"
requires-port "^1.0.0"
-use-latest-callback@^0.1.5:
- version "0.1.6"
- resolved "https://registry.yarnpkg.com/use-latest-callback/-/use-latest-callback-0.1.6.tgz#3fa6e7babbb5f9bfa24b5094b22939e1e92ebcf6"
- integrity sha512-VO/P91A/PmKH9bcN9a7O3duSuxe6M14ZoYXgA6a8dab8doWNdhiIHzEkX/jFeTTRBsX0Ubk6nG4q2NIjNsj+bg==
+use-latest-callback@^0.1.7:
+ version "0.1.9"
+ resolved "https://registry.yarnpkg.com/use-latest-callback/-/use-latest-callback-0.1.9.tgz#10191dc54257e65a8e52322127643a8940271e2a"
+ integrity sha512-CL/29uS74AwreI/f2oz2hLTW7ZqVeV5+gxFeGudzQrgkCytrHw33G4KbnQOrRlAEzzAFXi7dDLMC9zhWcVpzmw==
use-sync-external-store@1.2.0, use-sync-external-store@^1.0.0:
version "1.2.0"
@@ -9883,9 +9635,9 @@ yocto-queue@^0.1.0:
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
-zustand@^4.4.1:
- version "4.4.1"
- resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.4.1.tgz#0cd3a3e4756f21811bd956418fdc686877e8b3b0"
- integrity sha512-QCPfstAS4EBiTQzlaGP1gmorkh/UL1Leaj2tdj+zZCZ/9bm0WS7sI2wnfD5lpOszFqWJ1DcPnGoY8RDL61uokw==
+zustand@^4.4.7:
+ version "4.4.7"
+ resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.4.7.tgz#355406be6b11ab335f59a66d2cf9815e8f24038c"
+ integrity sha512-QFJWJMdlETcI69paJwhSMJz7PPWjVP8Sjhclxmxmxv/RYI7ZOvR5BHX+ktH0we9gTWQMxcne8q1OY8xxz604gw==
dependencies:
use-sync-external-store "1.2.0"