react-native-seel-widget 0.1.8 → 0.1.9

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/README.md CHANGED
@@ -1,37 +1,70 @@
1
1
  # react-native-seel-widget
2
2
 
3
- React-Native SeelWidget
3
+ SeelWidget for React Native (iOS, Android, and Web)
4
4
 
5
- ## Installation
5
+ ## Installing
6
6
 
7
+ ### With expo
7
8
 
8
- ```sh
9
- npm install react-native-seel-widget
9
+ ```
10
+ npx expo install react-native-seel-widget
10
11
  ```
11
12
 
13
+ ### With react-native-cli
12
14
 
13
- ## Usage
14
-
15
-
16
- ```js
17
- import { multiply } from 'react-native-seel-widget';
18
-
19
- // ...
15
+ 1. Install library
20
16
 
21
- const result = await multiply(3, 7);
22
- ```
17
+ ```
18
+ yarn add react-native-seel-widget
19
+ ```
23
20
 
21
+ *Note: We're using `yarn` to install deps. Feel free to change commands to use `npm` 11+ and `npx` if you like*
24
22
 
25
- ## Contributing
23
+ 2. Link native code
26
24
 
27
- - [Development workflow](CONTRIBUTING.md#development-workflow)
28
- - [Sending a pull request](CONTRIBUTING.md#sending-a-pull-request)
29
- - [Code of conduct](CODE_OF_CONDUCT.md)
25
+ ```
26
+ cd ios && pod install
27
+ ```
30
28
 
31
- ## License
29
+ ## Usage
32
30
 
33
- MIT
31
+ ```tsx
32
+ // Step 1
33
+ SeelWidgetSDK.shared.configure({
34
+ apiKey: '5ctiodrhqyfkcjqhli4wwnwi6cakrs5r',
35
+ environment: SeelEnvironment.Development,
36
+ });
37
+ ```
34
38
 
35
- ---
39
+ ```
40
+ // Step 2
41
+ import type { IQuotesRequest, IQuotesResponse } from 'react-native-seel-widget';
42
+ import { SeelWFPWidget } from 'react-native-seel-widget';
43
+
44
+ export default function YourPage() {
45
+ useEffect(() => {
46
+ const request:IQuotesRequest = {
47
+ // ...
48
+ };
49
+ });
50
+
51
+ return (
52
+ <View>
53
+ <SeelWFPWidget
54
+ ref={seelWidgetRef}
55
+ domain={domain}
56
+ onChangeValue={function ({
57
+ optedIn,
58
+ quotesResponse,
59
+ }: {
60
+ optedIn: boolean;
61
+ quotesResponse?: IQuotesResponse;
62
+ }): void {
63
+ console.log(optedIn, quotesResponse);
64
+ }}
65
+ />
66
+ </View>
67
+ );
68
+ }
36
69
 
37
- Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)
70
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-seel-widget",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
4
4
  "description": "React-Native SeelWidget",
5
5
  "main": "./src/index.tsx",
6
6
  "exports": {
@@ -15,27 +15,22 @@ export interface GetRequestParams {
15
15
  [key: string]: any;
16
16
  }
17
17
 
18
- const defaultXSeelApiKey: string = SeelWidgetSDK.shared.apiKey || '';
19
- const defaultXSeelApiVersion: string = SeelWidgetSDK.shared.apiVersion || '';
20
- const defaultRequestTimeout: number = SeelWidgetSDK.shared.requestTimeout;
18
+ // const defaultXSeelApiKey: string = SeelWidgetSDK.shared.apiKey || '';
19
+ // const defaultXSeelApiVersion: string = SeelWidgetSDK.shared.apiVersion || '';
20
+ // const defaultRequestTimeout: number = SeelWidgetSDK.shared.requestTimeout;
21
21
 
22
22
  class Request {
23
- private defaultHeaders: RequestHeaders = {
24
- 'Accept': 'application/json',
25
- 'Content-Type': 'application/json',
26
- 'X-Seel-API-Key': defaultXSeelApiKey,
27
- 'X-Seel-API-Version': defaultXSeelApiVersion,
28
- };
29
-
30
- private defaultTimeout: number = defaultRequestTimeout;
31
-
32
- /**
33
- * Set default request headers
34
- */
35
- setDefaultHeaders(headers: RequestHeaders): void {
36
- this.defaultHeaders = { ...this.defaultHeaders, ...headers };
23
+ defaultHeaders(): RequestHeaders {
24
+ return {
25
+ 'Accept': 'application/json',
26
+ 'Content-Type': 'application/json',
27
+ 'X-Seel-API-Key': SeelWidgetSDK.shared.apiKey,
28
+ 'X-Seel-API-Version': SeelWidgetSDK.shared.apiVersion,
29
+ };
37
30
  }
38
31
 
32
+ private defaultTimeout: number = SeelWidgetSDK.shared.requestTimeout;
33
+
39
34
  /**
40
35
  * Set default timeout
41
36
  */
@@ -91,7 +86,7 @@ class Request {
91
86
 
92
87
  // Merge request headers
93
88
  const headers = {
94
- ...this.defaultHeaders,
89
+ ...this.defaultHeaders(),
95
90
  ...options?.headers,
96
91
  };
97
92
 
@@ -143,10 +138,12 @@ class Request {
143
138
  try {
144
139
  // Merge request headers
145
140
  const headers = {
146
- ...this.defaultHeaders,
141
+ ...this.defaultHeaders(),
147
142
  ...options?.headers,
148
143
  };
149
144
 
145
+ console.log('headers:', headers);
146
+
150
147
  // Build request body
151
148
  let body: string | undefined;
152
149
  if (data !== undefined && data !== null) {
@@ -68,6 +68,7 @@ const SeelWFPWidget = (
68
68
  try {
69
69
  setLoadingStatus(NetworkRequestStatueEnum.Loading);
70
70
  const response = await createQuote(quote);
71
+ console.log('response quote:', quote);
71
72
  setLoadingStatus(NetworkRequestStatueEnum.Success);
72
73
  setQuotesResponse(response);
73
74
  let _status = response.status ?? '';
@@ -17,14 +17,12 @@ export enum NetworkErrorEnum {
17
17
  Unknown,
18
18
  }
19
19
 
20
- const defaultBaseURL: string = SeelWidgetSDK.shared.baseURL;
21
-
22
20
  export const createQuote = (body: IQuotesRequest) => {
23
- const url = defaultBaseURL + '/v1/ecommerce/quotes';
21
+ const url = SeelWidgetSDK.shared.baseURL + '/v1/ecommerce/quotes';
24
22
  return post<IQuotesResponse>(url, JSON.stringify(body), {});
25
23
  };
26
24
 
27
25
  export const createEvent = (body: IEvents) => {
28
- const url = defaultBaseURL + '/v1/ecommerce/events';
26
+ const url = SeelWidgetSDK.shared.baseURL + '/v1/ecommerce/events';
29
27
  return post<IQuotesResponse>(url, JSON.stringify(body), {});
30
28
  };