@duffel/react-native-components-assistant 0.4.1 → 0.4.2

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.
@@ -33,6 +33,9 @@ export const DuffelAssistant = ({
33
33
  if (!clientKeyIncludesResource && properties.context) {
34
34
  throw new Error('The context prop is only supported when the client key includes a resource id.');
35
35
  }
36
+ if (properties.showMinimiseButton && typeof properties.onMinimise !== 'function') {
37
+ console.warn('The showMinimiseButton prop is set to true, but the onMinimise callback is not provided. Make sure to listen to the onMinimise callback to handle the minimisation of the Assistant.');
38
+ }
36
39
  return /*#__PURE__*/_jsx(Modal, {
37
40
  visible: isOpen,
38
41
  onRequestClose: () => onClose(),
@@ -53,9 +56,12 @@ export const DuffelAssistant = ({
53
56
  if (event.nativeEvent.data === 'duffel-assistant-close') {
54
57
  onClose();
55
58
  }
59
+ if (typeof properties.onMinimise === 'function' && event.nativeEvent.data === 'duffel-assistant-minimise') {
60
+ properties.onMinimise();
61
+ }
56
62
  try {
57
63
  const parsedData = JSON.parse(event.nativeEvent.data);
58
- if (parsedData.type === 'duffel-assistant-new-message' && typeof parsedData.userId === 'string' && typeof parsedData.resourceId === 'string' && onNewMessage !== undefined) {
64
+ if (parsedData.type === 'duffel-assistant-new-message' && typeof parsedData.userId === 'string' && typeof parsedData.resourceId === 'string' && typeof onNewMessage === 'function') {
59
65
  onNewMessage({
60
66
  userId: parsedData.userId,
61
67
  resourceId: parsedData.resourceId
@@ -1 +1 @@
1
- {"version":3,"names":["React","Modal","Platform","StyleSheet","View","WebView","hasJsonWebTokenFormat","getClientKeyPayload","jsx","_jsx","DuffelAssistant","isOpen","onClose","onNewMessage","properties","clientKey","Error","clientKeyPayload","clientKeyIncludesResource","order_id","undefined","booking_id","issueType","console","warn","context","visible","onRequestClose","animationType","children","style","styles","container","OS","injectedJavaScriptObject","source","uri","onMessage","event","nativeEvent","data","parsedData","JSON","parse","type","userId","resourceId","error","injectedJavaScript","stringify","create","height","width","paddingHorizontal","paddingTop","paddingBottom"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Modal","Platform","StyleSheet","View","WebView","hasJsonWebTokenFormat","getClientKeyPayload","jsx","_jsx","DuffelAssistant","isOpen","onClose","onNewMessage","properties","clientKey","Error","clientKeyPayload","clientKeyIncludesResource","order_id","undefined","booking_id","issueType","console","warn","context","showMinimiseButton","onMinimise","visible","onRequestClose","animationType","children","style","styles","container","OS","injectedJavaScriptObject","source","uri","onMessage","event","nativeEvent","data","parsedData","JSON","parse","type","userId","resourceId","error","injectedJavaScript","stringify","create","height","width","paddingHorizontal","paddingTop","paddingBottom"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
@@ -21,9 +21,20 @@ export interface DuffelAssistantProps {
21
21
  */
22
22
  isOpen: boolean;
23
23
  /**
24
- * This function callback is called when the user click to close/minimise the Assistant.
24
+ * This function callback is called when the user click to close the Assistant.
25
25
  */
26
26
  onClose: () => void;
27
+ /**
28
+ * This prop is used to control whether the minimise button is shown.
29
+ * Listen to the `onMinimise` callback to handle the minimisation of the Assistant.
30
+ *
31
+ * @default false
32
+ */
33
+ showMinimiseButton?: boolean;
34
+ /**
35
+ * This callback is triggered when the user click to minimise the Assistant.
36
+ */
37
+ onMinimise?: () => void;
27
38
  /**
28
39
  * This is used to authenticate requests to the Duffel API.
29
40
  *
@@ -1 +1 @@
1
- {"version":3,"file":"DuffelAssistantProps.d.ts","sourceRoot":"","sources":["../../../src/DuffelAssistantProps.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEnE,MAAM,MAAM,sBAAsB,GAAG;IACnC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;IAEpB;;;;;;OAMG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,WAAW,CAAC,EAAE,SAAS,GAAG,YAAY,GAAG,aAAa,CAAC;IAEvD;;OAEG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAE7B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,YAAY,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAE9E;;;;OAIG;IACH,OAAO,CAAC,EAAE,sBAAsB,CAAC;CAClC"}
1
+ {"version":3,"file":"DuffelAssistantProps.d.ts","sourceRoot":"","sources":["../../../src/DuffelAssistantProps.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEnE,MAAM,MAAM,sBAAsB,GAAG;IACnC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;IAEpB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IAExB;;;;;;OAMG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,WAAW,CAAC,EAAE,SAAS,GAAG,YAAY,GAAG,aAAa,CAAC;IAEvD;;OAEG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAE7B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,YAAY,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAE9E;;;;OAIG;IACH,OAAO,CAAC,EAAE,sBAAsB,CAAC;CAClC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,KAAK,oBAAoB,IAAI,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAInG,MAAM,MAAM,oBAAoB,GAAG,4BAA4B,CAAC;AAEhE,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA6G1D,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,KAAK,oBAAoB,IAAI,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAInG,MAAM,MAAM,oBAAoB,GAAG,4BAA4B,CAAC;AAEhE,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA+H1D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@duffel/react-native-components-assistant",
3
- "version": "0.4.1",
3
+ "version": "0.4.2",
4
4
  "description": "Duffel Assistant component in React Native",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -25,10 +25,23 @@ export interface DuffelAssistantProps {
25
25
  isOpen: boolean;
26
26
 
27
27
  /**
28
- * This function callback is called when the user click to close/minimise the Assistant.
28
+ * This function callback is called when the user click to close the Assistant.
29
29
  */
30
30
  onClose: () => void;
31
31
 
32
+ /**
33
+ * This prop is used to control whether the minimise button is shown.
34
+ * Listen to the `onMinimise` callback to handle the minimisation of the Assistant.
35
+ *
36
+ * @default false
37
+ */
38
+ showMinimiseButton?: boolean;
39
+
40
+ /**
41
+ * This callback is triggered when the user click to minimise the Assistant.
42
+ */
43
+ onMinimise?: () => void;
44
+
32
45
  /**
33
46
  * This is used to authenticate requests to the Duffel API.
34
47
  *
package/src/index.tsx CHANGED
@@ -56,6 +56,15 @@ export const DuffelAssistant: React.FC<DuffelAssistantProps> = ({
56
56
  );
57
57
  }
58
58
 
59
+ if (
60
+ properties.showMinimiseButton &&
61
+ typeof properties.onMinimise !== 'function'
62
+ ) {
63
+ console.warn(
64
+ 'The showMinimiseButton prop is set to true, but the onMinimise callback is not provided. Make sure to listen to the onMinimise callback to handle the minimisation of the Assistant.'
65
+ );
66
+ }
67
+
59
68
  return (
60
69
  <Modal
61
70
  visible={isOpen}
@@ -75,13 +84,22 @@ export const DuffelAssistant: React.FC<DuffelAssistantProps> = ({
75
84
  if (event.nativeEvent.data === 'duffel-assistant-close') {
76
85
  onClose();
77
86
  }
87
+
88
+ if (
89
+ typeof properties.onMinimise === 'function' &&
90
+ event.nativeEvent.data === 'duffel-assistant-minimise'
91
+ ) {
92
+ properties.onMinimise();
93
+ }
94
+
78
95
  try {
79
96
  const parsedData = JSON.parse(event.nativeEvent.data);
97
+
80
98
  if (
81
99
  parsedData.type === 'duffel-assistant-new-message' &&
82
100
  typeof parsedData.userId === 'string' &&
83
101
  typeof parsedData.resourceId === 'string' &&
84
- onNewMessage !== undefined
102
+ typeof onNewMessage === 'function'
85
103
  ) {
86
104
  onNewMessage({
87
105
  userId: parsedData.userId,