Skip to content

Commit

Permalink
architecture revision
Browse files Browse the repository at this point in the history
  • Loading branch information
penteleichuk committed Mar 26, 2024
1 parent ca46c66 commit d008f79
Show file tree
Hide file tree
Showing 581 changed files with 572 additions and 488 deletions.
2 changes: 1 addition & 1 deletion index.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { AppRegistry, LogBox } from 'react-native';
import TrackPlayer from 'react-native-track-player';
import { googleSigninConfig } from 'shared/config/google';
import 'shared/config/i18n';
import { onMessageReceived } from 'shared/lib/utils/messageReceived';
import { onMessageReceived } from 'shared/utils/messageReceived';
import App from './src/app';
import { audioPlaybackService } from './src/entities/audio';

Expand Down
2 changes: 1 addition & 1 deletion src/app/index.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { ThemeProvider } from 'app/providers/ThemeProvider';
import { AuthProvider } from 'entities/auth';
import { ThemeProvider } from 'entities/theme';
import React from 'react';
import FlashMessage from 'react-native-flash-message';
import { SafeAreaProvider } from 'react-native-safe-area-context';
Expand Down
86 changes: 43 additions & 43 deletions src/app/navigation/ui/Navigation.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,53 +2,53 @@ import { DarkTheme, NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import { getIsAuth } from 'entities/auth';
import { getUserIsQuitting } from 'entities/user';
import { getIsActivation } from 'features/PassedActivation';
import { getIsActivation } from 'features/passed-activation';
import { memo } from 'react';
import RNBootSplash from 'react-native-bootsplash';
import { AudioPlayScreen } from 'screens/AudioPlayScreen';
import { AudioScreen } from 'screens/AudioScreen';
import { AuthScreen } from 'screens/AuthScreen';
import { AuthorScreen } from 'screens/AuthorScreen';
import { CardsScreen } from 'screens/CardsScreen';
import { ChangePasswordScreen } from 'screens/ChangePasswordScreen';
import { ChatScreen } from 'screens/ChatScreen';
import { FeedCreateScreen } from 'screens/FeedCreateScreen';
import { FeedDetailsScreen } from 'screens/FeedDetailsScreen';
import { FeedHelpScreen } from 'screens/FeedHelpScreen';
import { FeedsScreen } from 'screens/FeedsScreen';
import { ForgotScreen } from 'screens/ForgotScreen';
import { FriendAddScreen } from 'screens/FriendAddScreen';
import { FriendIdScreen } from 'screens/FriendIdScreen';
import { FriendPresentScreen } from 'screens/FriendPresentScreen';
import { FriendQRScreen } from 'screens/FriendQRScreen';
import { FriendScreen } from 'screens/FriendScreen';
import { InputScreen } from 'screens/InputScreen';
import { MarketScreen } from 'screens/MarketScreen';
import { NavigationHelpScreen } from 'screens/NavigationHelpScreen';
import { PickerScreen } from 'screens/PickerScreen';
import { BreatheScreen } from 'screens/Practice/BreatheScreen';
import { HappyScreen } from 'screens/Practice/HappyScreen';
import { MindfulnessScreen } from 'screens/Practice/MindfulnessScreen';
import { MorningScreen } from 'screens/Practice/MorningScreen';
import { WaterScreen } from 'screens/Practice/WaterScreen';
import { ProfileScreen } from 'screens/ProfileScreen';
import { ProfileSettingScreen } from 'screens/ProfileSettingScreen';
import { ProgressScreen } from 'screens/ProgressScreen';
import { ReadDetailsScreen } from 'screens/ReadDetailsScreen';
import { ReadScreen } from 'screens/ReadScreen';
import { RegistrationScreen } from 'screens/RegistrationScreen';
import { SubsScreen } from 'screens/SubsScreen';
import { TaskEditScreen } from 'screens/TaskEditScreen';
import { TaskScreen } from 'screens/TaskScreen';
import { TrackerScreen } from 'screens/TrackerScreen';
import { TrainerHelpScreen } from 'screens/TrainerHelpScreen';
import { VerifyScreen } from 'screens/VerifyScreen';
import { WelcomeInfoScreen } from 'screens/WelcomeInfoScreen';
import { WelcomeScreen } from 'screens/WelcomeScreen';
import { AudioScreen } from 'screens/audio/audio';
import { AudioPlayScreen } from 'screens/audio/audio-play';
import { ChangePasswordScreen } from 'screens/auth/change-password';
import { ForgotScreen } from 'screens/auth/forgot';
import { AuthScreen } from 'screens/auth/login';
import { RegistrationScreen } from 'screens/auth/registration';
import { VerifyScreen } from 'screens/auth/verify';
import { AuthorScreen } from 'screens/author';
import { CardsScreen } from 'screens/cards';
import { InputScreen } from 'screens/form/input';
import { PickerScreen } from 'screens/form/picker';
import { FriendQRScreen } from 'screens/friend/friend-QR';
import { FriendAddScreen } from 'screens/friend/friend-add';
import { FriendIdScreen } from 'screens/friend/friend-by-id';
import { FriendScreen } from 'screens/friend/friend-list';
import { FriendPresentScreen } from 'screens/friend/friend-present';
import { NavigationHelpScreen } from 'screens/help-navigation';
import { TrainerHelpScreen } from 'screens/help-trainer';
import { MarketScreen } from 'screens/market';
import { BreatheScreen } from 'screens/practice/breathe';
import { HappyScreen } from 'screens/practice/happy';
import { MindfulnessScreen } from 'screens/practice/mindfulness';
import { MorningScreen } from 'screens/practice/morning';
import { WaterScreen } from 'screens/practice/water';
import { ProfileScreen } from 'screens/profile/profile';
import { ProfileSettingScreen } from 'screens/profile/profile-setting';
import { ProgressScreen } from 'screens/progress';
import { ReadScreen } from 'screens/read/read';
import { ReadDetailsScreen } from 'screens/read/read-details';
import { SubsScreen } from 'screens/subs';
import { ChatScreen } from 'screens/tab-navigation/chat';
import { FeedCreateScreen } from 'screens/tab-navigation/feed/feed-create';
import { FeedDetailsScreen } from 'screens/tab-navigation/feed/feed-details';
import { FeedHelpScreen } from 'screens/tab-navigation/feed/feed-help';
import { FeedsScreen } from 'screens/tab-navigation/feed/feed-list';
import { TaskScreen } from 'screens/task/task';
import { TaskEditScreen } from 'screens/task/task-edit';
import { TrackerScreen } from 'screens/tracker';
import { WelcomeScreen } from 'screens/welcome';
import { WelcomeInfoScreen } from 'screens/welcome-info';
import { AppNavigation, NavigationStackLists } from 'shared/config/navigation';
import { useAppSelector } from 'shared/lib/hooks/useAppSelector';
import { useAppSelector } from 'shared/hooks/useAppSelector';
import { useTheme } from 'shared/lib/theme';
import { TabNavigation } from 'widgets/TabNavigation';
import { TabNavigation } from 'widgets/tab-navigation';

export const Stack = createNativeStackNavigator<NavigationStackLists>();

Expand Down
26 changes: 25 additions & 1 deletion src/app/providers/InitializedProvider/InitializedProvider.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import crashlytics from '@react-native-firebase/crashlytics';
import { authInitialized } from 'entities/auth';
import { inviteInitialaized } from 'entities/invited';
import { notificationInitialized } from 'entities/notification';
Expand All @@ -6,12 +7,17 @@ import {
subscriptionProfile,
} from 'entities/subscription';
import { FC, ReactNode, useEffect } from 'react';
import { useAppDispatch } from 'shared/lib/hooks/useAppDispatch';
import { getTrackingStatus } from 'react-native-tracking-transparency';
import { useAppDispatch } from 'shared/hooks/useAppDispatch';
import { delay } from 'shared/lib/delay';
import { isIos } from 'shared/lib/isIos';

interface InitializedProviderProps {
children: ReactNode;
}

const IS_IOS = isIos();

export const InitializedProvider: FC<InitializedProviderProps> = ({
children,
}) => {
Expand All @@ -30,5 +36,23 @@ export const InitializedProvider: FC<InitializedProviderProps> = ({
initialized();
}, []);

useEffect(() => {
(async () => {
await delay(3000);

if (IS_IOS) {
const trackingStatus = await getTrackingStatus();
if (
trackingStatus === 'authorized' ||
trackingStatus === 'unavailable'
) {
await crashlytics().setCrashlyticsCollectionEnabled(true);
}
} else {
await crashlytics().setCrashlyticsCollectionEnabled(true);
}
})();
}, []);

return children;
};
4 changes: 2 additions & 2 deletions src/app/providers/LanguageProvider/LanguageProvider.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { getLanguage } from 'features/LanguagePicker';
import { getLanguage } from 'features/language-picker';
import moment from 'moment';
import { FC, ReactNode, useEffect } from 'react';
import Tts from 'react-native-tts';
import i18n, { languageVoice } from 'shared/config/i18n';
import { useAppSelector } from 'shared/lib/hooks/useAppSelector';
import { useAppSelector } from 'shared/hooks/useAppSelector';

interface LanguageProviderProps {
children: ReactNode;
Expand Down
2 changes: 1 addition & 1 deletion src/app/providers/SheetProvider/SheetProvider.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import {
import React, { FC, createContext, useRef } from 'react';
import { GestureHandlerRootView } from 'react-native-gesture-handler';
import { FLEX } from 'shared/config/dimensions';
import * as Bottom from 'widgets/Sheet';
import * as Bottom from 'widgets/sheet';

export type SheetContextType = Record<
AppSheet,
Expand Down
4 changes: 2 additions & 2 deletions src/app/providers/StoreProvider/config/persistedReducer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@ import { createMigrate, persistReducer } from 'redux-persist';
import { rootReducer } from './reducer';

const rootMigrations = {
21: (state: any) => ({
22: (state: any) => ({
...state,
}),
};

const persistConfig = {
key: 'app',
version: 21,
version: 22,
storage: AsyncStorage,
migrate: createMigrate(rootMigrations),
// blacklist: [],
Expand Down
22 changes: 11 additions & 11 deletions src/app/providers/StoreProvider/config/reducer.ts
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
import { combineReducers } from '@reduxjs/toolkit';
import { themeReducer } from 'app/providers/ThemeProvider';
import { authReducer } from 'entities/auth';
import { invitedReducer } from 'entities/invited';
import { notificationReducer } from 'entities/notification';
import { subscriptionReducer } from 'entities/subscription';
import { themeReducer } from 'entities/theme';
import { userReducer } from 'entities/user';
import { currencyReducer } from 'features/CurrencyPicker';
import { languageReducer } from 'features/LanguagePicker';
import { progressReducer } from 'features/OpenCardProgress';
import { activationReducer } from 'features/PassedActivation';
import { playerReducer } from 'features/PlayerControl';
import { chatReducer } from 'features/SendMessageChat';
import { howMuchReducer } from 'features/SetHowMuchSmoke';
import { vibrationReducer } from 'features/ToggleVibration';
import { trackerReducer } from 'features/TrackerInitial';
import { tabNavigationReducer } from 'widgets/TabNavigation/model/slices/tabNavigationSlice';
import { currencyReducer } from 'features/currency-picker';
import { languageReducer } from 'features/language-picker';
import { progressReducer } from 'features/open-card-progres';
import { activationReducer } from 'features/passed-activation';
import { playerReducer } from 'features/player/player-control';
import { chatReducer } from 'features/send-message-chat';
import { howMuchReducer } from 'features/setting/set-how-much-smoke';
import { vibrationReducer } from 'features/setting/toggle-vibration';
import { trackerReducer } from 'features/tracker-initial';
import { tabNavigationReducer } from 'widgets/tab-navigation/model/slices/tabNavigationSlice';

export const rootReducer = combineReducers({
language: languageReducer,
Expand Down
1 change: 0 additions & 1 deletion src/app/providers/StoreProvider/config/store.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ export const store = configureStore({
});

export type RootState = ReturnType<typeof store.getState>;
export type AppDispatch = typeof store.dispatch;
export type AppThunk<ReturnType = void> = ThunkAction<
ReturnType,
RootState,
Expand Down
2 changes: 1 addition & 1 deletion src/app/providers/StoreProvider/index.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
export { store, type AppDispatch, type RootState } from './config/store';
export { store, type RootState } from './config/store';
export { StoreProvider } from './ui/StoreProvider';
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React, { FC, useEffect } from 'react';
import { Appearance } from 'react-native';
import { useAppDispatch } from 'shared/lib/hooks/useAppDispatch';
import { useAppSelector } from 'shared/lib/hooks/useAppSelector';
import { useAppDispatch } from 'shared/hooks/useAppDispatch';
import { useAppSelector } from 'shared/hooks/useAppSelector';
import { getColorScheme } from './../model/selectors/getColorScheme/getColorScheme';
import { getTheme } from './../model/selectors/getTheme/getTheme';
import { setTheme } from './../model/slice/themeSlice';
Expand Down
3 changes: 3 additions & 0 deletions src/app/types/types.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,8 @@ declare type StateSchema = ReturnType<
typeof import('./../providers/StoreProvider/config/store').store.getState
>;

declare type AppDispatch =
typeof import('./../providers/StoreProvider/config/store').store.dispatch;

declare type UserSchema = import('entities/user/model/types/user').UserSchema;
declare module 'Injector';
2 changes: 1 addition & 1 deletion src/entities/auth/model/api/authApi.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { AxiosResponse } from 'axios';
import { authInstance, instance } from 'shared/instance';
import { authInstance, instance } from 'shared/api';
import {
AuthLoginResponse,
AuthSocial,
Expand Down
2 changes: 1 addition & 1 deletion src/entities/auth/model/services/authLogout/authLogout.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { userLogout } from 'entities/user';
import {
USER_LOCALSTORAGE_ACCESS_TOKEN,
USER_LOCALSTORAGE_REFRESH_TOKEN,
} from 'shared/const/localstorage';
} from 'shared/api/const/localstorage';

export const authLogout = createAsyncThunk(
'auth/logout',
Expand Down
2 changes: 1 addition & 1 deletion src/entities/auth/model/services/fetchAuth/fetchAuth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { userInitialized } from 'entities/user';
import {
USER_LOCALSTORAGE_ACCESS_TOKEN,
USER_LOCALSTORAGE_REFRESH_TOKEN,
} from 'shared/const/localstorage';
} from 'shared/api/const/localstorage';
import { AuthLoginResponse } from './../../types/auth';

export const fetchAuth = createAsyncThunk(
Expand Down
4 changes: 2 additions & 2 deletions src/entities/auth/ui/AuthProvider/AuthProvider.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import AsyncStorage from '@react-native-async-storage/async-storage';
import { authLogout, getIsAuth } from 'entities/auth';
import React, { useEffect } from 'react';
import { useAppDispatch } from 'shared/lib/hooks/useAppDispatch';
import { useAppSelector } from 'shared/lib/hooks/useAppSelector';
import { useAppDispatch } from 'shared/hooks/useAppDispatch';
import { useAppSelector } from 'shared/hooks/useAppSelector';

type AuthProviderProps = {
children: React.ReactNode;
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { authInstance } from 'shared/instance';
import { getLocalize } from 'shared/lib/utils/getLocalize';
import { authInstance } from 'shared/api';
import { getLocalize } from 'shared/utils/statistics/getLocalize';
import { FeedEventTypes, FeedType } from './../types/feeds';

export const FeedApi = {
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useInfiniteQuery } from '@tanstack/react-query';
import { getLanguage } from 'features/LanguagePicker';
import { useAppSelector } from 'shared/lib/hooks/useAppSelector';
import { getLanguage } from 'features/language-picker';
import { useAppSelector } from 'shared/hooks/useAppSelector';
import { FeedApi } from './../../api/FeedApi';
import { QUERY_KEY_FEED_ALL, QUERY_KEY_FEED_ME } from './../../const/query-key';

Expand Down
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { authInstance } from 'shared/instance';
import { authInstance } from 'shared/api';
import { FriendSchema } from './../types/friends';

export const friendApi = {
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import { memo } from 'react';
import { Image, ImageSourcePropType, View } from 'react-native';
import { moderateScale } from 'shared/config/dimensions';
import { useTheme } from 'shared/lib/theme';
import { abbrNum } from 'shared/lib/utils/abbrNum';
import { CustomText, TextWeight } from 'shared/ui/CustomText';
import { abbrNum } from 'shared/utils/abbrNum';
import { styles } from './FriendMotivationItemStyle';

interface FriendMotivationItemProps {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { useTranslation } from 'react-i18next';
import { View } from 'react-native';
import * as Anims from 'shared/assets/anims';
import { AppNavigation } from 'shared/config/navigation';
import { useAppNavigation } from 'shared/lib/hooks/useAppNavigation';
import { useAppNavigation } from 'shared/hooks/useAppNavigation';
import { useTheme } from 'shared/lib/theme';
import { CustomText, TextSize } from 'shared/ui/CustomText';
import { styles } from './ToasterAuthStyle';
Expand Down
1 change: 1 addition & 0 deletions src/entities/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
// ## FIX dom-serializer
2 changes: 1 addition & 1 deletion src/entities/invited/model/api/InvitedApi.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { AxiosResponse } from 'axios';
import { authInstance, instance } from 'shared/instance';
import { authInstance, instance } from 'shared/api';

export const InvitedApi = {
async install() {
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { useFocusEffect } from '@react-navigation/native';
import { getIsAuth } from 'entities/auth';
import { getUserEmail, getUserIsBanned } from 'entities/user';
import React, { useState } from 'react';
import { useAppSelector } from 'shared/lib/hooks/useAppSelector';
import { useAppSelector } from 'shared/hooks/useAppSelector';

type Message = {
id: string;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ import { View } from 'react-native';
import Tooltip from 'rn-tooltip';
import * as Icons from 'shared/assets/icons';
import { moderateScale } from 'shared/config/dimensions';
import { useAppSelector } from 'shared/lib/hooks/useAppSelector';
import { useAppSelector } from 'shared/hooks/useAppSelector';
import { useTheme } from 'shared/lib/theme';
import { abbrNum } from 'shared/lib/utils/abbrNum';
import { CustomText, TextSize, TextWeight } from 'shared/ui/CustomText';
import { abbrNum } from 'shared/utils/abbrNum';
import { MessageTail } from './../MessageTail/MessageTail';
import { MessageTooltip } from './../MessageTooltip/MessageTooltip';
import { styles } from './MessageItemStyle';
Expand Down
2 changes: 1 addition & 1 deletion src/entities/notification/model/api/notificationApi.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { authInstance } from 'shared/instance';
import { authInstance } from 'shared/api';

export const notificationApi = {
async setToken(token: string) {
Expand Down
2 changes: 1 addition & 1 deletion src/entities/people/model/api/peopleApi.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { authInstance } from 'shared/instance';
import { authInstance } from 'shared/api';
import { PeopleType } from './../types/people';

export const PeopleApi = {
Expand Down
2 changes: 1 addition & 1 deletion src/entities/user/model/api/userApi.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { authInstance } from 'shared/instance';
import { authInstance } from 'shared/api';

export const UserApi = {
async info() {
Expand Down
3 changes: 0 additions & 3 deletions src/features/SetCigaretteCount/model/const/cigarette-count.ts

This file was deleted.

3 changes: 0 additions & 3 deletions src/features/SetCigaretteDay/model/const/cigarette-day.ts

This file was deleted.

Loading

0 comments on commit d008f79

Please sign in to comment.