Quellcode durchsuchen

feat: refactor API calls | hooks | new @api/* path

Oleksandr Honcharov vor 1 Jahr
Ursprung
Commit
125ecb11b6
29 geänderte Dateien mit 61 neuen und 38 gelöschten Zeilen
  1. 3 0
      app.config.ts
  2. 1 1
      src/components/FlatList/index.tsx
  3. 1 3
      src/modules/api/auth/auth-api.ts
  4. 0 0
      src/modules/api/auth/auth-query-keys.tsx
  5. 3 0
      src/modules/api/auth/index.ts
  6. 4 0
      src/modules/api/auth/queries/index.ts
  7. 3 3
      src/modules/api/auth/queries/use-post-join-test.tsx
  8. 3 3
      src/modules/api/auth/queries/use-post-login.tsx
  9. 3 3
      src/modules/api/auth/queries/use-post-register.tsx
  10. 3 3
      src/modules/api/auth/queries/use-post-reset-password.tsx
  11. 3 0
      src/modules/api/regions/index.ts
  12. 1 0
      src/modules/api/regions/queries/index.ts
  13. 3 3
      src/modules/api/regions/queries/use-post-get-regions.tsx
  14. 0 0
      src/modules/api/regions/regions-api.tsx
  15. 0 0
      src/modules/api/regions/regions-query-keys.tsx
  16. 0 0
      src/modules/api/response-type.ts
  17. 3 0
      src/modules/api/user/index.ts
  18. 2 0
      src/modules/api/user/queries/index.ts
  19. 3 3
      src/modules/api/user/queries/use-post-get-profile.tsx
  20. 3 3
      src/modules/api/user/queries/use-post-set-profile.tsx
  21. 0 0
      src/modules/api/user/user-api.tsx
  22. 0 0
      src/modules/api/user/user-query-keys.tsx
  23. 9 7
      src/screens/InAppScreens/ProfileScreen/Profile/edit-personal-info.tsx
  24. 1 1
      src/screens/InAppScreens/ProfileScreen/index.tsx
  25. 1 1
      src/screens/LoginScreen/index.tsx
  26. 1 1
      src/screens/RegisterScreen/EditAccount/index.tsx
  27. 1 1
      src/screens/RegisterScreen/JoinUs/index.tsx
  28. 1 1
      src/screens/ResetPasswordScreen/index.tsx
  29. 5 1
      tsconfig.json

+ 3 - 0
app.config.ts

@@ -31,6 +31,9 @@ export default ({ config }: ConfigContext): ExpoConfig => ({
       projectId: env.EAS_PROJECT_ID
     }
   },
+  experiments: {
+    tsconfigPaths: true
+  },
   splash: {
     image: './assets/splash.png',
     resizeMode: 'cover'

+ 1 - 1
src/components/FlatList/index.tsx

@@ -3,7 +3,7 @@ import { FlatList as List, SafeAreaView, View } from 'react-native';
 import { Input } from '../Input';
 import { styles } from './styles';
 import { Item, ItemData } from './item';
-import { useGetRegionsWithFlagQuery } from '../../modules/auth/regions/queries/use-post-get-regions';
+import { useGetRegionsWithFlagQuery } from '@api/regions';
 
 type Props = {
   itemObject: (object: any) => void;

+ 1 - 3
src/modules/auth/api/auth-api.ts → src/modules/api/auth/auth-api.ts

@@ -2,9 +2,7 @@ import { request } from '../../../utils';
 import { API } from '../../../types';
 import { ResponseType } from '../response-type';
 
-import { UserRegistrationData } from './queries/use-post-register';
-import { UserResetPasswordData } from './queries/use-post-reset-password';
-import { JoinTestTypes } from './queries/use-post-join-test';
+import { UserRegistrationData, UserResetPasswordData, JoinTestTypes } from './queries';
 
 export interface PostLoginUserReturn extends ResponseType {
   token: string;

+ 0 - 0
src/modules/auth/api/auth-query-keys.tsx → src/modules/api/auth/auth-query-keys.tsx


+ 3 - 0
src/modules/api/auth/index.ts

@@ -0,0 +1,3 @@
+export * from './queries';
+export * from './auth-api';
+export * from './auth-query-keys';

+ 4 - 0
src/modules/api/auth/queries/index.ts

@@ -0,0 +1,4 @@
+export * from './use-post-join-test';
+export * from './use-post-login';
+export * from './use-post-register';
+export * from './use-post-reset-password';

+ 3 - 3
src/modules/auth/api/queries/use-post-join-test.tsx → src/modules/api/auth/queries/use-post-join-test.tsx

@@ -1,7 +1,7 @@
 import { useMutation } from '@tanstack/react-query';
-import { authApi, UserJoinTestReturn } from '../auth-api';
-import { BaseAxiosError } from '../../../../types';
-import { authQueryKeys } from '../auth-query-keys';
+import { authApi, authQueryKeys, UserJoinTestReturn } from '@api/auth';
+
+import type { BaseAxiosError } from '../../../../types';
 
 export type JoinTestTypes = {
   username: string;

+ 3 - 3
src/modules/auth/api/queries/use-post-login.tsx → src/modules/api/auth/queries/use-post-login.tsx

@@ -1,7 +1,7 @@
 import { useMutation } from '@tanstack/react-query';
-import { authApi, PostLoginUserReturn } from '../auth-api';
-import { BaseAxiosError } from '../../../../types';
-import { authQueryKeys } from '../auth-query-keys';
+import { authApi, authQueryKeys, PostLoginUserReturn } from '@api/auth';
+
+import type { BaseAxiosError } from '../../../../types';
 
 type LoginTypes = {
   login: string;

+ 3 - 3
src/modules/auth/api/queries/use-post-register.tsx → src/modules/api/auth/queries/use-post-register.tsx

@@ -1,7 +1,7 @@
 import { useMutation } from '@tanstack/react-query';
-import { authApi, PostRegisterUserReturn } from '../auth-api';
-import { BaseAxiosError } from '../../../../types';
-import { authQueryKeys } from '../auth-query-keys';
+import { authApi, authQueryKeys, PostRegisterUserReturn } from '@api/auth';
+
+import type { BaseAxiosError } from '../../../../types';
 
 export type UserRegistrationData = {
   user: {

+ 3 - 3
src/modules/auth/api/queries/use-post-reset-password.tsx → src/modules/api/auth/queries/use-post-reset-password.tsx

@@ -1,7 +1,7 @@
 import { useMutation } from '@tanstack/react-query';
-import { authApi, UserResetPasswordReturn } from '../auth-api';
-import { BaseAxiosError } from '../../../../types';
-import { authQueryKeys } from '../auth-query-keys';
+import { authApi, authQueryKeys, UserResetPasswordReturn } from '@api/auth';
+
+import type { BaseAxiosError } from '../../../../types';
 
 export type UserResetPasswordData = {
   email: string;

+ 3 - 0
src/modules/api/regions/index.ts

@@ -0,0 +1,3 @@
+export * from './queries';
+export * from './regions-api';
+export * from './regions-query-keys';

+ 1 - 0
src/modules/api/regions/queries/index.ts

@@ -0,0 +1 @@
+export * from './use-post-get-regions';

+ 3 - 3
src/modules/auth/regions/queries/use-post-get-regions.tsx → src/modules/api/regions/queries/use-post-get-regions.tsx

@@ -1,7 +1,7 @@
 import { useQuery } from '@tanstack/react-query';
-import { regionsApi, PostGetRegionsReturn } from '../regions-api';
-import { BaseAxiosError } from '../../../../types';
-import { regionQueryKeys } from '../regions-query-keys';
+import { regionsApi, regionQueryKeys, PostGetRegionsReturn } from '@api/regions';
+
+import type { BaseAxiosError } from '../../../../types';
 
 export const useGetRegionsWithFlagQuery = (enabled: boolean) => {
   return useQuery<PostGetRegionsReturn, BaseAxiosError>({

+ 0 - 0
src/modules/auth/regions/regions-api.tsx → src/modules/api/regions/regions-api.tsx


+ 0 - 0
src/modules/auth/regions/regions-query-keys.tsx → src/modules/api/regions/regions-query-keys.tsx


+ 0 - 0
src/modules/auth/response-type.ts → src/modules/api/response-type.ts


+ 3 - 0
src/modules/api/user/index.ts

@@ -0,0 +1,3 @@
+export * from './queries';
+export * from './user-api';
+export * from './user-query-keys';

+ 2 - 0
src/modules/api/user/queries/index.ts

@@ -0,0 +1,2 @@
+export * from './use-post-get-profile';
+export * from './use-post-set-profile';

+ 3 - 3
src/modules/auth/user/queries/use-post-get-profile.tsx → src/modules/api/user/queries/use-post-get-profile.tsx

@@ -1,7 +1,7 @@
 import { useQuery } from '@tanstack/react-query';
-import { userApi, PostGetProfileData } from '../user-api';
-import { BaseAxiosError } from '../../../../types';
-import { userQueryKeys } from '../user-query-keys';
+import { userApi, userQueryKeys, PostGetProfileData } from '@api/user';
+
+import type { BaseAxiosError } from '../../../../types';
 
 export const usePostGetProfileQuery = (token: string, enabled: boolean) => {
   return useQuery<PostGetProfileData, BaseAxiosError>({

+ 3 - 3
src/modules/auth/user/queries/use-post-set-profile.tsx → src/modules/api/user/queries/use-post-set-profile.tsx

@@ -1,7 +1,7 @@
 import { useMutation } from '@tanstack/react-query';
-import { userApi, PostSetProfileDataReturn, PostSetProfileData } from '../user-api';
-import { BaseAxiosError } from '../../../../types';
-import { userQueryKeys } from '../user-query-keys';
+import { userApi, userQueryKeys, PostSetProfileDataReturn, PostSetProfileData } from '@api/user';
+
+import type { BaseAxiosError } from '../../../../types';
 
 export const usePostSetProfileMutation = () => {
   return useMutation<

+ 0 - 0
src/modules/auth/user/user-api.tsx → src/modules/api/user/user-api.tsx


+ 0 - 0
src/modules/auth/user/user-query-keys.tsx → src/modules/api/user/user-query-keys.tsx


+ 9 - 7
src/screens/InAppScreens/ProfileScreen/Profile/edit-personal-info.tsx

@@ -7,19 +7,21 @@ import { useNavigation } from '@react-navigation/native';
 import { useQueryClient } from '@tanstack/react-query';
 import { Image } from 'expo-image';
 
+import {
+  usePostGetProfileQuery,
+  usePostSetProfileMutation,
+  userQueryKeys,
+  type PostSetProfileData
+} from '@api/user';
+
+import { useGetRegionsWithFlagQuery } from '@api/regions';
+
 import { API_HOST } from '../../../../constants';
 
 import { AvatarPicker, BigText, Header, Input, PageWrapper, Button } from '../../../../components';
 import { InputDatePicker } from '../../../../components/Calendar/InputDatePicker';
 import { ModalFlatList } from '../../../../components/FlatList/modal-flatlist';
 
-import { usePostGetProfileQuery } from '../../../../modules/auth/user/queries/use-post-get-profile';
-import { useGetRegionsWithFlagQuery } from '../../../../modules/auth/regions/queries/use-post-get-regions';
-import { usePostSetProfileMutation } from '../../../../modules/auth/user/queries/use-post-set-profile';
-import { userQueryKeys } from '../../../../modules/auth/user/user-query-keys';
-
-import type { PostSetProfileData } from '../../../../modules/auth/user/user-api';
-
 import { storage, StoreType } from '../../../../storage';
 import { Colors } from '../../../../theme';
 

+ 1 - 1
src/screens/InAppScreens/ProfileScreen/index.tsx

@@ -10,7 +10,7 @@ import { styles } from './styles';
 
 import { API_HOST } from '../../../constants';
 
-import { usePostGetProfileQuery } from '../../../modules/auth/user/queries/use-post-get-profile';
+import { usePostGetProfileQuery } from '@api/user';
 
 import { NAVIGATION_PAGES } from '../../../types';
 import { navigationOpts } from './navigation-opts';

+ 1 - 1
src/screens/LoginScreen/index.tsx

@@ -10,7 +10,7 @@ import { ButtonVariants } from '../../types/components';
 import { storage } from '../../storage';
 import { NAVIGATION_PAGES } from '../../types';
 
-import { useLoginMutation } from '../../modules/auth/api/queries/use-post-login';
+import { useLoginMutation } from '@api/auth';
 
 type Props = {
   navigation: NavigationProp<any>;

+ 1 - 1
src/screens/RegisterScreen/EditAccount/index.tsx

@@ -8,7 +8,7 @@ import { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view
 import { AvatarPicker, BigText, Button, Header, Input, PageWrapper } from '../../../components';
 import { InputDatePicker } from '../../../components/Calendar/InputDatePicker';
 import { ModalFlatList } from '../../../components/FlatList/modal-flatlist';
-import { useRegisterMutation } from '../../../modules/auth/api/queries/use-post-register';
+import { useRegisterMutation } from '@api/auth';
 import { storage } from '../../../storage';
 
 import store from '../../../storage/zustand';

+ 1 - 1
src/screens/RegisterScreen/JoinUs/index.tsx

@@ -7,7 +7,7 @@ import { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view
 
 import { PageWrapper, Header, Button, BigText, CheckBox, Input } from '../../../components';
 import { NAVIGATION_PAGES } from '../../../types';
-import { useJoinTestMutation } from '../../../modules/auth/api/queries/use-post-join-test';
+import { useJoinTestMutation } from '@api/auth';
 import store from '../../../storage/zustand';
 
 type Props = {

+ 1 - 1
src/screens/ResetPasswordScreen/index.tsx

@@ -6,7 +6,7 @@ import * as yup from 'yup';
 import { PageWrapper, Header, BigText, Button, Input } from '../../components/';
 
 import { styles } from './styles';
-import { useResetPasswordMutation } from '../../modules/auth/api/queries/use-post-reset-password';
+import { useResetPasswordMutation } from '@api/auth';
 
 const ResetPasswordSchema = yup.object({
   email: yup.string().email().required()

+ 5 - 1
tsconfig.json

@@ -1,6 +1,10 @@
 {
   "extends": "expo/tsconfig.base",
   "compilerOptions": {
-    "strict": true
+    "strict": true,
+    "baseUrl": ".",
+    "paths": {
+      "@api/*": ["src/modules/api/*"]
+    }
   }
 }