ubkerp.transport.module 0.1.0

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 (152) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +136 -0
  3. package/lib/commonjs/assets/index.js +6 -0
  4. package/lib/commonjs/assets/index.js.map +1 -0
  5. package/lib/commonjs/components/index.js +6 -0
  6. package/lib/commonjs/components/index.js.map +1 -0
  7. package/lib/commonjs/constants/index.js +6 -0
  8. package/lib/commonjs/constants/index.js.map +1 -0
  9. package/lib/commonjs/hooks/index.js +6 -0
  10. package/lib/commonjs/hooks/index.js.map +1 -0
  11. package/lib/commonjs/index.js +34 -0
  12. package/lib/commonjs/index.js.map +1 -0
  13. package/lib/commonjs/navigation/index.js +6 -0
  14. package/lib/commonjs/navigation/index.js.map +1 -0
  15. package/lib/commonjs/package.json +1 -0
  16. package/lib/commonjs/providers/TransportContext.js +9 -0
  17. package/lib/commonjs/providers/TransportContext.js.map +1 -0
  18. package/lib/commonjs/providers/TransportProvider.js +46 -0
  19. package/lib/commonjs/providers/TransportProvider.js.map +1 -0
  20. package/lib/commonjs/providers/types.js +6 -0
  21. package/lib/commonjs/providers/types.js.map +1 -0
  22. package/lib/commonjs/providers/useTransport.js +16 -0
  23. package/lib/commonjs/providers/useTransport.js.map +1 -0
  24. package/lib/commonjs/screens/StudentRouteDetails/StudentRouteDetailsScreen.js +308 -0
  25. package/lib/commonjs/screens/StudentRouteDetails/StudentRouteDetailsScreen.js.map +1 -0
  26. package/lib/commonjs/screens/TransportDashboard/TransportDashboard.js +87 -0
  27. package/lib/commonjs/screens/TransportDashboard/TransportDashboard.js.map +1 -0
  28. package/lib/commonjs/services/api/createApiClient.js +116 -0
  29. package/lib/commonjs/services/api/createApiClient.js.map +1 -0
  30. package/lib/commonjs/services/api/types.js +6 -0
  31. package/lib/commonjs/services/api/types.js.map +1 -0
  32. package/lib/commonjs/services/index.js +6 -0
  33. package/lib/commonjs/services/index.js.map +1 -0
  34. package/lib/commonjs/services/transport/studentRouteDetails.js +10 -0
  35. package/lib/commonjs/services/transport/studentRouteDetails.js.map +1 -0
  36. package/lib/commonjs/services/transport/types.js +2 -0
  37. package/lib/commonjs/services/transport/types.js.map +1 -0
  38. package/lib/commonjs/store/index.js +6 -0
  39. package/lib/commonjs/store/index.js.map +1 -0
  40. package/lib/commonjs/types/index.js +2 -0
  41. package/lib/commonjs/types/index.js.map +1 -0
  42. package/lib/commonjs/types/transport.js +2 -0
  43. package/lib/commonjs/types/transport.js.map +1 -0
  44. package/lib/commonjs/utils/index.js +6 -0
  45. package/lib/commonjs/utils/index.js.map +1 -0
  46. package/lib/module/assets/index.js +4 -0
  47. package/lib/module/assets/index.js.map +1 -0
  48. package/lib/module/components/index.js +4 -0
  49. package/lib/module/components/index.js.map +1 -0
  50. package/lib/module/constants/index.js +4 -0
  51. package/lib/module/constants/index.js.map +1 -0
  52. package/lib/module/hooks/index.js +4 -0
  53. package/lib/module/hooks/index.js.map +1 -0
  54. package/lib/module/index.js +7 -0
  55. package/lib/module/index.js.map +1 -0
  56. package/lib/module/navigation/index.js +4 -0
  57. package/lib/module/navigation/index.js.map +1 -0
  58. package/lib/module/package.json +1 -0
  59. package/lib/module/providers/TransportContext.js +5 -0
  60. package/lib/module/providers/TransportContext.js.map +1 -0
  61. package/lib/module/providers/TransportProvider.js +41 -0
  62. package/lib/module/providers/TransportProvider.js.map +1 -0
  63. package/lib/module/providers/types.js +4 -0
  64. package/lib/module/providers/types.js.map +1 -0
  65. package/lib/module/providers/useTransport.js +12 -0
  66. package/lib/module/providers/useTransport.js.map +1 -0
  67. package/lib/module/screens/StudentRouteDetails/StudentRouteDetailsScreen.js +303 -0
  68. package/lib/module/screens/StudentRouteDetails/StudentRouteDetailsScreen.js.map +1 -0
  69. package/lib/module/screens/TransportDashboard/TransportDashboard.js +82 -0
  70. package/lib/module/screens/TransportDashboard/TransportDashboard.js.map +1 -0
  71. package/lib/module/services/api/createApiClient.js +111 -0
  72. package/lib/module/services/api/createApiClient.js.map +1 -0
  73. package/lib/module/services/api/types.js +4 -0
  74. package/lib/module/services/api/types.js.map +1 -0
  75. package/lib/module/services/index.js +4 -0
  76. package/lib/module/services/index.js.map +1 -0
  77. package/lib/module/services/transport/studentRouteDetails.js +6 -0
  78. package/lib/module/services/transport/studentRouteDetails.js.map +1 -0
  79. package/lib/module/services/transport/types.js +2 -0
  80. package/lib/module/services/transport/types.js.map +1 -0
  81. package/lib/module/store/index.js +4 -0
  82. package/lib/module/store/index.js.map +1 -0
  83. package/lib/module/types/index.js +2 -0
  84. package/lib/module/types/index.js.map +1 -0
  85. package/lib/module/types/transport.js +2 -0
  86. package/lib/module/types/transport.js.map +1 -0
  87. package/lib/module/utils/index.js +4 -0
  88. package/lib/module/utils/index.js.map +1 -0
  89. package/lib/typescript/assets/index.d.ts +2 -0
  90. package/lib/typescript/assets/index.d.ts.map +1 -0
  91. package/lib/typescript/components/index.d.ts +2 -0
  92. package/lib/typescript/components/index.d.ts.map +1 -0
  93. package/lib/typescript/constants/index.d.ts +2 -0
  94. package/lib/typescript/constants/index.d.ts.map +1 -0
  95. package/lib/typescript/hooks/index.d.ts +2 -0
  96. package/lib/typescript/hooks/index.d.ts.map +1 -0
  97. package/lib/typescript/index.d.ts +8 -0
  98. package/lib/typescript/index.d.ts.map +1 -0
  99. package/lib/typescript/navigation/index.d.ts +2 -0
  100. package/lib/typescript/navigation/index.d.ts.map +1 -0
  101. package/lib/typescript/providers/TransportContext.d.ts +8 -0
  102. package/lib/typescript/providers/TransportContext.d.ts.map +1 -0
  103. package/lib/typescript/providers/TransportProvider.d.ts +3 -0
  104. package/lib/typescript/providers/TransportProvider.d.ts.map +1 -0
  105. package/lib/typescript/providers/types.d.ts +28 -0
  106. package/lib/typescript/providers/types.d.ts.map +1 -0
  107. package/lib/typescript/providers/useTransport.d.ts +2 -0
  108. package/lib/typescript/providers/useTransport.d.ts.map +1 -0
  109. package/lib/typescript/screens/StudentRouteDetails/StudentRouteDetailsScreen.d.ts +6 -0
  110. package/lib/typescript/screens/StudentRouteDetails/StudentRouteDetailsScreen.d.ts.map +1 -0
  111. package/lib/typescript/screens/TransportDashboard/TransportDashboard.d.ts +12 -0
  112. package/lib/typescript/screens/TransportDashboard/TransportDashboard.d.ts.map +1 -0
  113. package/lib/typescript/services/api/createApiClient.d.ts +18 -0
  114. package/lib/typescript/services/api/createApiClient.d.ts.map +1 -0
  115. package/lib/typescript/services/api/types.d.ts +18 -0
  116. package/lib/typescript/services/api/types.d.ts.map +1 -0
  117. package/lib/typescript/services/index.d.ts +2 -0
  118. package/lib/typescript/services/index.d.ts.map +1 -0
  119. package/lib/typescript/services/transport/studentRouteDetails.d.ts +5 -0
  120. package/lib/typescript/services/transport/studentRouteDetails.d.ts.map +1 -0
  121. package/lib/typescript/services/transport/types.d.ts +7 -0
  122. package/lib/typescript/services/transport/types.d.ts.map +1 -0
  123. package/lib/typescript/store/index.d.ts +2 -0
  124. package/lib/typescript/store/index.d.ts.map +1 -0
  125. package/lib/typescript/types/index.d.ts +2 -0
  126. package/lib/typescript/types/index.d.ts.map +1 -0
  127. package/lib/typescript/types/transport.d.ts +12 -0
  128. package/lib/typescript/types/transport.d.ts.map +1 -0
  129. package/lib/typescript/utils/index.d.ts +2 -0
  130. package/lib/typescript/utils/index.d.ts.map +1 -0
  131. package/package.json +61 -0
  132. package/src/assets/index.ts +2 -0
  133. package/src/components/index.ts +2 -0
  134. package/src/constants/index.ts +2 -0
  135. package/src/hooks/index.ts +2 -0
  136. package/src/index.ts +10 -0
  137. package/src/navigation/index.ts +2 -0
  138. package/src/providers/TransportContext.ts +11 -0
  139. package/src/providers/TransportProvider.tsx +47 -0
  140. package/src/providers/types.ts +28 -0
  141. package/src/providers/useTransport.ts +11 -0
  142. package/src/screens/StudentRouteDetails/StudentRouteDetailsScreen.tsx +284 -0
  143. package/src/screens/TransportDashboard/TransportDashboard.tsx +93 -0
  144. package/src/services/api/createApiClient.ts +170 -0
  145. package/src/services/api/types.ts +30 -0
  146. package/src/services/index.ts +2 -0
  147. package/src/services/transport/studentRouteDetails.ts +10 -0
  148. package/src/services/transport/types.ts +7 -0
  149. package/src/store/index.ts +2 -0
  150. package/src/types/index.ts +2 -0
  151. package/src/types/transport.ts +12 -0
  152. package/src/utils/index.ts +2 -0
@@ -0,0 +1,303 @@
1
+ "use strict";
2
+
3
+ import React, { useCallback, useEffect, useMemo, useState } from 'react';
4
+ import { ActivityIndicator, Alert, Linking, ScrollView, StyleSheet, Text, TouchableOpacity, View, Image } from 'react-native';
5
+ import { useTransport } from "../../providers/useTransport.js";
6
+ import { getStudentRouteDetails } from "../../services/transport/studentRouteDetails.js";
7
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
+ function buildDriverImageUrl(args) {
9
+ if (!args.fileBaseUrl || !args.driverImage) return undefined;
10
+ const base = args.fileBaseUrl.endsWith('/') ? args.fileBaseUrl.slice(0, -1) : args.fileBaseUrl;
11
+ const img = args.driverImage.startsWith('/') ? args.driverImage.slice(1) : args.driverImage;
12
+ return `${base}/staff/document/${img}`;
13
+ }
14
+ export function StudentRouteDetailsScreen({
15
+ renderTop
16
+ }) {
17
+ const {
18
+ api,
19
+ fileBaseUrl
20
+ } = useTransport();
21
+ const [loading, setLoading] = useState(true);
22
+ const [data, setData] = useState(null);
23
+ const [loadError, setLoadError] = useState(null);
24
+ const driverImageUrl = useMemo(() => {
25
+ return buildDriverImageUrl({
26
+ fileBaseUrl,
27
+ driverImage: data?.driver_image
28
+ });
29
+ }, [data?.driver_image, fileBaseUrl]);
30
+ const load = useCallback(async () => {
31
+ try {
32
+ setLoading(true);
33
+ setLoadError(null);
34
+ const res = await getStudentRouteDetails(api);
35
+ const first = Array.isArray(res.data) ? res.data[0] : undefined;
36
+ setData(first ?? null);
37
+ } catch (e) {
38
+ setData(null);
39
+ setLoadError('Failed to load transport route details');
40
+ } finally {
41
+ setLoading(false);
42
+ }
43
+ }, [api]);
44
+ useEffect(() => {
45
+ load();
46
+ }, [load]);
47
+ const handleCall = useCallback(async () => {
48
+ const phone = data?.contact_number;
49
+ if (!phone) {
50
+ Alert.alert('Error', 'Contact number not available');
51
+ return;
52
+ }
53
+ const phoneNumber = phone.toString().replace(/[^0-9+]/g, '');
54
+ const url = `tel:${phoneNumber}`;
55
+ const supported = await Linking.canOpenURL(url);
56
+ if (!supported) {
57
+ Alert.alert('Error', 'Phone calls are not supported on this device');
58
+ return;
59
+ }
60
+ await Linking.openURL(url);
61
+ }, [data?.contact_number]);
62
+ if (loading) {
63
+ return /*#__PURE__*/_jsx(View, {
64
+ style: styles.center,
65
+ children: /*#__PURE__*/_jsx(ActivityIndicator, {
66
+ size: "large"
67
+ })
68
+ });
69
+ }
70
+ if (!data?.route_title) {
71
+ return /*#__PURE__*/_jsx(View, {
72
+ style: styles.center,
73
+ children: loadError ? /*#__PURE__*/_jsx(Text, {
74
+ style: styles.errorText,
75
+ children: loadError
76
+ }) : /*#__PURE__*/_jsx(Text, {
77
+ style: styles.noDataText,
78
+ children: "No Data Found"
79
+ })
80
+ });
81
+ }
82
+ return /*#__PURE__*/_jsxs(View, {
83
+ style: styles.container,
84
+ children: [renderTop ? renderTop() : null, /*#__PURE__*/_jsxs(ScrollView, {
85
+ showsVerticalScrollIndicator: false,
86
+ children: [/*#__PURE__*/_jsxs(View, {
87
+ style: styles.routeTitleCard,
88
+ children: [/*#__PURE__*/_jsx(Text, {
89
+ style: styles.routeTitle,
90
+ children: data.route_title
91
+ }), /*#__PURE__*/_jsx(Text, {
92
+ style: styles.routeSubtitle,
93
+ children: "Route Details"
94
+ })]
95
+ }), /*#__PURE__*/_jsxs(View, {
96
+ style: styles.card,
97
+ children: [/*#__PURE__*/_jsx(Text, {
98
+ style: styles.cardTitle,
99
+ children: "Vehicle Information"
100
+ }), /*#__PURE__*/_jsxs(View, {
101
+ style: styles.detailRow,
102
+ children: [/*#__PURE__*/_jsx(Text, {
103
+ style: styles.detailLabel,
104
+ children: "Vehicle No:"
105
+ }), /*#__PURE__*/_jsx(Text, {
106
+ style: styles.detailValue,
107
+ children: data.vehicle_no ?? '-'
108
+ })]
109
+ }), /*#__PURE__*/_jsxs(View, {
110
+ style: styles.detailRow,
111
+ children: [/*#__PURE__*/_jsx(Text, {
112
+ style: styles.detailLabel,
113
+ children: "Model:"
114
+ }), /*#__PURE__*/_jsx(Text, {
115
+ style: styles.detailValue,
116
+ children: data.vehicle_model ?? '-'
117
+ })]
118
+ }), /*#__PURE__*/_jsxs(View, {
119
+ style: styles.detailRow,
120
+ children: [/*#__PURE__*/_jsx(Text, {
121
+ style: styles.detailLabel,
122
+ children: "Stop Name:"
123
+ }), /*#__PURE__*/_jsx(Text, {
124
+ style: styles.detailValue,
125
+ children: data.stop_name ?? '-'
126
+ })]
127
+ }), /*#__PURE__*/_jsxs(View, {
128
+ style: styles.detailRow,
129
+ children: [/*#__PURE__*/_jsx(Text, {
130
+ style: styles.detailLabel,
131
+ children: "Pick Up:"
132
+ }), /*#__PURE__*/_jsx(Text, {
133
+ style: [styles.detailValue, styles.pickup],
134
+ children: data.pickup_time ?? '-'
135
+ })]
136
+ }), /*#__PURE__*/_jsxs(View, {
137
+ style: styles.detailRow,
138
+ children: [/*#__PURE__*/_jsx(Text, {
139
+ style: styles.detailLabel,
140
+ children: "Drop Time:"
141
+ }), /*#__PURE__*/_jsx(Text, {
142
+ style: [styles.detailValue, styles.drop],
143
+ children: data.drop_time ?? '-'
144
+ })]
145
+ })]
146
+ }), /*#__PURE__*/_jsxs(View, {
147
+ style: styles.card,
148
+ children: [/*#__PURE__*/_jsx(Text, {
149
+ style: styles.cardTitle,
150
+ children: "Driver Information"
151
+ }), /*#__PURE__*/_jsxs(View, {
152
+ style: styles.driverContainer,
153
+ children: [/*#__PURE__*/_jsx(View, {
154
+ style: styles.driverImageContainer,
155
+ children: driverImageUrl ? /*#__PURE__*/_jsx(Image, {
156
+ style: styles.driverImage,
157
+ source: {
158
+ uri: driverImageUrl
159
+ }
160
+ }) : /*#__PURE__*/_jsx(View, {
161
+ style: styles.driverImageFallback
162
+ })
163
+ }), /*#__PURE__*/_jsxs(View, {
164
+ style: styles.driverInfo,
165
+ children: [/*#__PURE__*/_jsx(Text, {
166
+ style: styles.driverLabel,
167
+ children: "Driver Name"
168
+ }), /*#__PURE__*/_jsx(Text, {
169
+ style: styles.driverName,
170
+ children: data.driver ?? '-'
171
+ })]
172
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
173
+ onPress: handleCall,
174
+ style: styles.callButton,
175
+ children: /*#__PURE__*/_jsx(Text, {
176
+ style: styles.callText,
177
+ children: "Call"
178
+ })
179
+ })]
180
+ })]
181
+ })]
182
+ })]
183
+ });
184
+ }
185
+ const styles = StyleSheet.create({
186
+ container: {
187
+ flex: 1,
188
+ backgroundColor: '#FFFFFF'
189
+ },
190
+ center: {
191
+ flex: 1,
192
+ justifyContent: 'center',
193
+ alignItems: 'center',
194
+ backgroundColor: '#FFFFFF'
195
+ },
196
+ noDataText: {
197
+ fontSize: 16,
198
+ color: '#6B7280'
199
+ },
200
+ errorText: {
201
+ fontSize: 16,
202
+ color: '#DC2626',
203
+ textAlign: 'center',
204
+ paddingHorizontal: 24
205
+ },
206
+ routeTitleCard: {
207
+ margin: 16,
208
+ borderRadius: 16,
209
+ padding: 16,
210
+ backgroundColor: '#F3F4F6',
211
+ alignItems: 'center'
212
+ },
213
+ routeTitle: {
214
+ fontSize: 18,
215
+ fontWeight: '700',
216
+ color: '#111827'
217
+ },
218
+ routeSubtitle: {
219
+ marginTop: 6,
220
+ fontSize: 12,
221
+ color: '#6B7280'
222
+ },
223
+ card: {
224
+ marginHorizontal: 16,
225
+ marginBottom: 16,
226
+ borderRadius: 16,
227
+ padding: 16,
228
+ backgroundColor: '#FFFFFF',
229
+ borderWidth: 1,
230
+ borderColor: '#E5E7EB'
231
+ },
232
+ cardTitle: {
233
+ fontSize: 16,
234
+ fontWeight: '700',
235
+ color: '#111827',
236
+ marginBottom: 12
237
+ },
238
+ detailRow: {
239
+ flexDirection: 'row',
240
+ justifyContent: 'space-between',
241
+ paddingVertical: 6
242
+ },
243
+ detailLabel: {
244
+ fontSize: 14,
245
+ color: '#374151'
246
+ },
247
+ detailValue: {
248
+ fontSize: 14,
249
+ color: '#111827',
250
+ fontWeight: '600'
251
+ },
252
+ pickup: {
253
+ color: '#16A34A'
254
+ },
255
+ drop: {
256
+ color: '#DC2626'
257
+ },
258
+ driverContainer: {
259
+ flexDirection: 'row',
260
+ alignItems: 'center'
261
+ },
262
+ driverImageContainer: {
263
+ width: 56,
264
+ height: 56,
265
+ borderRadius: 28,
266
+ overflow: 'hidden',
267
+ backgroundColor: '#F3F4F6'
268
+ },
269
+ driverImage: {
270
+ width: 56,
271
+ height: 56
272
+ },
273
+ driverImageFallback: {
274
+ width: 56,
275
+ height: 56,
276
+ backgroundColor: '#E5E7EB'
277
+ },
278
+ driverInfo: {
279
+ flex: 1,
280
+ marginLeft: 12
281
+ },
282
+ driverLabel: {
283
+ fontSize: 12,
284
+ color: '#6B7280'
285
+ },
286
+ driverName: {
287
+ fontSize: 14,
288
+ fontWeight: '700',
289
+ color: '#111827',
290
+ marginTop: 2
291
+ },
292
+ callButton: {
293
+ paddingHorizontal: 12,
294
+ paddingVertical: 8,
295
+ borderRadius: 10,
296
+ backgroundColor: '#DCFCE7'
297
+ },
298
+ callText: {
299
+ color: '#16A34A',
300
+ fontWeight: '700'
301
+ }
302
+ });
303
+ //# sourceMappingURL=StudentRouteDetailsScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useCallback","useEffect","useMemo","useState","ActivityIndicator","Alert","Linking","ScrollView","StyleSheet","Text","TouchableOpacity","View","Image","useTransport","getStudentRouteDetails","jsx","_jsx","jsxs","_jsxs","buildDriverImageUrl","args","fileBaseUrl","driverImage","undefined","base","endsWith","slice","img","startsWith","StudentRouteDetailsScreen","renderTop","api","loading","setLoading","data","setData","loadError","setLoadError","driverImageUrl","driver_image","load","res","first","Array","isArray","e","handleCall","phone","contact_number","alert","phoneNumber","toString","replace","url","supported","canOpenURL","openURL","style","styles","center","children","size","route_title","errorText","noDataText","container","showsVerticalScrollIndicator","routeTitleCard","routeTitle","routeSubtitle","card","cardTitle","detailRow","detailLabel","detailValue","vehicle_no","vehicle_model","stop_name","pickup","pickup_time","drop","drop_time","driverContainer","driverImageContainer","source","uri","driverImageFallback","driverInfo","driverLabel","driverName","driver","onPress","callButton","callText","create","flex","backgroundColor","justifyContent","alignItems","fontSize","color","textAlign","paddingHorizontal","margin","borderRadius","padding","fontWeight","marginTop","marginHorizontal","marginBottom","borderWidth","borderColor","flexDirection","paddingVertical","width","height","overflow","marginLeft"],"sourceRoot":"..\\..\\..\\..\\src","sources":["screens/StudentRouteDetails/StudentRouteDetailsScreen.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ import React, { useMemo } from 'react';
4
+ import { FlatList, Pressable, StyleSheet, Text, View } from 'react-native';
5
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
+ export function TransportDashboard({
7
+ items
8
+ }) {
9
+ const data = useMemo(() => items ?? [], [items]);
10
+ const renderItem = ({
11
+ item
12
+ }) => {
13
+ return /*#__PURE__*/_jsxs(Pressable, {
14
+ onPress: item.onPress,
15
+ style: styles.card,
16
+ children: [/*#__PURE__*/_jsx(View, {
17
+ style: styles.iconContainer,
18
+ children: item.icon ?? null
19
+ }), /*#__PURE__*/_jsx(Text, {
20
+ style: styles.title,
21
+ children: item.title
22
+ })]
23
+ });
24
+ };
25
+ return /*#__PURE__*/_jsx(View, {
26
+ style: styles.container,
27
+ children: /*#__PURE__*/_jsx(FlatList, {
28
+ data: data,
29
+ renderItem: renderItem,
30
+ numColumns: 2,
31
+ contentContainerStyle: styles.listContainer,
32
+ keyExtractor: item => item.id
33
+ })
34
+ });
35
+ }
36
+ const styles = StyleSheet.create({
37
+ container: {
38
+ flex: 1,
39
+ backgroundColor: '#FFFFFF'
40
+ },
41
+ listContainer: {
42
+ padding: 16,
43
+ paddingTop: 30
44
+ },
45
+ card: {
46
+ flex: 1,
47
+ backgroundColor: '#FFFFFF',
48
+ margin: 10,
49
+ borderRadius: 20,
50
+ paddingVertical: 24,
51
+ paddingHorizontal: 16,
52
+ alignItems: 'center',
53
+ justifyContent: 'center',
54
+ shadowColor: '#000',
55
+ shadowOffset: {
56
+ width: 0,
57
+ height: 4
58
+ },
59
+ shadowOpacity: 0.1,
60
+ shadowRadius: 8,
61
+ elevation: 5,
62
+ borderWidth: 1,
63
+ borderColor: '#F0F0F0'
64
+ },
65
+ iconContainer: {
66
+ width: 80,
67
+ height: 80,
68
+ backgroundColor: '#E3F2FD',
69
+ borderRadius: 40,
70
+ justifyContent: 'center',
71
+ alignItems: 'center',
72
+ marginBottom: 16
73
+ },
74
+ title: {
75
+ fontSize: 16,
76
+ fontWeight: '600',
77
+ color: '#111827',
78
+ textAlign: 'center',
79
+ letterSpacing: 0.5
80
+ }
81
+ });
82
+ //# sourceMappingURL=TransportDashboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useMemo","FlatList","Pressable","StyleSheet","Text","View","jsx","_jsx","jsxs","_jsxs","TransportDashboard","items","data","renderItem","item","onPress","style","styles","card","children","iconContainer","icon","title","container","numColumns","contentContainerStyle","listContainer","keyExtractor","id","create","flex","backgroundColor","padding","paddingTop","margin","borderRadius","paddingVertical","paddingHorizontal","alignItems","justifyContent","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","borderWidth","borderColor","marginBottom","fontSize","fontWeight","color","textAlign","letterSpacing"],"sourceRoot":"..\\..\\..\\..\\src","sources":["screens/TransportDashboard/TransportDashboard.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAGC,OAAO,QAAO,OAAO;AACpC,SACEC,QAAQ,EACRC,SAAS,EACTC,UAAU,EACVC,IAAI,EACJC,IAAI,QAEC,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAatB,OAAO,SAASC,kBAAkBA,CAAC;EAACC;AAA8B,CAAC,EAAE;EACnE,MAAMC,IAAI,GAAGZ,OAAO,CAAC,MAAMW,KAAK,IAAI,EAAE,EAAE,CAACA,KAAK,CAAC,CAAC;EAEhD,MAAME,UAAkD,GAAGA,CAAC;IAACC;EAAI,CAAC,KAAK;IACrE,oBACEL,KAAA,CAACP,SAAS;MAACa,OAAO,EAAED,IAAI,CAACC,OAAQ;MAACC,KAAK,EAAEC,MAAM,CAACC,IAAK;MAAAC,QAAA,gBACnDZ,IAAA,CAACF,IAAI;QAACW,KAAK,EAAEC,MAAM,CAACG,aAAc;QAAAD,QAAA,EAAEL,IAAI,CAACO,IAAI,IAAI;MAAI,CAAO,CAAC,eAC7Dd,IAAA,CAACH,IAAI;QAACY,KAAK,EAAEC,MAAM,CAACK,KAAM;QAAAH,QAAA,EAAEL,IAAI,CAACQ;MAAK,CAAO,CAAC;IAAA,CACrC,CAAC;EAEhB,CAAC;EAED,oBACEf,IAAA,CAACF,IAAI;IAACW,KAAK,EAAEC,MAAM,CAACM,SAAU;IAAAJ,QAAA,eAC5BZ,IAAA,CAACN,QAAQ;MACPW,IAAI,EAAEA,IAAK;MACXC,UAAU,EAAEA,UAAW;MACvBW,UAAU,EAAE,CAAE;MACdC,qBAAqB,EAAER,MAAM,CAACS,aAAc;MAC5CC,YAAY,EAAEb,IAAI,IAAIA,IAAI,CAACc;IAAG,CAC/B;EAAC,CACE,CAAC;AAEX;AAEA,MAAMX,MAAM,GAAGd,UAAU,CAAC0B,MAAM,CAAC;EAC/BN,SAAS,EAAE;IACTO,IAAI,EAAE,CAAC;IACPC,eAAe,EAAE;EACnB,CAAC;EACDL,aAAa,EAAE;IACbM,OAAO,EAAE,EAAE;IACXC,UAAU,EAAE;EACd,CAAC;EACDf,IAAI,EAAE;IACJY,IAAI,EAAE,CAAC;IACPC,eAAe,EAAE,SAAS;IAC1BG,MAAM,EAAE,EAAE;IACVC,YAAY,EAAE,EAAE;IAChBC,eAAe,EAAE,EAAE;IACnBC,iBAAiB,EAAE,EAAE;IACrBC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,QAAQ;IACxBC,WAAW,EAAE,MAAM;IACnBC,YAAY,EAAE;MACZC,KAAK,EAAE,CAAC;MACRC,MAAM,EAAE;IACV,CAAC;IACDC,aAAa,EAAE,GAAG;IAClBC,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE,CAAC;IACZC,WAAW,EAAE,CAAC;IACdC,WAAW,EAAE;EACf,CAAC;EACD5B,aAAa,EAAE;IACbsB,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVZ,eAAe,EAAE,SAAS;IAC1BI,YAAY,EAAE,EAAE;IAChBI,cAAc,EAAE,QAAQ;IACxBD,UAAU,EAAE,QAAQ;IACpBW,YAAY,EAAE;EAChB,CAAC;EACD3B,KAAK,EAAE;IACL4B,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBC,KAAK,EAAE,SAAS;IAChBC,SAAS,EAAE,QAAQ;IACnBC,aAAa,EAAE;EACjB;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+
3
+ import axios from 'axios';
4
+ function normalizeAxiosError(err) {
5
+ return {
6
+ message: err.message,
7
+ status: err.response?.status,
8
+ code: err.code,
9
+ url: err.config?.url,
10
+ method: err.config?.method,
11
+ data: err.response?.data,
12
+ raw: err
13
+ };
14
+ }
15
+ async function resolveToken(args) {
16
+ if (args.authToken) return args.authToken;
17
+ if (!args.getAuthToken) return undefined;
18
+ const token = await args.getAuthToken();
19
+ return token ?? undefined;
20
+ }
21
+ function delay(ms) {
22
+ return new Promise(resolve => setTimeout(() => resolve(), ms));
23
+ }
24
+ export function createApiClient(args) {
25
+ const baseUrl = args.baseUrl.endsWith('/') ? args.baseUrl.slice(0, -1) : args.baseUrl;
26
+ const instance = axios.create({
27
+ baseURL: baseUrl
28
+ });
29
+ const retryConfig = {
30
+ retries: args.retry?.retries ?? 1,
31
+ retryDelayMs: args.retry?.retryDelayMs ?? 500,
32
+ retryOnStatuses: args.retry?.retryOnStatuses ?? [408, 429, 500, 502, 503, 504]
33
+ };
34
+ let refreshPromise = null;
35
+ instance.interceptors.request.use(async config => {
36
+ const headers = {
37
+ ...(args.headers ?? {}),
38
+ ...config.headers
39
+ };
40
+ const hasAuthorizationHeader = typeof headers.Authorization === 'string' && headers.Authorization.length > 0;
41
+ if (!hasAuthorizationHeader) {
42
+ const token = await resolveToken({
43
+ authToken: args.authToken,
44
+ getAuthToken: args.getAuthToken
45
+ });
46
+ if (token) {
47
+ headers.Authorization = token;
48
+ }
49
+ }
50
+ config.headers = headers;
51
+ return config;
52
+ });
53
+ instance.interceptors.response.use(res => res, async error => {
54
+ const normalized = normalizeAxiosError(error);
55
+ const config = error.config ?? {};
56
+ const status = error.response?.status;
57
+ const shouldRefresh = status === 401 && !!args.refreshAuthToken && !config.__isRetryAfterRefresh;
58
+ if (shouldRefresh && args.refreshAuthToken) {
59
+ const currentToken = await resolveToken({
60
+ authToken: args.authToken,
61
+ getAuthToken: args.getAuthToken
62
+ });
63
+ if (!refreshPromise) {
64
+ refreshPromise = args.refreshAuthToken({
65
+ failedRequest: {
66
+ url: config.url,
67
+ method: config.method,
68
+ status
69
+ },
70
+ currentToken: currentToken ?? null
71
+ }).finally(() => {
72
+ refreshPromise = null;
73
+ });
74
+ }
75
+ const newToken = await refreshPromise;
76
+ if (newToken) {
77
+ config.__isRetryAfterRefresh = true;
78
+ config.headers = {
79
+ ...config.headers,
80
+ Authorization: newToken
81
+ };
82
+ return instance.request(config);
83
+ }
84
+ }
85
+ const shouldRetry = status && retryConfig.retryOnStatuses.includes(status) || !status && Boolean(error.code);
86
+ if (shouldRetry) {
87
+ config.__retryCount = (config.__retryCount ?? 0) + 1;
88
+ if (config.__retryCount <= retryConfig.retries) {
89
+ await delay(retryConfig.retryDelayMs);
90
+ return instance.request(config);
91
+ }
92
+ }
93
+ args.onApiError?.(normalized);
94
+ return Promise.reject(error);
95
+ });
96
+ return {
97
+ instance,
98
+ request(config) {
99
+ return instance.request(config);
100
+ },
101
+ async get(url, config) {
102
+ const res = await instance.get(url, config);
103
+ return res.data;
104
+ },
105
+ async post(url, data, config) {
106
+ const res = await instance.post(url, data, config);
107
+ return res.data;
108
+ }
109
+ };
110
+ }
111
+ //# sourceMappingURL=createApiClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["axios","normalizeAxiosError","err","message","status","response","code","url","config","method","data","raw","resolveToken","args","authToken","getAuthToken","undefined","token","delay","ms","Promise","resolve","setTimeout","createApiClient","baseUrl","endsWith","slice","instance","create","baseURL","retryConfig","retries","retry","retryDelayMs","retryOnStatuses","refreshPromise","interceptors","request","use","headers","hasAuthorizationHeader","Authorization","length","res","error","normalized","shouldRefresh","refreshAuthToken","__isRetryAfterRefresh","currentToken","failedRequest","finally","newToken","shouldRetry","includes","Boolean","__retryCount","onApiError","reject","get","post"],"sourceRoot":"..\\..\\..\\..\\src","sources":["services/api/createApiClient.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"..\\..\\..\\..\\src","sources":["services/api/types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"..\\..\\..\\src","sources":["services/index.ts"],"mappings":";;AAAA","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ export async function getStudentRouteDetails(api) {
4
+ return api.get('/student/studentAPP/TransportDetails/studentRoutedetails');
5
+ }
6
+ //# sourceMappingURL=studentRouteDetails.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getStudentRouteDetails","api","get"],"sourceRoot":"..\\..\\..\\..\\src","sources":["services/transport/studentRouteDetails.ts"],"mappings":";;AAIA,OAAO,eAAeA,sBAAsBA,CAACC,GAAc,EAAE;EAC3D,OAAOA,GAAG,CAACC,GAAG,CACZ,0DACF,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"..\\..\\..\\..\\src","sources":["services/transport/types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"..\\..\\..\\src","sources":["store/index.ts"],"mappings":";;AAAA","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"..\\..\\..\\src","sources":["types/index.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"..\\..\\..\\src","sources":["types/transport.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"..\\..\\..\\src","sources":["utils/index.ts"],"mappings":";;AAAA","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/assets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ export { TransportProvider } from './providers/TransportProvider';
2
+ export { useTransport } from './providers/useTransport';
3
+ export { TransportDashboard } from './screens/TransportDashboard/TransportDashboard';
4
+ export { StudentRouteDetailsScreen } from './screens/StudentRouteDetails/StudentRouteDetailsScreen';
5
+ export type { TransportProviderProps } from './providers/types';
6
+ export type { ApiClient, ApiRequestConfig } from './services/api/types';
7
+ export type { StudentRouteDetails } from './types/transport';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAC,kBAAkB,EAAC,MAAM,iDAAiD,CAAC;AACnF,OAAO,EAAC,yBAAyB,EAAC,MAAM,yDAAyD,CAAC;AAElG,YAAY,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AAC9D,YAAY,EAAC,SAAS,EAAE,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AACtE,YAAY,EAAC,mBAAmB,EAAC,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map