aboutsummaryrefslogtreecommitdiff
path: root/src/routes/main/MainStackNavigator.tsx
blob: 8def19e340113c1d685ca9d698d207b6e9e19358 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
/**
 * Note the name userXId here, it refers to the id of the user being visited
 */
import {createStackNavigator} from '@react-navigation/stack';
import {
  CommentBaseType,
  MomentTagType,
  MomentType,
  ScreenType,
  SearchCategoryType,
} from '../../types';

export type MainStackParams = {
  SuggestedPeople: {
    screenType: ScreenType;
  };
  Upload: {
    screenType: ScreenType;
  };
  RequestContactsAccess: {
    screenType: ScreenType;
  };
  DiscoverUsers: {
    searchCategory: SearchCategoryType;
  };
  Profile: {
    userXId: string | undefined;
    screenType: ScreenType;
  };
  SettingsScreen: {};
  PrivacyScreen: {};
  AccountTypeScreen: {};
  SocialMediaTaggs: {
    socialMediaType: string;
    userXId: string | undefined;
    screenType: ScreenType;
  };
  CameraScreen: {
    screenType: ScreenType;
    selectedCategory?: string;
  };
  EditMedia: {
    media: {uri: string; isVideo: boolean};
    screenType: ScreenType;
    selectedCategory?: string;
  };
  CaptionScreen: {
    screenType: ScreenType;
    media?: {uri: string; isVideo: boolean; videoDuration: number | undefined};
    selectedCategory?: string;
    selectedTags?: MomentTagType[];
    moment?: MomentType;
  };
  ChoosingCategoryScreen: {
    newCustomCategory?: string;
  };
  TagFriendsScreen: {
    media: {
      uri: string;
      isVideo: boolean;
      videoDuration: number | undefined;
    };
    selectedTags?: MomentTagType[];
  };
  TagSelectionScreen: {
    selectedTags: MomentTagType[];
  };
  IndividualMoment: {
    moment: MomentType;
    userXId: string | undefined;
    screenType: ScreenType;
  };
  MomentCommentsScreen: {
    moment_id: string;
    userXId: string | undefined;
    screenType: ScreenType;
    comment_id?: string;
  };
  CommentReactionScreen: {
    comment: CommentBaseType;
    screenType: ScreenType;
  };
  FriendsListScreen: {
    userXId: string | undefined;
    screenType: ScreenType;
  };
  EditProfile: {
    userId: string;
    username: string;
  };
  CategorySelection: {
    newCustomCategory: string | undefined;
  };
  CreateCustomCategory: {
    existingCategories: string[];
    fromScreen: 'ChoosingCategoryScreen' | 'CategorySelection';
  };
  Notifications: {
    screenType: ScreenType;
  };
  MomentUploadPrompt: {
    screenType: ScreenType;
    momentCategory: string;
    profileBodyHeight: number;
    socialsBarHeight: number;
  };
  AnimatedTutorial: {
    screenType: ScreenType;
  };
  UpdateSPPicture: {
    editing: boolean;
  };
  BadgeSelection: {
    editing: boolean;
  };
  MutualBadgeHolders: {
    badge_id: string;
    badge_title: string;
    badge_img: string;
  };
  InviteFriendsScreen: undefined;
  SPWelcomeScreen: {};
  ChatList: undefined;
  Chat: undefined;
  NewChatModal: undefined;
};

export const MainStack = createStackNavigator<MainStackParams>();