create-gufran-expo-app 2.0.4 → 2.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/README.md +60 -321
  2. package/bin/cli.js +0 -1
  3. package/package.json +4 -3
  4. package/template/src/navigation/AuthStack.tsx +6 -25
  5. package/template/src/navigation/MainStack.tsx +0 -148
  6. package/template/src/navigation/RootNavigator.tsx +4 -26
  7. package/template/src/navigation/index.ts +0 -1
  8. package/template/src/navigation/navigationRef.ts +1 -1
  9. package/template/src/screens/HomeScreen.tsx +3 -215
  10. package/template/src/screens/auth/LoginScreen.tsx +13 -13
  11. package/template/src/screens/auth/index.ts +1 -6
  12. package/template/src/screens/index.ts +0 -35
  13. package/template/src/services/api.ts +5 -5
  14. package/template/src/services/authService.ts +3 -299
  15. package/template/src/services/mainServices.ts +19 -1914
  16. package/template/src/types/navigation.ts +5 -155
  17. package/template/src/utils/index.ts +5 -8
  18. package/template/src/navigation/MiddleStack.tsx +0 -35
  19. package/template/src/screens/auth/AddMamber.tsx +0 -428
  20. package/template/src/screens/auth/ForgotPasswordScreen.tsx +0 -176
  21. package/template/src/screens/auth/OTPVerifyScreen.tsx +0 -359
  22. package/template/src/screens/auth/RegisterScreen.tsx +0 -430
  23. package/template/src/screens/auth/SuccessScreen.tsx +0 -201
  24. package/template/src/screens/chat/ChatScreen.tsx +0 -1819
  25. package/template/src/screens/chat/ChatThreadsScreen.tsx +0 -360
  26. package/template/src/screens/chat/ReportMessageScreen.tsx +0 -238
  27. package/template/src/screens/clubs/Announcements.tsx +0 -426
  28. package/template/src/screens/clubs/BuyRaffleTicketsScreen.tsx +0 -568
  29. package/template/src/screens/clubs/ClubDeteils.tsx +0 -497
  30. package/template/src/screens/clubs/JoinClub.tsx +0 -841
  31. package/template/src/screens/events/EventScreen.tsx +0 -460
  32. package/template/src/screens/raffles/MyReferralMembersScreen.tsx +0 -758
  33. package/template/src/screens/raffles/RaffleDetailsScreen.tsx +0 -762
  34. package/template/src/screens/raffles/RafflesScreen.tsx +0 -495
  35. package/template/src/screens/raffles/SetRaffleReminderScreen.tsx +0 -390
  36. package/template/src/screens/teams/JoinTeamScreen.tsx +0 -464
  37. package/template/src/screens/teams/MyTeamDetailsScreen.tsx +0 -979
  38. package/template/src/screens/teams/MyTeamScreen.tsx +0 -568
  39. package/template/src/screens/teams/PendingRequestsScreen.tsx +0 -426
  40. package/template/src/screens/volunteerOpportunities/SetReminderScreen.tsx +0 -631
  41. package/template/src/screens/volunteerOpportunities/VolunteerOpportunitiesDetailsScreen.tsx +0 -1049
  42. package/template/src/screens/volunteerOpportunities/VolunteerOpportunitiesScreen.tsx +0 -608
  43. package/template/src/utils/ClubSearchManager.ts +0 -222
@@ -4,16 +4,9 @@ import type { NativeStackScreenProps } from '@react-navigation/native-stack';
4
4
  export type AuthStackParamList = {
5
5
  Welcome: undefined;
6
6
  Login: undefined;
7
- Register: undefined;
8
- ForgotPassword: undefined;
9
- OTPVerify: undefined;
10
- Success: undefined;
11
7
  };
12
8
 
13
- // Middle Stack Parameter List
14
- export type MiddleStackParamList = {
15
- AddMember: undefined;
16
- };
9
+
17
10
 
18
11
  // Main App Stack Parameter List
19
12
  export type MainStackParamList = {
@@ -21,162 +14,27 @@ export type MainStackParamList = {
21
14
  Profile: { userId: string };
22
15
  Settings: undefined;
23
16
  Details: { itemId: string; title?: string };
24
- JoinClub: undefined;
25
- JoinTeam: {
26
- selectedClub?: any;
27
- selectedMember?: any;
28
- };
29
- MyTeam: {
30
- selectedClub?: any;
31
- selectedMember?: any;
32
- };
33
- MyTeamDetails: {
34
- club?: any;
35
- selectedClub?: any;
36
- selectedMember?: any;
37
- };
38
- Announcements: {
39
- selectedClub?: any;
40
- selectedMember?: any;
41
- };
42
- PendingRequests: any;
43
- ClubDetails: {
44
- TeamDetails?: any;
45
- clubName?: string;
46
- totalMembers?: number;
47
- clubCode?: string;
48
- clubAddress?: string;
49
- selectedMember?: any;
50
- [key: string]: any;
51
- };
52
- SportHub: {
53
- selectedClub?: any;
54
- selectedMember?: any;
55
- };
56
- ChatThreads: {
57
- team?: any;
58
- selectedClub?: any;
59
- selectedMember?: any;
60
- };
61
- ChatScreen: {
62
- itemDetails?: any;
63
- memberId?: string;
64
- teamId?: string;
65
- team?: any;
66
- userType?: string;
67
- };
68
- ReportMessage: {
69
- message: any;
70
- memberId: string;
71
- onReportSubmit?: (reason: string, message: any) => void;
72
- };
73
-
74
-
75
-
76
- // Raffles
77
- Raffles: {
78
- selectedClub?: any;
79
- selectedMember?: any;
80
- };
81
- RaffleDetails: {
82
- selectedClub?: any;
83
- selectedMember?: any;
84
- raffleId: number;
85
- };
86
- BuyRaffleTickets: {
87
- selectedClub?: any;
88
- selectedMember?: any;
89
- raffleId: number;
90
- raffleTitle: string;
91
- ticketOptions: Array<{
92
- id: number;
93
- raffleId: number;
94
- ticketCount: number;
95
- totalAmount: number;
96
- perTicketAmount: number;
97
- }>;
98
- };
99
- VolunteerOpportunitiesScreen:{
100
- selectedClub?: any;
101
- selectedMember?: any;
102
- }
103
- SetReminder:{
104
- item?:any
105
- selectedClub?: any;
106
- selectedMember?: any;
107
- }
108
- VolunteerOpportunitiesDetailsScreen:{
109
- item?:any
110
- selectedClub?: any;
111
- selectedMember?: any;
112
- },
113
- MyReferralMembers:{
114
- selectedClub?: any;
115
- selectedMember?: any;
116
- raffleId?: number;
117
- raffleTitle?: string;
118
- },
119
- SetRaffleReminder:{
120
- selectedClub?: any;
121
- selectedMember?: any;
122
- raffle?: any;
123
- }
124
-
125
- //Events
126
- EventScreen:{
127
- selectedClub?: any;
128
- selectedMember?: any;
129
- raffle?: any;
130
- }
17
+
131
18
  };
132
19
 
133
20
  // Root Stack Parameter List (combines Auth, Middle and Main)
134
- export type RootStackParamList = AuthStackParamList & MiddleStackParamList & MainStackParamList;
21
+ export type RootStackParamList = AuthStackParamList & MainStackParamList;
135
22
 
136
23
  // Auth Stack Navigation Props
137
24
  export type WelcomeScreenProps = NativeStackScreenProps<AuthStackParamList, 'Welcome'>;
138
25
  export type LoginScreenProps = NativeStackScreenProps<AuthStackParamList, 'Login'>;
139
- export type RegisterScreenProps = NativeStackScreenProps<AuthStackParamList, 'Register'>;
140
- export type ForgotPasswordScreenProps = NativeStackScreenProps<AuthStackParamList, 'ForgotPassword'>;
141
- export type OTPVerifyScreenProps = NativeStackScreenProps<AuthStackParamList, 'OTPVerify'>;
142
- export type SuccessScreenProps = NativeStackScreenProps<AuthStackParamList, 'Success'>;
143
26
 
144
- // Middle Stack Navigation Props
145
- export type AddMemberScreenProps = NativeStackScreenProps<MiddleStackParamList, 'AddMember'>;
27
+
146
28
 
147
29
  // Main Stack Navigation Props
148
30
  export type HomeScreenProps = NativeStackScreenProps<MainStackParamList, 'Home'>;
149
31
  export type ProfileScreenProps = NativeStackScreenProps<MainStackParamList, 'Profile'>;
150
32
  export type SettingsScreenProps = NativeStackScreenProps<MainStackParamList, 'Settings'>;
151
33
  export type DetailsScreenProps = NativeStackScreenProps<MainStackParamList, 'Details'>;
152
- export type JoinClubScreenProps = NativeStackScreenProps<MainStackParamList, 'JoinClub'>;
153
- export type ClubDetailsScreenProps = NativeStackScreenProps<MainStackParamList, 'ClubDetails'>;
154
- export type SportHubScreenProps = NativeStackScreenProps<MainStackParamList, 'SportHub'>;
155
34
 
156
35
 
157
36
 
158
- export type MyTeamScreen = NativeStackScreenProps<MainStackParamList, 'MyTeam'>;
159
- export type MyTeamDetailsScreenProps = NativeStackScreenProps<MainStackParamList, 'MyTeamDetails'>;
160
- export type PendingRequestsScreenProps = NativeStackScreenProps<MainStackParamList, 'PendingRequests'>;
161
- export type JoinTeamProps = NativeStackScreenProps<MainStackParamList, 'JoinTeam'>;
162
- export type AnnouncementsScreenProps = NativeStackScreenProps<MainStackParamList, 'Announcements'>;
163
37
 
164
- //Chat
165
- export type ChatThreadsScreenProps = NativeStackScreenProps<MainStackParamList, 'ChatThreads'>;
166
- export type ChatScreenProps = NativeStackScreenProps<MainStackParamList, 'ChatScreen'>;
167
-
168
- // VolunteerOpportunitiesScreen
169
- export type VolunteerOpportunitiesScreenProps = NativeStackScreenProps<MainStackParamList, 'VolunteerOpportunitiesScreen'>;
170
- export type VolunteerOpportunitiesDetailsScreenProps = NativeStackScreenProps<MainStackParamList, 'VolunteerOpportunitiesDetailsScreen'>;
171
- export type SetReminderScreenProps = NativeStackScreenProps<MainStackParamList, 'SetReminder'>;
172
-
173
- //Raffles
174
- export type RafflesScreenProps = NativeStackScreenProps<MainStackParamList, 'Raffles'>;
175
- export type MyReferralMembersScreenProps = NativeStackScreenProps<MainStackParamList, 'MyReferralMembers'>;
176
- export type SetRaffleReminderScreenProps = NativeStackScreenProps<MainStackParamList, 'SetRaffleReminder'>;
177
-
178
- //Event Screens
179
- export type EventScreenProps = NativeStackScreenProps<MainStackParamList, 'EventScreen'>;
180
38
 
181
39
  // Generic navigation prop types
182
40
  export type AuthStackScreenProps<T extends keyof AuthStackParamList> = NativeStackScreenProps<
@@ -184,23 +42,15 @@ export type AuthStackScreenProps<T extends keyof AuthStackParamList> = NativeSta
184
42
  T
185
43
  >;
186
44
 
187
- export type MiddleStackScreenProps<T extends keyof MiddleStackParamList> = NativeStackScreenProps<
188
- MiddleStackParamList,
189
- T
190
- >;
191
45
 
192
46
  export type MainStackScreenProps<T extends keyof MainStackParamList> = NativeStackScreenProps<
193
47
  MainStackParamList,
194
48
  T
195
49
  >;
196
50
 
197
- export type RootStackScreenProps<T extends keyof RootStackParamList> = NativeStackScreenProps<
198
- RootStackParamList,
199
- T
200
- >;
201
51
 
202
52
  declare global {
203
53
  namespace ReactNavigation {
204
- interface RootParamList extends RootStackParamList {}
54
+ interface RootParamList extends RootStackParamList { }
205
55
  }
206
56
  }
@@ -37,19 +37,19 @@ export const formatDateTime = (date: Date): string => {
37
37
  export const formatReminderDateTime = (dateString: string): string => {
38
38
  try {
39
39
  const date = new Date(dateString);
40
-
40
+
41
41
  // Format: "30 May 2025, 3:00 PM"
42
42
  const day = date.getDate();
43
43
  const month = date.toLocaleString('en-US', { month: 'short' });
44
44
  const year = date.getFullYear();
45
45
  const hours = date.getHours();
46
46
  const minutes = date.getMinutes();
47
-
47
+
48
48
  // Convert to 12-hour format
49
49
  const period = hours >= 12 ? 'PM' : 'AM';
50
50
  const displayHours = hours % 12 || 12;
51
51
  const displayMinutes = minutes.toString().padStart(2, '0');
52
-
52
+
53
53
  return `${day} ${month} ${year}, ${displayHours}:${displayMinutes} ${period}`;
54
54
  } catch (error) {
55
55
  console.error('Error formatting reminder date:', error);
@@ -74,13 +74,13 @@ export const isAndroid = (): boolean => {
74
74
  // API utilities
75
75
  export const createQueryString = (params: Record<string, any>): string => {
76
76
  const searchParams = new URLSearchParams();
77
-
77
+
78
78
  Object.entries(params).forEach(([key, value]) => {
79
79
  if (value !== null && value !== undefined && value !== '') {
80
80
  searchParams.append(key, String(value));
81
81
  }
82
82
  });
83
-
83
+
84
84
  return searchParams.toString();
85
85
  };
86
86
 
@@ -106,6 +106,3 @@ export * from './UploadDebugUtil';
106
106
  // Re-export AzureUploaderService
107
107
  export * from './AzureUploaderService';
108
108
 
109
- // Re-export ClubSearchManager
110
- export * from './ClubSearchManager';
111
-
@@ -1,35 +0,0 @@
1
- import React from 'react';
2
- import { createNativeStackNavigator } from '@react-navigation/native-stack';
3
- import { MiddleStackParamList } from '../types';
4
- import { AddMemberScreen } from '../screens/auth';
5
- import { theme } from '../constants';
6
-
7
- const Stack = createNativeStackNavigator<MiddleStackParamList>();
8
-
9
- export const MiddleStack: React.FC = () => {
10
- return (
11
- <Stack.Navigator
12
- id={undefined}
13
- initialRouteName="AddMember"
14
- screenOptions={{
15
- headerShown: false,
16
- headerStyle: {
17
- backgroundColor: theme.colors.background,
18
- },
19
- headerTintColor: theme.colors.text,
20
- headerTitleStyle: {
21
- fontWeight: theme.typography.fontWeight.semibold,
22
- fontSize: theme.typography.fontSize.lg,
23
- },
24
- headerBackTitle: '',
25
- animation: 'fade',
26
- headerShadowVisible: false,
27
- }}
28
- >
29
- <Stack.Screen
30
- name="AddMember"
31
- component={AddMemberScreen}
32
- />
33
- </Stack.Navigator>
34
- );
35
- };