react-native-srschat 0.1.19 → 0.1.20

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 (65) hide show
  1. package/README.md +1 -0
  2. package/lib/commonjs/components/email.js +1 -1
  3. package/lib/commonjs/components/email.js.map +1 -1
  4. package/lib/commonjs/components/header.js +1 -0
  5. package/lib/commonjs/components/header.js.map +1 -1
  6. package/lib/commonjs/components/input.js +2 -7
  7. package/lib/commonjs/components/input.js.map +1 -1
  8. package/lib/commonjs/components/voice.js +47 -38
  9. package/lib/commonjs/components/voice.js.map +1 -1
  10. package/lib/commonjs/components/welcomeInput.js +4 -9
  11. package/lib/commonjs/components/welcomeInput.js.map +1 -1
  12. package/lib/commonjs/contexts/AppContext.js +6 -1
  13. package/lib/commonjs/contexts/AppContext.js.map +1 -1
  14. package/lib/commonjs/layout/disclaimer.js +1 -1
  15. package/lib/commonjs/layout/disclaimer.js.map +1 -1
  16. package/lib/commonjs/layout/layout.js +8 -23
  17. package/lib/commonjs/layout/layout.js.map +1 -1
  18. package/lib/commonjs/layout/welcome.js +4 -3
  19. package/lib/commonjs/layout/welcome.js.map +1 -1
  20. package/lib/commonjs/layout/window.js +4 -4
  21. package/lib/commonjs/layout/window.js.map +1 -1
  22. package/lib/commonjs/utils/audioRecorder.js +234 -44
  23. package/lib/commonjs/utils/audioRecorder.js.map +1 -1
  24. package/lib/module/components/email.js +1 -1
  25. package/lib/module/components/email.js.map +1 -1
  26. package/lib/module/components/header.js +1 -0
  27. package/lib/module/components/header.js.map +1 -1
  28. package/lib/module/components/input.js +2 -7
  29. package/lib/module/components/input.js.map +1 -1
  30. package/lib/module/components/voice.js +51 -41
  31. package/lib/module/components/voice.js.map +1 -1
  32. package/lib/module/components/welcomeInput.js +4 -9
  33. package/lib/module/components/welcomeInput.js.map +1 -1
  34. package/lib/module/contexts/AppContext.js +6 -1
  35. package/lib/module/contexts/AppContext.js.map +1 -1
  36. package/lib/module/layout/disclaimer.js +1 -1
  37. package/lib/module/layout/disclaimer.js.map +1 -1
  38. package/lib/module/layout/layout.js +8 -23
  39. package/lib/module/layout/layout.js.map +1 -1
  40. package/lib/module/layout/welcome.js +2 -3
  41. package/lib/module/layout/welcome.js.map +1 -1
  42. package/lib/module/layout/window.js +4 -4
  43. package/lib/module/layout/window.js.map +1 -1
  44. package/lib/module/utils/audioRecorder.js +232 -45
  45. package/lib/module/utils/audioRecorder.js.map +1 -1
  46. package/lib/typescript/components/input.d.ts.map +1 -1
  47. package/lib/typescript/components/voice.d.ts.map +1 -1
  48. package/lib/typescript/components/welcomeInput.d.ts.map +1 -1
  49. package/lib/typescript/contexts/AppContext.d.ts.map +1 -1
  50. package/lib/typescript/layout/layout.d.ts.map +1 -1
  51. package/lib/typescript/layout/window.d.ts.map +1 -1
  52. package/lib/typescript/utils/audioRecorder.d.ts +6 -3
  53. package/lib/typescript/utils/audioRecorder.d.ts.map +1 -1
  54. package/package.json +5 -1
  55. package/src/components/email.js +1 -1
  56. package/src/components/header.js +1 -0
  57. package/src/components/input.js +2 -3
  58. package/src/components/voice.js +77 -50
  59. package/src/components/welcomeInput.js +6 -4
  60. package/src/contexts/AppContext.js +6 -1
  61. package/src/layout/disclaimer.js +1 -1
  62. package/src/layout/layout.js +8 -12
  63. package/src/layout/welcome.js +1 -1
  64. package/src/layout/window.js +5 -4
  65. package/src/utils/audioRecorder.js +266 -45
@@ -57,7 +57,7 @@ export const ChatWindow = ({
57
57
  };
58
58
  return /*#__PURE__*/React.createElement(View, {
59
59
  style: styles.container
60
- }, /*#__PURE__*/React.createElement(View, panHandlers, /*#__PURE__*/React.createElement(Header, null)), /*#__PURE__*/React.createElement(KeyboardAwareScrollView, {
60
+ }, /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(Header, null)), /*#__PURE__*/React.createElement(KeyboardAwareScrollView, {
61
61
  ref: scrollViewRef,
62
62
  contentContainerStyle: styles.messagesContent,
63
63
  enableOnAndroid: true,
@@ -88,7 +88,7 @@ export const ChatWindow = ({
88
88
  lineHeight: 22
89
89
  }
90
90
  }
91
- }, msg.text), msg.type == 'ai' && i != 0 && msg.message_id && /*#__PURE__*/React.createElement(Feedback, {
91
+ }, typeof msg.text === 'string' ? msg.text : String(msg.text || '')), msg.type == 'ai' && i != 0 && msg.message_id && /*#__PURE__*/React.createElement(Feedback, {
92
92
  message: msg,
93
93
  messageId: msg.message_id
94
94
  })), msg.type == "middle" && /*#__PURE__*/React.createElement(View, {
@@ -107,7 +107,7 @@ export const ChatWindow = ({
107
107
  lineHeight: 22
108
108
  }
109
109
  }
110
- }, msg.text)), msg.products && msg.products.length > 0 && msg.products.map((prod, index) => /*#__PURE__*/React.createElement(View, {
110
+ }, typeof msg.text === 'string' ? msg.text : String(msg.text || ''))), msg.products && msg.products.length > 0 && msg.products.map((prod, index) => /*#__PURE__*/React.createElement(View, {
111
111
  key: index,
112
112
  style: styles.productCardWrapper
113
113
  }, /*#__PURE__*/React.createElement(ProductCard, {
@@ -122,7 +122,7 @@ export const ChatWindow = ({
122
122
  size: 20,
123
123
  color: "white",
124
124
  style: styles.icon
125
- })), msg.suggested_questions && Array.isArray(msg.questions) && msg.questions.map((question, index) => /*#__PURE__*/React.createElement(TouchableOpacity, {
125
+ })), msg.suggested_questions && Array.isArray(msg.suggested_questions) && msg.suggested_questions.length > 0 && msg.suggested_questions.map((question, index) => /*#__PURE__*/React.createElement(TouchableOpacity, {
126
126
  key: index,
127
127
  style: styles.suggestedQuestionButton,
128
128
  onPress: () => handleButtonClick(question)
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","useEffect","useContext","useRef","Text","StyleSheet","View","TextInput","TouchableOpacity","Platform","KeyboardAvoidingView","Keyboard","Animated","Linking","Button","Header","AppContext","Ionicons","KeyboardAwareScrollView","Testing","ChatInput","useWebSocketMessage","ProductCard","Markdown","Feedback","ProgressCircle","ChatWindow","panHandlers","handleSend","messages","input","setInput","ghostMessage","handleButtonClick","onProductCardClick","onAddToCartClick","uiConfig","ghostCard","typingIndicator","scrollViewRef","fadeAnim","Value","current","setTimeout","scrollToEnd","animated","loop","sequence","timing","toValue","duration","useNativeDriver","start","openLink","url","openURL","createElement","style","styles","container","ref","contentContainerStyle","messagesContent","enableOnAndroid","contentInsetAdjustmentBehavior","automaticallyAdjustContentInsets","contentInset","bottom","keyboardShouldPersistTaps","showsVerticalScrollIndicator","extraScrollHeight","onContentSizeChange","_scrollViewRef$curren","map","msg","i","key","messageWrapper","type","messageBubble","userMessage","aiMessage","body","color","fontSize","lineHeight","text","message_id","message","messageId","middleMessageBubble","middleMessage","name","size","marginRight","products","length","prod","index","productCardWrapper","resource","resource_type","resourceButton","onPress","resourceText","icon","suggested_questions","Array","isArray","questions","question","suggestedQuestionButton","suggestedQuestionText","ghostMessageContainer","ghostBar","ghostBarShort","opacity","ghostBarLong","ghostBarMedium","ghostCardContainer","ghostSquare","ghostBarsContainer","behavior","OS","undefined","keyboardVerticalOffset","testButtons","create","flex","padding","justifyContent","marginBottom","paddingHorizontal","borderRadius","alignSelf","backgroundColor","width","marginTop","borderWidth","borderColor","paddingVertical","textAlign","borderTopLeftRadius","marginVertical","height","flexDirection","alignItems","aspectRatio","paddingLeft"],"sourceRoot":"../../../src","sources":["layout/window.js"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,SAAS,EAAEC,UAAU,EAAEC,MAAM,QAAQ,OAAO;AACtE,SAASC,IAAI,EAAEC,UAAU,EAAEC,IAAI,EAAEC,SAAS,EAAEC,gBAAgB,EAAEC,QAAQ,EAAEC,oBAAoB,EAC1FC,QAAQ,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,MAAM,QAAQ,cAAc;AAC3D,SAASC,MAAM,QAAQ,sBAAsB;AAC7C,SAASC,UAAU,QAAQ,wBAAwB;AACnD,OAAOC,QAAQ,MAAM,oCAAoC;AACzD,SAASC,uBAAuB,QAAQ,yCAAyC;AACjF,SAASC,OAAO,QAAQ,uBAAuB;AAC/C,SAASC,SAAS,QAAQ,qBAAqB;AAC/C,SAASC,mBAAmB,QAAQ,iBAAiB;AACrD,SAASC,WAAW,QAAQ,2BAA2B;AACvD,OAAOC,QAAQ,MAAM,+BAA+B;AACpD,SAASC,QAAQ,QAAQ,wBAAwB;AACjD,SAASC,cAAc,QAAQ,8BAA8B;AAE7D,OAAO,MAAMC,UAAU,GAAGA,CAAC;EAAEC;AAAY,CAAC,KAAK;EAC7C,MAAM;IAAEC,UAAU;IAAEC,QAAQ;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,YAAY;IAAEC,iBAAiB;IAC5EC,kBAAkB;IAAEC,gBAAgB;IAAEC,QAAQ;IAAEC,SAAS;IAAEC;EAC5D,CAAC,GAAGpC,UAAU,CAACc,UAAU,CAAC;EAE3B,MAAMuB,aAAa,GAAGpC,MAAM,CAAC,IAAI,CAAC;EAClC,MAAMqC,QAAQ,GAAGrC,MAAM,CAAC,IAAIS,QAAQ,CAAC6B,KAAK,CAAC,GAAG,CAAC,CAAC,CAACC,OAAO;EAExDzC,SAAS,CAAC,MAAM;IACd,IAAIsC,aAAa,CAACG,OAAO,EAAE;MACzBC,UAAU,CAAC,MAAM;QACfJ,aAAa,CAACG,OAAO,CAACE,WAAW,CAAC;UAAEC,QAAQ,EAAE;QAAM,CAAC,CAAC;MACxD,CAAC,EAAE,GAAG,CAAC;IACT;EACF,CAAC,EAAE,EAAE,CAAC;EAEN5C,SAAS,CAAC,MAAM;IACd,IAAI+B,YAAY,EAAE;MAChBpB,QAAQ,CAACkC,IAAI,CACXlC,QAAQ,CAACmC,QAAQ,CAAC,CAChBnC,QAAQ,CAACoC,MAAM,CAACR,QAAQ,EAAE;QAAES,OAAO,EAAE,CAAC;QAAEC,QAAQ,EAAE,GAAG;QAAEC,eAAe,EAAE;MAAM,CAAC,CAAC,EAChFvC,QAAQ,CAACoC,MAAM,CAACR,QAAQ,EAAE;QAAES,OAAO,EAAE,GAAG;QAAEC,QAAQ,EAAE,GAAG;QAAEC,eAAe,EAAE;MAAM,CAAC,CAAC,CACnF,CACH,CAAC,CAACC,KAAK,CAAC,CAAC;IACX;EACF,CAAC,EAAE,CAACpB,YAAY,CAAC,CAAC;EAElBX,mBAAmB,CAAC,CAAC;EAErB,MAAMgC,QAAQ,GAAIC,GAAG,IAAK;IACxBzC,OAAO,CAAC0C,OAAO,CAACD,GAAG,CAAC;EACtB,CAAC;EAED,oBACEvD,KAAA,CAAAyD,aAAA,CAAClD,IAAI;IAACmD,KAAK,EAAEC,MAAM,CAACC;EAAU,gBAC5B5D,KAAA,CAAAyD,aAAA,CAAClD,IAAI,EAAKqB,WAAW,eACnB5B,KAAA,CAAAyD,aAAA,CAACzC,MAAM,MAAE,CACL,CAAC,eAGPhB,KAAA,CAAAyD,aAAA,CAACtC,uBAAuB;IACtB0C,GAAG,EAAErB,aAAc;IACnBsB,qBAAqB,EAAEH,MAAM,CAACI,eAAgB;IAC9CC,eAAe;IACfC,8BAA8B,EAAC,OAAO;IACtCC,gCAAgC,EAAE,KAAM;IACxCC,YAAY,EAAE;MAAEC,MAAM,EAAE;IAAE,CAAE;IAC5BC,yBAAyB,EAAC,QAAQ;IAClCC,4BAA4B,EAAE,KAAM;IACpCC,iBAAiB,EAAE,CAAE;IACrBC,mBAAmB,EAAEA,CAAA,KAAM;MAAA,IAAAC,qBAAA;MACzB,CAAAA,qBAAA,GAAAjC,aAAa,CAACG,OAAO,cAAA8B,qBAAA,eAArBA,qBAAA,CAAuB5B,WAAW,CAAC;QAAEC,QAAQ,EAAE;MAAK,CAAC,CAAC;IACxD;EAAE,GAEDhB,QAAQ,CAAC4C,GAAG,CAAC,CAACC,GAAG,EAAEC,CAAC,kBAEnB5E,KAAA,CAAAyD,aAAA,CAAClD,IAAI;IAACsE,GAAG,EAAED,CAAE;IAAClB,KAAK,EAAEC,MAAM,CAACmB;EAAe,GACxCH,GAAG,CAACI,IAAI,KAAK,QAAQ,iBAClB/E,KAAA,CAAAyD,aAAA,CAAClD,IAAI;IAACmD,KAAK,EAAE,CAAEC,MAAM,CAACqB,aAAa,EAAEL,GAAG,CAACI,IAAI,KAAK,MAAM,GAAGpB,MAAM,CAACsB,WAAW,GAAGtB,MAAM,CAACuB,SAAS;EAAG,gBACjGlF,KAAA,CAAAyD,aAAA,CAACjC,QAAQ;IAACkC,KAAK,EAAE;MAAEyB,IAAI,EAAE;QAAEC,KAAK,EAAET,GAAG,CAACI,IAAI,KAAK,MAAM,GAAG,SAAS,GAAG,SAAS;QAACM,QAAQ,EAAE,EAAE;QAAEC,UAAU,EAAE;MAAG;IAAC;EAAE,GAC3GX,GAAG,CAACY,IACG,CAAC,EACTZ,GAAG,CAACI,IAAI,IAAI,IAAI,IAAIH,CAAC,IAAI,CAAC,IAAID,GAAG,CAACa,UAAU,iBAC5CxF,KAAA,CAAAyD,aAAA,CAAChC,QAAQ;IAACgE,OAAO,EAAEd,GAAI;IAACe,SAAS,EAAEf,GAAG,CAACa;EAAW,CAAC,CAEjD,CACT,EAEAb,GAAG,CAACI,IAAI,IAAI,QAAQ,iBACnB/E,KAAA,CAAAyD,aAAA,CAAClD,IAAI;IAACmD,KAAK,EAAE,CAACC,MAAM,CAACgC,mBAAmB,EAAEhC,MAAM,CAACiC,aAAa;EAAE,gBAC9D5F,KAAA,CAAAyD,aAAA,CAACvC,QAAQ;IAAC2E,IAAI,EAAC,kBAAkB;IAACC,IAAI,EAAE,EAAG;IAACpC,KAAK,EAAE;MAACqC,WAAW,EAAE;IAAE;EAAE,CAAC,CAAC,eACvE/F,KAAA,CAAAyD,aAAA,CAACjC,QAAQ;IAACkC,KAAK,EAAE;MAAEyB,IAAI,EAAE;QAAEC,KAAK,EAAET,GAAG,CAACI,IAAI,KAAK,MAAM,GAAG,SAAS,GAAG,SAAS;QAACM,QAAQ,EAAE,EAAE;QAAEC,UAAU,EAAE;MAAG;IAAC;EAAE,GAC7GX,GAAG,CAACY,IACK,CACN,CACP,EAEAZ,GAAG,CAACqB,QAAQ,IAAIrB,GAAG,CAACqB,QAAQ,CAACC,MAAM,GAAG,CAAC,IACtCtB,GAAG,CAACqB,QAAQ,CAACtB,GAAG,CAAC,CAACwB,IAAI,EAAEC,KAAK,kBAC3BnG,KAAA,CAAAyD,aAAA,CAAClD,IAAI;IAACsE,GAAG,EAAEsB,KAAM;IAACzC,KAAK,EAAEC,MAAM,CAACyC;EAAmB,gBACjDpG,KAAA,CAAAyD,aAAA,CAAClC,WAAW;IAAC2E,IAAI,EAAEA;EAAK,CAAE,CACtB,CACT,CAAC,EAEDvB,GAAG,CAAC0B,QAAQ,IAAI1B,GAAG,CAAC0B,QAAQ,CAACJ,MAAM,GAAG,CAAC,IAAItB,GAAG,CAAC2B,aAAa,IAAI,OAAO,iBACtEtG,KAAA,CAAAyD,aAAA,CAAChD,gBAAgB;IAACiD,KAAK,EAAEC,MAAM,CAAC4C,cAAe;IAACC,OAAO,EAAEA,CAAA,KAAMlD,QAAQ,CAACqB,GAAG,CAAC0B,QAAQ;EAAE,gBACpFrG,KAAA,CAAAyD,aAAA,CAACpD,IAAI;IAACqD,KAAK,EAAEC,MAAM,CAAC8C;EAAa,GAAC,aAAiB,CAAC,eACpDzG,KAAA,CAAAyD,aAAA,CAACvC,QAAQ;IAAC2E,IAAI,EAAC,MAAM;IAACC,IAAI,EAAE,EAAG;IAACV,KAAK,EAAC,OAAO;IAAC1B,KAAK,EAAEC,MAAM,CAAC+C;EAAK,CAAE,CACnD,CAAC,EAGpB/B,GAAG,CAACgC,mBAAmB,IAAIC,KAAK,CAACC,OAAO,CAAClC,GAAG,CAACmC,SAAS,CAAC,IAAInC,GAAG,CAACmC,SAAS,CAACpC,GAAG,CAAC,CAACqC,QAAQ,EAAEZ,KAAK,kBAC1FnG,KAAA,CAAAyD,aAAA,CAAChD,gBAAgB;IAACoE,GAAG,EAAEsB,KAAM;IAACzC,KAAK,EAAEC,MAAM,CAACqD,uBAAwB;IAClER,OAAO,EAAEA,CAAA,KAAMtE,iBAAiB,CAAC6E,QAAQ;EAAE,gBAC3C/G,KAAA,CAAAyD,aAAA,CAACpD,IAAI;IAACqD,KAAK,EAAEC,MAAM,CAACsD;EAAsB,GAAEF,QAAe,CAC3C,CACrB,CAAC,EAED9E,YAAY,IAAI2C,CAAC,KAAK9C,QAAQ,CAACmE,MAAM,GAAG,CAAC,iBACxCjG,KAAA,CAAAyD,aAAA,CAAClD,IAAI;IAACmD,KAAK,EAAEC,MAAM,CAACuD;EAAsB,gBACxClH,KAAA,CAAAyD,aAAA,CAAC5C,QAAQ,CAACN,IAAI;IAACmD,KAAK,EAAE,CAACC,MAAM,CAACwD,QAAQ,EAAExD,MAAM,CAACyD,aAAa,EAAE;MAAEC,OAAO,EAAE5E;IAAS,CAAC;EAAE,CAAE,CAAC,eACxFzC,KAAA,CAAAyD,aAAA,CAAC5C,QAAQ,CAACN,IAAI;IAACmD,KAAK,EAAE,CAACC,MAAM,CAACwD,QAAQ,EAAExD,MAAM,CAAC2D,YAAY,EAAE;MAAED,OAAO,EAAE5E;IAAS,CAAC;EAAE,CAAE,CAAC,eACvFzC,KAAA,CAAAyD,aAAA,CAAC5C,QAAQ,CAACN,IAAI;IAACmD,KAAK,EAAE,CAACC,MAAM,CAACwD,QAAQ,EAAExD,MAAM,CAAC4D,cAAc,EAAE;MAAEF,OAAO,EAAE5E;IAAS,CAAC;EAAE,CAAE,CACpF,CACP,EAEAH,SAAS,IAAIsC,CAAC,KAAK9C,QAAQ,CAACmE,MAAM,GAAG,CAAC,iBACrCjG,KAAA,CAAAyD,aAAA,CAAClD,IAAI;IAACmD,KAAK,EAAEC,MAAM,CAAC6D;EAAmB,gBACrCxH,KAAA,CAAAyD,aAAA,CAAClD,IAAI;IAACmD,KAAK,EAAEC,MAAM,CAAC8D;EAAY,CAAE,CAAC,eACnCzH,KAAA,CAAAyD,aAAA,CAAClD,IAAI;IAACmD,KAAK,EAAEC,MAAM,CAAC+D;EAAmB,gBACrC1H,KAAA,CAAAyD,aAAA,CAAC5C,QAAQ,CAACN,IAAI;IAACmD,KAAK,EAAE,CAACC,MAAM,CAACwD,QAAQ,EAAExD,MAAM,CAACyD,aAAa,EAAE;MAAEC,OAAO,EAAE5E;IAAS,CAAC;EAAE,CAAE,CAAC,eACxFzC,KAAA,CAAAyD,aAAA,CAAC5C,QAAQ,CAACN,IAAI;IAACmD,KAAK,EAAE,CAACC,MAAM,CAACwD,QAAQ,EAAExD,MAAM,CAAC2D,YAAY,EAAE;MAAED,OAAO,EAAE5E;IAAS,CAAC;EAAE,CAAE,CAAC,eACvFzC,KAAA,CAAAyD,aAAA,CAAC5C,QAAQ,CAACN,IAAI;IAACmD,KAAK,EAAE,CAACC,MAAM,CAACwD,QAAQ,EAAExD,MAAM,CAAC4D,cAAc,EAAE;MAAEF,OAAO,EAAE5E;IAAS,CAAC;EAAE,CAAE,CACpF,CACF,CAGJ,CACP,CACsB,CAAC,eAE1BzC,KAAA,CAAAyD,aAAA,CAAC9C,oBAAoB;IACnBgH,QAAQ,EAAEjH,QAAQ,CAACkH,EAAE,KAAK,KAAK,GAAG,SAAS,GAAGC,SAAU;IACxDC,sBAAsB,EAAEpH,QAAQ,CAACkH,EAAE,KAAK,KAAK,GAAG,GAAG,GAAG;EAAG,GAExDvF,QAAQ,CAAC0F,WAAW,iBACnB/H,KAAA,CAAAyD,aAAA,CAACrC,OAAO;IACNe,kBAAkB,EAAEA,kBAAmB;IACvCC,gBAAgB,EAAEA;EAAiB,CACpC,CAAC,EAEH,CAACG,eAAe,gBACfvC,KAAA,CAAAyD,aAAA,CAACpC,SAAS,MAAC,CAAC,gBACZrB,KAAA,CAAAyD,aAAA,CAAC/B,cAAc,MAAE,CAEC,CAClB,CAAC;AAEX,CAAC;AAED,MAAMiC,MAAM,GAAGrD,UAAU,CAAC0H,MAAM,CAAC;EAC/BpE,SAAS,EAAE;IACTqE,IAAI,EAAE;EACR,CAAC;EACDlE,eAAe,EAAE;IACfmE,OAAO,EAAE,EAAE;IACXC,cAAc,EAAE;EAClB,CAAC;EACDrD,cAAc,EAAE;IACdsD,YAAY,EAAE;EAChB,CAAC;EACDpD,aAAa,EAAE;IACbkD,OAAO,EAAE,CAAC;IACVG,iBAAiB,EAAE,EAAE;IACrBC,YAAY,EAAE,EAAE;IAChBF,YAAY,EAAE;EAChB,CAAC;EACDnD,WAAW,EAAE;IACXsD,SAAS,EAAE,UAAU;IACrBC,eAAe,EAAE,SAAS;IAC1BpD,KAAK,EAAE;EACT,CAAC;EACDF,SAAS,EAAE;IACTqD,SAAS,EAAE,YAAY;IACvBC,eAAe,EAAE,SAAS;IAC1BC,KAAK,EAAE;EACT,CAAC;EACDrC,kBAAkB,EAAE;IAClBsC,SAAS,EAAE;EACb,CAAC;EACD1B,uBAAuB,EAAE;IACvBwB,eAAe,EAAE,OAAO;IACxBG,WAAW,EAAE,CAAC;IACdC,WAAW,EAAE,SAAS;IACtBN,YAAY,EAAE,EAAE;IAChBO,eAAe,EAAE,EAAE;IACnBR,iBAAiB,EAAE,EAAE;IACrBD,YAAY,EAAE,CAAC;IACfG,SAAS,EAAE;EACb,CAAC;EACDtB,qBAAqB,EAAE;IACrB7B,KAAK,EAAE,SAAS;IAChBC,QAAQ,EAAE,EAAE;IACZyD,SAAS,EAAE;EACb,CAAC;EACD5B,qBAAqB,EAAE;IACrBqB,SAAS,EAAE,YAAY;IACvBE,KAAK,EAAE,MAAM;IACbD,eAAe,EAAE,SAAS;IAC1BF,YAAY,EAAE,EAAE;IAChBS,mBAAmB,EAAE,CAAC;IACtBb,OAAO,EAAE,EAAE;IACXc,cAAc,EAAE;EAClB,CAAC;EACD7B,QAAQ,EAAE;IACR8B,MAAM,EAAE,EAAE;IACVX,YAAY,EAAE,EAAE;IAChBE,eAAe,EAAE,SAAS;IAC1BQ,cAAc,EAAE;EAClB,CAAC;EACD5B,aAAa,EAAE;IACbqB,KAAK,EAAE;EACT,CAAC;EACDlB,cAAc,EAAE;IACdkB,KAAK,EAAE;EACT,CAAC;EACDnB,YAAY,EAAE;IACZmB,KAAK,EAAE;EACT,CAAC;EACDjB,kBAAkB,EAAE;IAClB0B,aAAa,EAAE,KAAK;IAAE;IACtBC,UAAU,EAAE,QAAQ;IAAE;IACtBV,KAAK,EAAE,MAAM;IACbD,eAAe,EAAE,SAAS;IAC1BF,YAAY,EAAE,EAAE;IAChBS,mBAAmB,EAAE,CAAC;IACtBb,OAAO,EAAE,EAAE;IACXc,cAAc,EAAE;EAClB,CAAC;EACDvB,WAAW,EAAE;IACXgB,KAAK,EAAE,KAAK;IAAE;IACdW,WAAW,EAAE,CAAC;IAAE;IAChBZ,eAAe,EAAE,SAAS;IAAE;IAC5BF,YAAY,EAAE;EAChB,CAAC;EACDZ,kBAAkB,EAAE;IAClBe,KAAK,EAAE,KAAK;IAAE;IACdY,WAAW,EAAE,EAAE,CAAE;EACnB,CAAC;EACD9C,cAAc,EAAE;IACd2C,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBX,eAAe,EAAE,SAAS;IAC1BK,eAAe,EAAE,EAAE;IACnBR,iBAAiB,EAAE,EAAE;IACrBD,YAAY,EAAE,CAAC;IACfE,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE;EACb,CAAC;EACD9B,YAAY,EAAE;IACVrB,KAAK,EAAE,OAAO;IACdC,QAAQ,EAAE,EAAE;IACZU,WAAW,EAAE;EACjB,CAAC;EACDJ,mBAAmB,EAAC;IAClBuC,OAAO,EAAE,CAAC;IACVG,iBAAiB,EAAE,EAAE;IACrBC,YAAY,EAAE,EAAE;IAChBF,YAAY,EAAE,CAAC;IACfc,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE;EACd,CAAC;EACDvD,aAAa,EAAC;IACZR,KAAK,EAAE,SAAS;IAChBmD,SAAS,EAAE,YAAY;IACvBC,eAAe,EAAE,SAAS;IAAE;IAC5BC,KAAK,EAAE;EACT;AACF,CAAC,CAAC;AAEF,CAAC;AACD;AACA;AACA,MAHC","ignoreList":[]}
1
+ {"version":3,"names":["React","useState","useEffect","useContext","useRef","Text","StyleSheet","View","TextInput","TouchableOpacity","Platform","KeyboardAvoidingView","Keyboard","Animated","Linking","Button","Header","AppContext","Ionicons","KeyboardAwareScrollView","Testing","ChatInput","useWebSocketMessage","ProductCard","Markdown","Feedback","ProgressCircle","ChatWindow","panHandlers","handleSend","messages","input","setInput","ghostMessage","handleButtonClick","onProductCardClick","onAddToCartClick","uiConfig","ghostCard","typingIndicator","scrollViewRef","fadeAnim","Value","current","setTimeout","scrollToEnd","animated","loop","sequence","timing","toValue","duration","useNativeDriver","start","openLink","url","openURL","createElement","style","styles","container","ref","contentContainerStyle","messagesContent","enableOnAndroid","contentInsetAdjustmentBehavior","automaticallyAdjustContentInsets","contentInset","bottom","keyboardShouldPersistTaps","showsVerticalScrollIndicator","extraScrollHeight","onContentSizeChange","_scrollViewRef$curren","map","msg","i","key","messageWrapper","type","messageBubble","userMessage","aiMessage","body","color","fontSize","lineHeight","text","String","message_id","message","messageId","middleMessageBubble","middleMessage","name","size","marginRight","products","length","prod","index","productCardWrapper","resource","resource_type","resourceButton","onPress","resourceText","icon","suggested_questions","Array","isArray","question","suggestedQuestionButton","suggestedQuestionText","ghostMessageContainer","ghostBar","ghostBarShort","opacity","ghostBarLong","ghostBarMedium","ghostCardContainer","ghostSquare","ghostBarsContainer","behavior","OS","undefined","keyboardVerticalOffset","testButtons","create","flex","padding","justifyContent","marginBottom","paddingHorizontal","borderRadius","alignSelf","backgroundColor","width","marginTop","borderWidth","borderColor","paddingVertical","textAlign","borderTopLeftRadius","marginVertical","height","flexDirection","alignItems","aspectRatio","paddingLeft"],"sourceRoot":"../../../src","sources":["layout/window.js"],"mappings":"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","ignoreList":[]}
@@ -1,45 +1,217 @@
1
1
  // audioRecorder.js
2
- import AudioRecorderPlayer from 'react-native-audio-recorder-player';
2
+
3
3
  import { Platform, PermissionsAndroid } from 'react-native';
4
- import { NativeModules } from 'react-native';
5
- const audioRecorderPlayer = new AudioRecorderPlayer();
4
+ import Voice from '@react-native-community/voice';
5
+ import { check, PERMISSIONS, request, RESULTS } from 'react-native-permissions';
6
+ let resultCallback = null;
6
7
  let silenceTimer = null;
7
- let rmsValues = [];
8
- const SILENCE_RMS_THRESHOLD = 0.02;
9
- const SILENCE_LENGTH_MS = 2000;
10
- export async function startRecording(handleStopRecording) {
11
- audioRecorderPlayer = new AudioRecorderPlayer();
12
- rmsValues = [];
13
- audioRecorderPlayer.startRecorder();
14
- audioRecorderPlayer.addRecordBackListener(e => {
15
- const rms = Math.sqrt(e.currentMetering.reduce((sum, value) => sum + Math.pow(value / 100, 2), 0) / e.currentMetering.length);
16
- rmsValues.push(rms);
8
+ let isCurrentlyRecording = false;
9
+ let finalResult = '';
10
+ const SILENCE_DURATION = 1500; // 1.5 seconds of silence before stopping
11
+
12
+ // Initialize Voice handlers
13
+ export async function initVoice(onResult) {
14
+ try {
15
+ resultCallback = onResult;
16
+ finalResult = '';
17
+
18
+ // First check if speech recognition is available
19
+ const isAvailable = await Voice.isAvailable();
20
+ if (!isAvailable) {
21
+ console.error('Speech recognition is not available on this device');
22
+ return false;
23
+ }
17
24
 
18
- // Detect silence
19
- if (rms > SILENCE_RMS_THRESHOLD) {
25
+ // Set up all event listeners
26
+ Voice.onSpeechStart = e => {
27
+ console.log('onSpeechStart: ', e);
28
+ isCurrentlyRecording = true;
29
+ finalResult = '';
20
30
  if (silenceTimer) {
21
31
  clearTimeout(silenceTimer);
22
32
  silenceTimer = null;
23
33
  }
24
- } else if (!silenceTimer) {
25
- silenceTimer = setTimeout(() => {
26
- handleStopRecording();
27
- }, SILENCE_LENGTH_MS);
34
+ };
35
+ Voice.onSpeechRecognized = e => {
36
+ console.log('onSpeechRecognized: ', e);
37
+ if (e.isFinal) {
38
+ console.log('Speech recognition final');
39
+ handleFinalResult();
40
+ }
41
+ };
42
+ Voice.onSpeechEnd = async e => {
43
+ console.log('onSpeechEnd: ', e);
44
+ if (silenceTimer) {
45
+ clearTimeout(silenceTimer);
46
+ silenceTimer = null;
47
+ }
48
+
49
+ // Only handle final result if we're still recording
50
+ if (isCurrentlyRecording) {
51
+ await handleFinalResult();
52
+ }
53
+ };
54
+ Voice.onSpeechError = async e => {
55
+ var _e$error;
56
+ console.error('onSpeechError: ', e);
57
+ if (silenceTimer) {
58
+ clearTimeout(silenceTimer);
59
+ silenceTimer = null;
60
+ }
61
+ await cleanupVoiceSession();
62
+ resultCallback(null, ((_e$error = e.error) === null || _e$error === void 0 ? void 0 : _e$error.message) || 'Speech recognition error');
63
+ };
64
+ Voice.onSpeechResults = e => {
65
+ console.log('onSpeechResults: ', e);
66
+ if (e.value && e.value.length > 0) {
67
+ finalResult = e.value[0];
68
+ handleSilenceDetection();
69
+ }
70
+ };
71
+ Voice.onSpeechPartialResults = e => {
72
+ console.log('onSpeechPartialResults: ', e);
73
+ if (silenceTimer) {
74
+ clearTimeout(silenceTimer);
75
+ }
76
+ if (e.value && e.value.length > 0) {
77
+ finalResult = e.value[0];
78
+ handleSilenceDetection();
79
+ }
80
+ };
81
+ if (Platform.OS === 'android') {
82
+ Voice.onSpeechVolumeChanged = e => {
83
+ console.log('onSpeechVolumeChanged: ', e);
84
+ };
28
85
  }
29
- });
30
- console.log('Recording started...');
86
+ return true;
87
+ } catch (error) {
88
+ console.error('Error initializing Voice:', error);
89
+ return false;
90
+ }
31
91
  }
32
- export async function stopRecording() {
33
- if (!audioRecorderPlayer) {
34
- console.error('AudioRecorderPlayer instance is null');
35
- return null;
92
+ const handleSilenceDetection = () => {
93
+ if (silenceTimer) {
94
+ clearTimeout(silenceTimer);
95
+ }
96
+ silenceTimer = setTimeout(async () => {
97
+ if (isCurrentlyRecording) {
98
+ await handleFinalResult();
99
+ }
100
+ }, SILENCE_DURATION);
101
+ };
102
+ const handleFinalResult = async () => {
103
+ if (!isCurrentlyRecording) return;
104
+ if (finalResult) {
105
+ resultCallback(finalResult);
36
106
  }
107
+
108
+ // Stop recording first
109
+ await stopRecording();
110
+
111
+ // Then clean up the session
112
+ await cleanupVoiceSession();
113
+ };
114
+ const cleanupVoiceSession = async () => {
115
+ isCurrentlyRecording = false;
37
116
  if (silenceTimer) {
38
117
  clearTimeout(silenceTimer);
118
+ silenceTimer = null;
119
+ }
120
+ try {
121
+ // First try to stop if still recognizing
122
+ const isRecognizing = await Voice.isRecognizing();
123
+ if (isRecognizing) {
124
+ try {
125
+ await Voice.stop();
126
+ await new Promise(resolve => setTimeout(resolve, 100));
127
+ } catch (e) {
128
+ console.error('Error stopping in cleanup:', e);
129
+ }
130
+ }
131
+
132
+ // Then force destroy
133
+ await Voice.destroy();
134
+ await new Promise(resolve => setTimeout(resolve, 300));
135
+
136
+ // Double check and force destroy again if needed
137
+ const stillRecognizing = await Voice.isRecognizing();
138
+ if (stillRecognizing) {
139
+ await Voice.destroy();
140
+ await new Promise(resolve => setTimeout(resolve, 300));
141
+ }
142
+ } catch (error) {
143
+ console.error('Error in cleanupVoiceSession:', error);
144
+ // Final attempt to destroy on error
145
+ try {
146
+ await Voice.destroy();
147
+ } catch (e) {
148
+ console.error('Final destroy attempt failed:', e);
149
+ }
150
+ }
151
+ finalResult = '';
152
+ };
153
+ export async function startRecording() {
154
+ try {
155
+ // Ensure cleanup of any existing session
156
+ await cleanupVoiceSession();
157
+ const hasPermission = await requestAudioPermission();
158
+ if (!hasPermission) {
159
+ console.error('No permission to record audio');
160
+ return false;
161
+ }
162
+ await Voice.start('en-US');
163
+ isCurrentlyRecording = true;
164
+ return true;
165
+ } catch (error) {
166
+ console.error('Error starting voice recognition:', error);
167
+ await cleanupVoiceSession();
168
+ return false;
169
+ }
170
+ }
171
+ export async function stopRecording() {
172
+ try {
173
+ if (!isCurrentlyRecording) return;
174
+
175
+ // Set this first to prevent race conditions
176
+ isCurrentlyRecording = false;
177
+ if (silenceTimer) {
178
+ clearTimeout(silenceTimer);
179
+ silenceTimer = null;
180
+ }
181
+
182
+ // First try to stop
183
+ try {
184
+ await Voice.stop();
185
+ // Wait a bit for stop to complete
186
+ await new Promise(resolve => setTimeout(resolve, 100));
187
+ } catch (error) {
188
+ console.error('Error stopping Voice:', error);
189
+ }
190
+
191
+ // Then force destroy
192
+ try {
193
+ await Voice.destroy();
194
+ await new Promise(resolve => setTimeout(resolve, 300));
195
+ } catch (error) {
196
+ console.error('Error destroying Voice:', error);
197
+ }
198
+
199
+ // Final cleanup
200
+ await cleanupVoiceSession();
201
+ } catch (error) {
202
+ console.error('Error in stopRecording:', error);
203
+ // Force cleanup on error
204
+ await cleanupVoiceSession();
205
+ }
206
+ }
207
+ export async function cancelRecording() {
208
+ try {
209
+ await Voice.cancel();
210
+ await cleanupVoiceSession();
211
+ } catch (error) {
212
+ console.error('Error canceling voice recognition:', error);
213
+ await cleanupVoiceSession();
39
214
  }
40
- const result = await audioRecorderPlayer.stopRecorder();
41
- console.log('Recording stopped:', result);
42
- return result;
43
215
  }
44
216
  export async function requestAudioPermission() {
45
217
  if (Platform.OS === 'android') {
@@ -47,42 +219,57 @@ export async function requestAudioPermission() {
47
219
  } else if (Platform.OS === 'ios') {
48
220
  return await requestIOSPermission();
49
221
  }
222
+ return false;
50
223
  }
51
-
52
- // ✅ Android: Request Microphone Permission
53
224
  async function requestAndroidPermission() {
54
225
  try {
226
+ // Check available speech recognition services on Android
227
+ const services = await Voice.getSpeechRecognitionServices();
228
+ if (!services || services.length === 0) {
229
+ console.error('No speech recognition services available');
230
+ return false;
231
+ }
55
232
  const granted = await PermissionsAndroid.request(PermissionsAndroid.PERMISSIONS.RECORD_AUDIO, {
56
233
  title: 'Microphone Permission',
57
- message: 'This app needs access to your microphone to record audio.',
234
+ message: 'This app needs access to your microphone for voice recognition.',
58
235
  buttonPositive: 'OK',
59
236
  buttonNegative: 'Cancel'
60
237
  });
61
238
  return granted === PermissionsAndroid.RESULTS.GRANTED;
62
239
  } catch (error) {
63
- console.error('Error requesting microphone permission:', error);
240
+ console.error('Error requesting Android permission:', error);
64
241
  return false;
65
242
  }
66
243
  }
67
-
68
- // ✅ iOS: Request Microphone Permission
69
244
  async function requestIOSPermission() {
70
245
  try {
71
- const {
72
- AVAudioSession
73
- } = NativeModules;
74
- if (AVAudioSession) {
75
- await AVAudioSession.requestRecordPermission(granted => {
76
- console.log('iOS Microphone Permission:', granted);
77
- return granted;
78
- });
79
- } else {
80
- console.warn('AVAudioSession not available');
246
+ // Request microphone permission
247
+ const micPermission = await request(PERMISSIONS.IOS.MICROPHONE);
248
+ if (micPermission !== RESULTS.GRANTED) {
249
+ console.log('Microphone permission denied');
81
250
  return false;
82
251
  }
252
+
253
+ // Request speech recognition permission
254
+ const speechPermission = await request(PERMISSIONS.IOS.SPEECH_RECOGNITION);
255
+ if (speechPermission !== RESULTS.GRANTED) {
256
+ console.log('Speech recognition permission denied');
257
+ return false;
258
+ }
259
+ return true;
83
260
  } catch (error) {
84
- console.error('Error requesting microphone permission on iOS:', error);
261
+ console.error('Error requesting iOS permissions:', error);
85
262
  return false;
86
263
  }
87
264
  }
265
+ export function cleanup() {
266
+ Voice.destroy().then(() => {
267
+ Voice.removeAllListeners();
268
+ cleanupVoiceSession();
269
+ }).catch(error => {
270
+ console.error('Error in cleanup:', error);
271
+ // Try one more time
272
+ Voice.destroy().catch(e => console.error('Final cleanup attempt failed:', e));
273
+ });
274
+ }
88
275
  //# sourceMappingURL=audioRecorder.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["AudioRecorderPlayer","Platform","PermissionsAndroid","NativeModules","audioRecorderPlayer","silenceTimer","rmsValues","SILENCE_RMS_THRESHOLD","SILENCE_LENGTH_MS","startRecording","handleStopRecording","startRecorder","addRecordBackListener","e","rms","Math","sqrt","currentMetering","reduce","sum","value","pow","length","push","clearTimeout","setTimeout","console","log","stopRecording","error","result","stopRecorder","requestAudioPermission","OS","requestAndroidPermission","requestIOSPermission","granted","request","PERMISSIONS","RECORD_AUDIO","title","message","buttonPositive","buttonNegative","RESULTS","GRANTED","AVAudioSession","requestRecordPermission","warn"],"sourceRoot":"../../../src","sources":["utils/audioRecorder.js"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Platform","PermissionsAndroid","Voice","check","PERMISSIONS","request","RESULTS","resultCallback","silenceTimer","isCurrentlyRecording","finalResult","SILENCE_DURATION","initVoice","onResult","isAvailable","console","error","onSpeechStart","e","log","clearTimeout","onSpeechRecognized","isFinal","handleFinalResult","onSpeechEnd","onSpeechError","_e$error","cleanupVoiceSession","message","onSpeechResults","value","length","handleSilenceDetection","onSpeechPartialResults","OS","onSpeechVolumeChanged","setTimeout","stopRecording","isRecognizing","stop","Promise","resolve","destroy","stillRecognizing","startRecording","hasPermission","requestAudioPermission","start","cancelRecording","cancel","requestAndroidPermission","requestIOSPermission","services","getSpeechRecognitionServices","granted","RECORD_AUDIO","title","buttonPositive","buttonNegative","GRANTED","micPermission","IOS","MICROPHONE","speechPermission","SPEECH_RECOGNITION","cleanup","then","removeAllListeners","catch"],"sourceRoot":"../../../src","sources":["utils/audioRecorder.js"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/components/input.js"],"names":[],"mappings":"AAeO;;;sBA4BN;kBA3C8D,OAAO"}
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/components/input.js"],"names":[],"mappings":"AAgBO;;;sBA0BN;kBA1C8D,OAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"voice.d.ts","sourceRoot":"","sources":["../../../src/components/voice.js"],"names":[],"mappings":"AASO,iDAkEN;kBA1E2C,OAAO"}
1
+ {"version":3,"file":"voice.d.ts","sourceRoot":"","sources":["../../../src/components/voice.js"],"names":[],"mappings":"AAgBO,iDAsFN;kBApGsD,OAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"welcomeInput.d.ts","sourceRoot":"","sources":["../../../src/components/welcomeInput.js"],"names":[],"mappings":"AAeO;;;sBA+BN;kBA9C8D,OAAO"}
1
+ {"version":3,"file":"welcomeInput.d.ts","sourceRoot":"","sources":["../../../src/components/welcomeInput.js"],"names":[],"mappings":"AAgBO;;;sBAgCN;kBAhD8D,OAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"AppContext.d.ts","sourceRoot":"","sources":["../../../src/contexts/AppContext.js"],"names":[],"mappings":"AAKA,4CAA0C;AAEnC;;;;;;sBAoQN;kBA3Q6E,OAAO"}
1
+ {"version":3,"file":"AppContext.d.ts","sourceRoot":"","sources":["../../../src/contexts/AppContext.js"],"names":[],"mappings":"AAKA,4CAA0C;AAEnC;;;;;;sBAyQN;kBAhR6E,OAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../src/layout/layout.js"],"names":[],"mappings":"AAWO,4CAuGN;kBAlH8D,OAAO"}
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../src/layout/layout.js"],"names":[],"mappings":"AAWO,4CA0GN;kBArH8D,OAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"window.d.ts","sourceRoot":"","sources":["../../../src/layout/window.js"],"names":[],"mappings":"AAeO;;sBA0IN;kBAzJ8D,OAAO"}
1
+ {"version":3,"file":"window.d.ts","sourceRoot":"","sources":["../../../src/layout/window.js"],"names":[],"mappings":"AAeO;;sBA2IN;kBA1J8D,OAAO"}
@@ -1,4 +1,7 @@
1
- export function startRecording(handleStopRecording: any): Promise<void>;
2
- export function stopRecording(): Promise<string | null>;
3
- export function requestAudioPermission(): Promise<boolean | undefined>;
1
+ export function initVoice(onResult: any): Promise<boolean>;
2
+ export function startRecording(): Promise<boolean>;
3
+ export function stopRecording(): Promise<void>;
4
+ export function cancelRecording(): Promise<void>;
5
+ export function requestAudioPermission(): Promise<boolean>;
6
+ export function cleanup(): void;
4
7
  //# sourceMappingURL=audioRecorder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"audioRecorder.d.ts","sourceRoot":"","sources":["../../../src/utils/audioRecorder.js"],"names":[],"mappings":"AAYA,wEA0BC;AAED,wDAWC;AAED,uEAMC"}
1
+ {"version":3,"file":"audioRecorder.d.ts","sourceRoot":"","sources":["../../../src/utils/audioRecorder.js"],"names":[],"mappings":"AAaA,2DA4FC;AAuED,mDAmBC;AAED,+CAoCC;AAED,iDASC;AAED,2DAQC;AAuDD,gCASC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-srschat",
3
- "version": "0.1.19",
3
+ "version": "0.1.20",
4
4
  "private": false,
5
5
  "description": "A modern, sophisticated chat interface for React Native",
6
6
  "main": "lib/commonjs/index",
@@ -61,10 +61,14 @@
61
61
  "dependencies": {
62
62
  "@babel/runtime": "^7.20.0",
63
63
  "@react-native-async-storage/async-storage": "^2.1.1",
64
+ "@react-native-community/audio-toolkit": "^2.0.3",
65
+ "@react-native-community/voice": "^1.1.9",
64
66
  "@react-native-picker/picker": "^2.11.0",
65
67
  "axios": "^1.7.9",
68
+ "react-native-audio-recorder-player": "^3.6.12",
66
69
  "react-native-keyboard-aware-scroll-view": "^0.9.5",
67
70
  "react-native-markdown-display": "^7.0.2",
71
+ "react-native-permissions": "^5.2.6",
68
72
  "react-native-uuid": "^2.0.3",
69
73
  "react-native-vector-icons": "^10.2.0",
70
74
  "react-native-video": "^6.10.2"
@@ -78,7 +78,7 @@ export const EmailForm = ({ panHandlers }) => {
78
78
 
79
79
  return (
80
80
  <View style={styles.container}>
81
- <View {...panHandlers}>
81
+ <View>
82
82
  <Header />
83
83
  </View>
84
84
  <View style={styles.topBar}>
@@ -57,6 +57,7 @@ const styles = StyleSheet.create({
57
57
  alignItems: 'center',
58
58
  backgroundColor: '#186494',
59
59
  padding: 16,
60
+ paddingTop: 60,
60
61
  borderBottomWidth: 1,
61
62
  borderBottomColor: '#ddd',
62
63
  justifyContent: 'space-between'
@@ -12,6 +12,7 @@ import {
12
12
  import { Header } from '../components/header';
13
13
  import { AppContext } from '../contexts/AppContext';
14
14
  import Ionicons from 'react-native-vector-icons/Ionicons';
15
+ import { VoiceButton } from './voice';
15
16
 
16
17
  export const ChatInput = ({ onProductCardClick, onAddToCartClick }) => {
17
18
  const { handleSend, input, setInput, showModal, data } = useContext(AppContext);
@@ -30,9 +31,7 @@ export const ChatInput = ({ onProductCardClick, onAddToCartClick }) => {
30
31
  multiline
31
32
  />
32
33
  {data.openai_key &&
33
- <TouchableOpacity style={styles.inputButton}>
34
- <Ionicons name="mic-outline" size={24} color="#8E8E93" />
35
- </TouchableOpacity>
34
+ <VoiceButton/>
36
35
  }
37
36
  <TouchableOpacity style={styles.sendButton} onPress={() => handleSend(input)} >
38
37
  <Ionicons name="paper-plane-outline" size={24} color='#8E8E93' />