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.
- package/LICENSE +22 -0
- package/README.md +136 -0
- package/lib/commonjs/assets/index.js +6 -0
- package/lib/commonjs/assets/index.js.map +1 -0
- package/lib/commonjs/components/index.js +6 -0
- package/lib/commonjs/components/index.js.map +1 -0
- package/lib/commonjs/constants/index.js +6 -0
- package/lib/commonjs/constants/index.js.map +1 -0
- package/lib/commonjs/hooks/index.js +6 -0
- package/lib/commonjs/hooks/index.js.map +1 -0
- package/lib/commonjs/index.js +34 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/navigation/index.js +6 -0
- package/lib/commonjs/navigation/index.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/providers/TransportContext.js +9 -0
- package/lib/commonjs/providers/TransportContext.js.map +1 -0
- package/lib/commonjs/providers/TransportProvider.js +46 -0
- package/lib/commonjs/providers/TransportProvider.js.map +1 -0
- package/lib/commonjs/providers/types.js +6 -0
- package/lib/commonjs/providers/types.js.map +1 -0
- package/lib/commonjs/providers/useTransport.js +16 -0
- package/lib/commonjs/providers/useTransport.js.map +1 -0
- package/lib/commonjs/screens/StudentRouteDetails/StudentRouteDetailsScreen.js +308 -0
- package/lib/commonjs/screens/StudentRouteDetails/StudentRouteDetailsScreen.js.map +1 -0
- package/lib/commonjs/screens/TransportDashboard/TransportDashboard.js +87 -0
- package/lib/commonjs/screens/TransportDashboard/TransportDashboard.js.map +1 -0
- package/lib/commonjs/services/api/createApiClient.js +116 -0
- package/lib/commonjs/services/api/createApiClient.js.map +1 -0
- package/lib/commonjs/services/api/types.js +6 -0
- package/lib/commonjs/services/api/types.js.map +1 -0
- package/lib/commonjs/services/index.js +6 -0
- package/lib/commonjs/services/index.js.map +1 -0
- package/lib/commonjs/services/transport/studentRouteDetails.js +10 -0
- package/lib/commonjs/services/transport/studentRouteDetails.js.map +1 -0
- package/lib/commonjs/services/transport/types.js +2 -0
- package/lib/commonjs/services/transport/types.js.map +1 -0
- package/lib/commonjs/store/index.js +6 -0
- package/lib/commonjs/store/index.js.map +1 -0
- package/lib/commonjs/types/index.js +2 -0
- package/lib/commonjs/types/index.js.map +1 -0
- package/lib/commonjs/types/transport.js +2 -0
- package/lib/commonjs/types/transport.js.map +1 -0
- package/lib/commonjs/utils/index.js +6 -0
- package/lib/commonjs/utils/index.js.map +1 -0
- package/lib/module/assets/index.js +4 -0
- package/lib/module/assets/index.js.map +1 -0
- package/lib/module/components/index.js +4 -0
- package/lib/module/components/index.js.map +1 -0
- package/lib/module/constants/index.js +4 -0
- package/lib/module/constants/index.js.map +1 -0
- package/lib/module/hooks/index.js +4 -0
- package/lib/module/hooks/index.js.map +1 -0
- package/lib/module/index.js +7 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/navigation/index.js +4 -0
- package/lib/module/navigation/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/providers/TransportContext.js +5 -0
- package/lib/module/providers/TransportContext.js.map +1 -0
- package/lib/module/providers/TransportProvider.js +41 -0
- package/lib/module/providers/TransportProvider.js.map +1 -0
- package/lib/module/providers/types.js +4 -0
- package/lib/module/providers/types.js.map +1 -0
- package/lib/module/providers/useTransport.js +12 -0
- package/lib/module/providers/useTransport.js.map +1 -0
- package/lib/module/screens/StudentRouteDetails/StudentRouteDetailsScreen.js +303 -0
- package/lib/module/screens/StudentRouteDetails/StudentRouteDetailsScreen.js.map +1 -0
- package/lib/module/screens/TransportDashboard/TransportDashboard.js +82 -0
- package/lib/module/screens/TransportDashboard/TransportDashboard.js.map +1 -0
- package/lib/module/services/api/createApiClient.js +111 -0
- package/lib/module/services/api/createApiClient.js.map +1 -0
- package/lib/module/services/api/types.js +4 -0
- package/lib/module/services/api/types.js.map +1 -0
- package/lib/module/services/index.js +4 -0
- package/lib/module/services/index.js.map +1 -0
- package/lib/module/services/transport/studentRouteDetails.js +6 -0
- package/lib/module/services/transport/studentRouteDetails.js.map +1 -0
- package/lib/module/services/transport/types.js +2 -0
- package/lib/module/services/transport/types.js.map +1 -0
- package/lib/module/store/index.js +4 -0
- package/lib/module/store/index.js.map +1 -0
- package/lib/module/types/index.js +2 -0
- package/lib/module/types/index.js.map +1 -0
- package/lib/module/types/transport.js +2 -0
- package/lib/module/types/transport.js.map +1 -0
- package/lib/module/utils/index.js +4 -0
- package/lib/module/utils/index.js.map +1 -0
- package/lib/typescript/assets/index.d.ts +2 -0
- package/lib/typescript/assets/index.d.ts.map +1 -0
- package/lib/typescript/components/index.d.ts +2 -0
- package/lib/typescript/components/index.d.ts.map +1 -0
- package/lib/typescript/constants/index.d.ts +2 -0
- package/lib/typescript/constants/index.d.ts.map +1 -0
- package/lib/typescript/hooks/index.d.ts +2 -0
- package/lib/typescript/hooks/index.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +8 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/navigation/index.d.ts +2 -0
- package/lib/typescript/navigation/index.d.ts.map +1 -0
- package/lib/typescript/providers/TransportContext.d.ts +8 -0
- package/lib/typescript/providers/TransportContext.d.ts.map +1 -0
- package/lib/typescript/providers/TransportProvider.d.ts +3 -0
- package/lib/typescript/providers/TransportProvider.d.ts.map +1 -0
- package/lib/typescript/providers/types.d.ts +28 -0
- package/lib/typescript/providers/types.d.ts.map +1 -0
- package/lib/typescript/providers/useTransport.d.ts +2 -0
- package/lib/typescript/providers/useTransport.d.ts.map +1 -0
- package/lib/typescript/screens/StudentRouteDetails/StudentRouteDetailsScreen.d.ts +6 -0
- package/lib/typescript/screens/StudentRouteDetails/StudentRouteDetailsScreen.d.ts.map +1 -0
- package/lib/typescript/screens/TransportDashboard/TransportDashboard.d.ts +12 -0
- package/lib/typescript/screens/TransportDashboard/TransportDashboard.d.ts.map +1 -0
- package/lib/typescript/services/api/createApiClient.d.ts +18 -0
- package/lib/typescript/services/api/createApiClient.d.ts.map +1 -0
- package/lib/typescript/services/api/types.d.ts +18 -0
- package/lib/typescript/services/api/types.d.ts.map +1 -0
- package/lib/typescript/services/index.d.ts +2 -0
- package/lib/typescript/services/index.d.ts.map +1 -0
- package/lib/typescript/services/transport/studentRouteDetails.d.ts +5 -0
- package/lib/typescript/services/transport/studentRouteDetails.d.ts.map +1 -0
- package/lib/typescript/services/transport/types.d.ts +7 -0
- package/lib/typescript/services/transport/types.d.ts.map +1 -0
- package/lib/typescript/store/index.d.ts +2 -0
- package/lib/typescript/store/index.d.ts.map +1 -0
- package/lib/typescript/types/index.d.ts +2 -0
- package/lib/typescript/types/index.d.ts.map +1 -0
- package/lib/typescript/types/transport.d.ts +12 -0
- package/lib/typescript/types/transport.d.ts.map +1 -0
- package/lib/typescript/utils/index.d.ts +2 -0
- package/lib/typescript/utils/index.d.ts.map +1 -0
- package/package.json +61 -0
- package/src/assets/index.ts +2 -0
- package/src/components/index.ts +2 -0
- package/src/constants/index.ts +2 -0
- package/src/hooks/index.ts +2 -0
- package/src/index.ts +10 -0
- package/src/navigation/index.ts +2 -0
- package/src/providers/TransportContext.ts +11 -0
- package/src/providers/TransportProvider.tsx +47 -0
- package/src/providers/types.ts +28 -0
- package/src/providers/useTransport.ts +11 -0
- package/src/screens/StudentRouteDetails/StudentRouteDetailsScreen.tsx +284 -0
- package/src/screens/TransportDashboard/TransportDashboard.tsx +93 -0
- package/src/services/api/createApiClient.ts +170 -0
- package/src/services/api/types.ts +30 -0
- package/src/services/index.ts +2 -0
- package/src/services/transport/studentRouteDetails.ts +10 -0
- package/src/services/transport/types.ts +7 -0
- package/src/store/index.ts +2 -0
- package/src/types/index.ts +2 -0
- package/src/types/transport.ts +12 -0
- package/src/utils/index.ts +2 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/navigation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ApiClient } from '../services/api/types';
|
|
2
|
+
export type TransportContextValue = {
|
|
3
|
+
api: ApiClient;
|
|
4
|
+
apiBaseUrl: string;
|
|
5
|
+
fileBaseUrl?: string;
|
|
6
|
+
};
|
|
7
|
+
export declare const TransportContext: import("react").Context<TransportContextValue | null>;
|
|
8
|
+
//# sourceMappingURL=TransportContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransportContext.d.ts","sourceRoot":"","sources":["../../../src/providers/TransportContext.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAErD,MAAM,MAAM,qBAAqB,GAAG;IAClC,GAAG,EAAE,SAAS,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,gBAAgB,uDAAoD,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { TransportProviderProps } from './types';
|
|
2
|
+
export declare function TransportProvider({ children, apiBaseUrl, fileBaseUrl, authToken, getAuthToken, headers, refreshAuthToken, onApiError, retry, }: TransportProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
//# sourceMappingURL=TransportProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransportProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/TransportProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,SAAS,CAAC;AAGpD,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,UAAU,EACV,WAAW,EACX,SAAS,EACT,YAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,UAAU,EACV,KAAK,GACN,EAAE,sBAAsB,2CA8BxB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { ApiError } from '../services/api/types';
|
|
3
|
+
export type TransportHeaders = Record<string, string>;
|
|
4
|
+
export type GetAuthToken = () => Promise<string | null | undefined> | string | null | undefined;
|
|
5
|
+
export type RefreshAuthToken = (args: {
|
|
6
|
+
failedRequest: {
|
|
7
|
+
url?: string;
|
|
8
|
+
method?: string;
|
|
9
|
+
status?: number;
|
|
10
|
+
};
|
|
11
|
+
currentToken?: string | null;
|
|
12
|
+
}) => Promise<string | null | undefined>;
|
|
13
|
+
export type TransportProviderProps = {
|
|
14
|
+
children: ReactNode;
|
|
15
|
+
apiBaseUrl: string;
|
|
16
|
+
fileBaseUrl?: string;
|
|
17
|
+
authToken?: string;
|
|
18
|
+
getAuthToken?: GetAuthToken;
|
|
19
|
+
headers?: TransportHeaders;
|
|
20
|
+
refreshAuthToken?: RefreshAuthToken;
|
|
21
|
+
onApiError?: (error: ApiError) => void;
|
|
22
|
+
retry?: {
|
|
23
|
+
retries?: number;
|
|
24
|
+
retryDelayMs?: number;
|
|
25
|
+
retryOnStatuses?: number[];
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAC;AAEpD,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEtD,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AAEhG,MAAM,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE;IACpC,aAAa,EAAE;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;IAChE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAEzC,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,SAAS,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACvC,KAAK,CAAC,EAAE;QACN,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;KAC5B,CAAC;CACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTransport.d.ts","sourceRoot":"","sources":["../../../src/providers/useTransport.ts"],"names":[],"mappings":"AAGA,wBAAgB,YAAY,uDAM3B"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type StudentRouteDetailsScreenProps = {
|
|
3
|
+
renderTop?: () => React.ReactNode;
|
|
4
|
+
};
|
|
5
|
+
export declare function StudentRouteDetailsScreen({ renderTop }: StudentRouteDetailsScreenProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
//# sourceMappingURL=StudentRouteDetailsScreen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StudentRouteDetailsScreen.d.ts","sourceRoot":"","sources":["../../../../src/screens/StudentRouteDetails/StudentRouteDetailsScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAgBvE,MAAM,MAAM,8BAA8B,GAAG;IAC3C,SAAS,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;CACnC,CAAC;AAaF,wBAAgB,yBAAyB,CAAC,EAAC,SAAS,EAAC,EAAE,8BAA8B,2CAoIpF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type TransportDashboardItem = {
|
|
3
|
+
id: string;
|
|
4
|
+
title: string;
|
|
5
|
+
onPress: () => void;
|
|
6
|
+
icon?: React.ReactNode;
|
|
7
|
+
};
|
|
8
|
+
export type TransportDashboardProps = {
|
|
9
|
+
items?: TransportDashboardItem[];
|
|
10
|
+
};
|
|
11
|
+
export declare function TransportDashboard({ items }: TransportDashboardProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=TransportDashboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransportDashboard.d.ts","sourceRoot":"","sources":["../../../../src/screens/TransportDashboard/TransportDashboard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgB,MAAM,OAAO,CAAC;AAUrC,MAAM,MAAM,sBAAsB,GAAG;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,CAAC,EAAE,sBAAsB,EAAE,CAAC;CAClC,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,EAAC,KAAK,EAAC,EAAE,uBAAuB,2CAuBlE"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ApiClient, ApiError } from './types';
|
|
2
|
+
import type { GetAuthToken, RefreshAuthToken, TransportHeaders } from '../../providers/types';
|
|
3
|
+
type CreateApiClientArgs = {
|
|
4
|
+
baseUrl: string;
|
|
5
|
+
authToken?: string;
|
|
6
|
+
getAuthToken?: GetAuthToken;
|
|
7
|
+
headers?: TransportHeaders;
|
|
8
|
+
refreshAuthToken?: RefreshAuthToken;
|
|
9
|
+
onApiError?: (error: ApiError) => void;
|
|
10
|
+
retry?: {
|
|
11
|
+
retries?: number;
|
|
12
|
+
retryDelayMs?: number;
|
|
13
|
+
retryOnStatuses?: number[];
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
export declare function createApiClient(args: CreateApiClientArgs): ApiClient;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=createApiClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createApiClient.d.ts","sourceRoot":"","sources":["../../../../src/services/api/createApiClient.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,SAAS,EAAE,QAAQ,EAAC,MAAM,SAAS,CAAC;AACjD,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAE/B,KAAK,mBAAmB,GAAG;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACvC,KAAK,CAAC,EAAE;QACN,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;KAC5B,CAAC;CACH,CAAC;AAiCF,wBAAgB,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,SAAS,CAkHpE"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { AxiosError, AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';
|
|
2
|
+
export type ApiRequestConfig = AxiosRequestConfig;
|
|
3
|
+
export type ApiError = {
|
|
4
|
+
message: string;
|
|
5
|
+
status?: number;
|
|
6
|
+
code?: string;
|
|
7
|
+
url?: string;
|
|
8
|
+
method?: string;
|
|
9
|
+
data?: unknown;
|
|
10
|
+
raw?: AxiosError;
|
|
11
|
+
};
|
|
12
|
+
export type ApiClient = {
|
|
13
|
+
instance: AxiosInstance;
|
|
14
|
+
request<T = unknown>(config: ApiRequestConfig): Promise<AxiosResponse<T>>;
|
|
15
|
+
get<T = unknown>(url: string, config?: ApiRequestConfig): Promise<T>;
|
|
16
|
+
post<T = unknown>(url: string, data?: unknown, config?: ApiRequestConfig): Promise<T>;
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/services/api/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,aAAa,EACd,MAAM,OAAO,CAAC;AAEf,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAElD,MAAM,MAAM,QAAQ,GAAG;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,UAAU,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACrE,IAAI,CAAC,CAAC,GAAG,OAAO,EACd,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,CAAC,CAAC,CAAC;CACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ApiClient } from '../api/types';
|
|
2
|
+
import type { StudentRouteDetails } from '../../types/transport';
|
|
3
|
+
import type { ApiEnvelope } from './types';
|
|
4
|
+
export declare function getStudentRouteDetails(api: ApiClient): Promise<ApiEnvelope<StudentRouteDetails[]>>;
|
|
5
|
+
//# sourceMappingURL=studentRouteDetails.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"studentRouteDetails.d.ts","sourceRoot":"","sources":["../../../../src/services/transport/studentRouteDetails.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAC;AAEzC,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,SAAS,+CAI1D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/services/transport/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;CACV,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/store/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAC,mBAAmB,EAAC,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type StudentRouteDetails = {
|
|
2
|
+
route_title?: string;
|
|
3
|
+
vehicle_no?: string;
|
|
4
|
+
vehicle_model?: string;
|
|
5
|
+
stop_name?: string;
|
|
6
|
+
pickup_time?: string;
|
|
7
|
+
drop_time?: string;
|
|
8
|
+
driver?: string;
|
|
9
|
+
driver_image?: string;
|
|
10
|
+
contact_number?: string | number;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/types/transport.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAClC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ubkerp.transport.module",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "UBK ERP reusable Transport Module for React Native apps",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": ""
|
|
9
|
+
},
|
|
10
|
+
"keywords": [
|
|
11
|
+
"react-native",
|
|
12
|
+
"transport",
|
|
13
|
+
"module",
|
|
14
|
+
"library"
|
|
15
|
+
],
|
|
16
|
+
"source": "src/index.ts",
|
|
17
|
+
"main": "lib/commonjs/index.js",
|
|
18
|
+
"module": "lib/module/index.js",
|
|
19
|
+
"types": "lib/typescript/index.d.ts",
|
|
20
|
+
"react-native": "src/index.ts",
|
|
21
|
+
"exports": {
|
|
22
|
+
".": {
|
|
23
|
+
"types": "./lib/typescript/index.d.ts",
|
|
24
|
+
"react-native": "./src/index.ts",
|
|
25
|
+
"require": "./lib/commonjs/index.js",
|
|
26
|
+
"import": "./lib/module/index.js"
|
|
27
|
+
},
|
|
28
|
+
"./package.json": "./package.json"
|
|
29
|
+
},
|
|
30
|
+
"files": [
|
|
31
|
+
"src",
|
|
32
|
+
"lib",
|
|
33
|
+
"README.md",
|
|
34
|
+
"LICENSE"
|
|
35
|
+
],
|
|
36
|
+
"scripts": {
|
|
37
|
+
"clean": "rimraf lib",
|
|
38
|
+
"build": "bob build",
|
|
39
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
40
|
+
"prepare": "bob build"
|
|
41
|
+
},
|
|
42
|
+
"peerDependencies": {
|
|
43
|
+
"react": ">=18",
|
|
44
|
+
"react-native": ">=0.72"
|
|
45
|
+
},
|
|
46
|
+
"dependencies": {
|
|
47
|
+
"axios": "^1.7.8"
|
|
48
|
+
},
|
|
49
|
+
"devDependencies": {
|
|
50
|
+
"@react-native/babel-preset": "0.75.4",
|
|
51
|
+
"@react-native/metro-config": "0.75.4",
|
|
52
|
+
"@types/react": "18.2.6",
|
|
53
|
+
"@types/react-native": "0.72.8",
|
|
54
|
+
"react-native-builder-bob": "0.38.0",
|
|
55
|
+
"react": "18.3.1",
|
|
56
|
+
"react-native": "0.75.4",
|
|
57
|
+
"rimraf": "^6.0.1",
|
|
58
|
+
"typescript": "^5.0.4"
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export {TransportProvider} from './providers/TransportProvider';
|
|
2
|
+
export {useTransport} from './providers/useTransport';
|
|
3
|
+
|
|
4
|
+
export {TransportDashboard} from './screens/TransportDashboard/TransportDashboard';
|
|
5
|
+
export {StudentRouteDetailsScreen} from './screens/StudentRouteDetails/StudentRouteDetailsScreen';
|
|
6
|
+
|
|
7
|
+
export type {TransportProviderProps} from './providers/types';
|
|
8
|
+
export type {ApiClient, ApiRequestConfig} from './services/api/types';
|
|
9
|
+
export type {StudentRouteDetails} from './types/transport';
|
|
10
|
+
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import {createContext} from 'react';
|
|
2
|
+
import type {ApiClient} from '../services/api/types';
|
|
3
|
+
|
|
4
|
+
export type TransportContextValue = {
|
|
5
|
+
api: ApiClient;
|
|
6
|
+
apiBaseUrl: string;
|
|
7
|
+
fileBaseUrl?: string;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export const TransportContext = createContext<TransportContextValue | null>(null);
|
|
11
|
+
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import React, {useMemo} from 'react';
|
|
2
|
+
import {TransportContext} from './TransportContext';
|
|
3
|
+
import type {TransportProviderProps} from './types';
|
|
4
|
+
import {createApiClient} from '../services/api/createApiClient';
|
|
5
|
+
|
|
6
|
+
export function TransportProvider({
|
|
7
|
+
children,
|
|
8
|
+
apiBaseUrl,
|
|
9
|
+
fileBaseUrl,
|
|
10
|
+
authToken,
|
|
11
|
+
getAuthToken,
|
|
12
|
+
headers,
|
|
13
|
+
refreshAuthToken,
|
|
14
|
+
onApiError,
|
|
15
|
+
retry,
|
|
16
|
+
}: TransportProviderProps) {
|
|
17
|
+
const api = useMemo(() => {
|
|
18
|
+
return createApiClient({
|
|
19
|
+
baseUrl: apiBaseUrl,
|
|
20
|
+
authToken,
|
|
21
|
+
getAuthToken,
|
|
22
|
+
headers,
|
|
23
|
+
refreshAuthToken,
|
|
24
|
+
onApiError,
|
|
25
|
+
retry,
|
|
26
|
+
});
|
|
27
|
+
}, [
|
|
28
|
+
apiBaseUrl,
|
|
29
|
+
authToken,
|
|
30
|
+
getAuthToken,
|
|
31
|
+
headers,
|
|
32
|
+
refreshAuthToken,
|
|
33
|
+
onApiError,
|
|
34
|
+
retry,
|
|
35
|
+
]);
|
|
36
|
+
|
|
37
|
+
const value = useMemo(() => {
|
|
38
|
+
return {api, apiBaseUrl, fileBaseUrl};
|
|
39
|
+
}, [api, apiBaseUrl, fileBaseUrl]);
|
|
40
|
+
|
|
41
|
+
return (
|
|
42
|
+
<TransportContext.Provider value={value}>
|
|
43
|
+
{children}
|
|
44
|
+
</TransportContext.Provider>
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type {ReactNode} from 'react';
|
|
2
|
+
import type {ApiError} from '../services/api/types';
|
|
3
|
+
|
|
4
|
+
export type TransportHeaders = Record<string, string>;
|
|
5
|
+
|
|
6
|
+
export type GetAuthToken = () => Promise<string | null | undefined> | string | null | undefined;
|
|
7
|
+
|
|
8
|
+
export type RefreshAuthToken = (args: {
|
|
9
|
+
failedRequest: {url?: string; method?: string; status?: number};
|
|
10
|
+
currentToken?: string | null;
|
|
11
|
+
}) => Promise<string | null | undefined>;
|
|
12
|
+
|
|
13
|
+
export type TransportProviderProps = {
|
|
14
|
+
children: ReactNode;
|
|
15
|
+
apiBaseUrl: string;
|
|
16
|
+
fileBaseUrl?: string;
|
|
17
|
+
authToken?: string;
|
|
18
|
+
getAuthToken?: GetAuthToken;
|
|
19
|
+
headers?: TransportHeaders;
|
|
20
|
+
refreshAuthToken?: RefreshAuthToken;
|
|
21
|
+
onApiError?: (error: ApiError) => void;
|
|
22
|
+
retry?: {
|
|
23
|
+
retries?: number;
|
|
24
|
+
retryDelayMs?: number;
|
|
25
|
+
retryOnStatuses?: number[];
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import {useContext} from 'react';
|
|
2
|
+
import {TransportContext} from './TransportContext';
|
|
3
|
+
|
|
4
|
+
export function useTransport() {
|
|
5
|
+
const ctx = useContext(TransportContext);
|
|
6
|
+
if (!ctx) {
|
|
7
|
+
throw new Error('TransportProvider is missing');
|
|
8
|
+
}
|
|
9
|
+
return ctx;
|
|
10
|
+
}
|
|
11
|
+
|