stream-chat-react-native-core 4.4.0-beta.2 → 4.4.0-beta.3

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 (147) hide show
  1. package/README.md +2 -2
  2. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  3. package/lib/commonjs/components/Channel/hooks/useCreatePaginatedMessageListContext.js +4 -12
  4. package/lib/commonjs/components/Channel/hooks/useCreatePaginatedMessageListContext.js.map +1 -1
  5. package/lib/commonjs/components/Channel/hooks/useCreateThreadContext.js +4 -12
  6. package/lib/commonjs/components/Channel/hooks/useCreateThreadContext.js.map +1 -1
  7. package/lib/commonjs/components/Chat/Chat.js +8 -4
  8. package/lib/commonjs/components/Chat/Chat.js.map +1 -1
  9. package/lib/commonjs/components/Chat/hooks/useAppSettings.js +80 -0
  10. package/lib/commonjs/components/Chat/hooks/useAppSettings.js.map +1 -0
  11. package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js +3 -1
  12. package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js.map +1 -1
  13. package/lib/commonjs/components/Message/Message.js +27 -22
  14. package/lib/commonjs/components/Message/Message.js.map +1 -1
  15. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +22 -14
  16. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  17. package/lib/commonjs/components/MessageInput/FileUploadPreview.js +108 -40
  18. package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
  19. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +117 -24
  20. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js.map +1 -1
  21. package/lib/commonjs/components/MessageInput/UploadProgressIndicator.js +52 -20
  22. package/lib/commonjs/components/MessageInput/UploadProgressIndicator.js.map +1 -1
  23. package/lib/commonjs/contexts/chatContext/ChatContext.js +2 -2
  24. package/lib/commonjs/contexts/chatContext/ChatContext.js.map +1 -1
  25. package/lib/commonjs/contexts/messageContext/MessageContext.js +2 -2
  26. package/lib/commonjs/contexts/messageContext/MessageContext.js.map +1 -1
  27. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +145 -119
  28. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  29. package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  30. package/lib/commonjs/i18n/en.json +2 -0
  31. package/lib/commonjs/i18n/fr.json +2 -0
  32. package/lib/commonjs/i18n/hi.json +2 -0
  33. package/lib/commonjs/i18n/it.json +2 -0
  34. package/lib/commonjs/i18n/ja.json +3 -1
  35. package/lib/commonjs/i18n/ko.json +3 -1
  36. package/lib/commonjs/i18n/nl.json +2 -0
  37. package/lib/commonjs/i18n/ru.json +2 -0
  38. package/lib/commonjs/i18n/tr.json +2 -0
  39. package/lib/commonjs/icons/Warning.js +38 -0
  40. package/lib/commonjs/icons/Warning.js.map +1 -0
  41. package/lib/commonjs/icons/index.js +13 -0
  42. package/lib/commonjs/icons/index.js.map +1 -1
  43. package/lib/commonjs/utils/utils.js +33 -2
  44. package/lib/commonjs/utils/utils.js.map +1 -1
  45. package/lib/commonjs/version.json +1 -1
  46. package/lib/module/components/Channel/Channel.js.map +1 -1
  47. package/lib/module/components/Channel/hooks/useCreatePaginatedMessageListContext.js +4 -12
  48. package/lib/module/components/Channel/hooks/useCreatePaginatedMessageListContext.js.map +1 -1
  49. package/lib/module/components/Channel/hooks/useCreateThreadContext.js +4 -12
  50. package/lib/module/components/Channel/hooks/useCreateThreadContext.js.map +1 -1
  51. package/lib/module/components/Chat/Chat.js +8 -4
  52. package/lib/module/components/Chat/Chat.js.map +1 -1
  53. package/lib/module/components/Chat/hooks/useAppSettings.js +80 -0
  54. package/lib/module/components/Chat/hooks/useAppSettings.js.map +1 -0
  55. package/lib/module/components/Chat/hooks/useCreateChatContext.js +3 -1
  56. package/lib/module/components/Chat/hooks/useCreateChatContext.js.map +1 -1
  57. package/lib/module/components/Message/Message.js +27 -22
  58. package/lib/module/components/Message/Message.js.map +1 -1
  59. package/lib/module/components/Message/MessageSimple/utils/renderText.js +22 -14
  60. package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  61. package/lib/module/components/MessageInput/FileUploadPreview.js +108 -40
  62. package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
  63. package/lib/module/components/MessageInput/ImageUploadPreview.js +117 -24
  64. package/lib/module/components/MessageInput/ImageUploadPreview.js.map +1 -1
  65. package/lib/module/components/MessageInput/UploadProgressIndicator.js +52 -20
  66. package/lib/module/components/MessageInput/UploadProgressIndicator.js.map +1 -1
  67. package/lib/module/contexts/chatContext/ChatContext.js +2 -2
  68. package/lib/module/contexts/chatContext/ChatContext.js.map +1 -1
  69. package/lib/module/contexts/messageContext/MessageContext.js +2 -2
  70. package/lib/module/contexts/messageContext/MessageContext.js.map +1 -1
  71. package/lib/module/contexts/messageInputContext/MessageInputContext.js +145 -119
  72. package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  73. package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  74. package/lib/module/i18n/en.json +2 -0
  75. package/lib/module/i18n/fr.json +2 -0
  76. package/lib/module/i18n/hi.json +2 -0
  77. package/lib/module/i18n/it.json +2 -0
  78. package/lib/module/i18n/ja.json +3 -1
  79. package/lib/module/i18n/ko.json +3 -1
  80. package/lib/module/i18n/nl.json +2 -0
  81. package/lib/module/i18n/ru.json +2 -0
  82. package/lib/module/i18n/tr.json +2 -0
  83. package/lib/module/icons/Warning.js +38 -0
  84. package/lib/module/icons/Warning.js.map +1 -0
  85. package/lib/module/icons/index.js +13 -0
  86. package/lib/module/icons/index.js.map +1 -1
  87. package/lib/module/utils/utils.js +33 -2
  88. package/lib/module/utils/utils.js.map +1 -1
  89. package/lib/module/version.json +1 -1
  90. package/lib/typescript/components/Chat/hooks/__tests__/useAppSettings.test.d.ts +1 -0
  91. package/lib/typescript/components/Chat/hooks/useAppSettings.d.ts +3 -0
  92. package/lib/typescript/components/Chat/hooks/useCreateChatContext.d.ts +1 -1
  93. package/lib/typescript/components/Message/Message.d.ts +12 -2
  94. package/lib/typescript/components/MessageInput/UploadProgressIndicator.d.ts +1 -3
  95. package/lib/typescript/contexts/chatContext/ChatContext.d.ts +5 -1
  96. package/lib/typescript/contexts/messageContext/MessageContext.d.ts +4 -4
  97. package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +3 -3
  98. package/lib/typescript/i18n/en.json +2 -0
  99. package/lib/typescript/i18n/fr.json +2 -0
  100. package/lib/typescript/i18n/hi.json +2 -0
  101. package/lib/typescript/i18n/it.json +2 -0
  102. package/lib/typescript/i18n/ja.json +3 -1
  103. package/lib/typescript/i18n/ko.json +3 -1
  104. package/lib/typescript/i18n/nl.json +2 -0
  105. package/lib/typescript/i18n/ru.json +2 -0
  106. package/lib/typescript/i18n/tr.json +2 -0
  107. package/lib/typescript/icons/Warning.d.ts +3 -0
  108. package/lib/typescript/icons/index.d.ts +1 -0
  109. package/lib/typescript/utils/Streami18n.d.ts +6 -0
  110. package/lib/typescript/utils/utils.d.ts +15 -2
  111. package/package.json +1 -1
  112. package/src/components/Channel/Channel.tsx +1 -1
  113. package/src/components/Channel/hooks/useCreatePaginatedMessageListContext.ts +3 -9
  114. package/src/components/Channel/hooks/useCreateThreadContext.ts +3 -9
  115. package/src/components/ChannelList/hooks/listeners/__tests__/useChannelUpdated.test.tsx +1 -0
  116. package/src/components/Chat/Chat.tsx +4 -0
  117. package/src/components/Chat/hooks/__tests__/useAppSettings.test.tsx +34 -0
  118. package/src/components/Chat/hooks/useAppSettings.ts +39 -0
  119. package/src/components/Chat/hooks/useCreateChatContext.ts +2 -0
  120. package/src/components/Message/Message.tsx +56 -48
  121. package/src/components/Message/MessageSimple/utils/renderText.tsx +9 -0
  122. package/src/components/MessageInput/FileUploadPreview.tsx +60 -14
  123. package/src/components/MessageInput/ImageUploadPreview.tsx +95 -42
  124. package/src/components/MessageInput/UploadProgressIndicator.tsx +49 -22
  125. package/src/components/MessageInput/__tests__/FileUploadPreview.test.js +50 -80
  126. package/src/components/MessageInput/__tests__/ImageUploadPreview.test.js +49 -74
  127. package/src/components/MessageInput/__tests__/UploadProgressIndicator.test.js +36 -13
  128. package/src/components/MessageInput/__tests__/__snapshots__/UploadProgressIndicator.test.js.snap +122 -17
  129. package/src/contexts/chatContext/ChatContext.tsx +5 -1
  130. package/src/contexts/messageContext/MessageContext.tsx +7 -4
  131. package/src/contexts/messageInputContext/MessageInputContext.tsx +127 -96
  132. package/src/contexts/messageInputContext/hooks/useMessageDetailsForState.ts +2 -2
  133. package/src/i18n/en.json +2 -0
  134. package/src/i18n/fr.json +2 -0
  135. package/src/i18n/hi.json +2 -0
  136. package/src/i18n/it.json +2 -0
  137. package/src/i18n/ja.json +3 -1
  138. package/src/i18n/ko.json +3 -1
  139. package/src/i18n/nl.json +2 -0
  140. package/src/i18n/ru.json +2 -0
  141. package/src/i18n/tr.json +2 -0
  142. package/src/icons/Warning.tsx +12 -0
  143. package/src/icons/index.ts +1 -0
  144. package/src/utils/utils.ts +53 -1
  145. package/src/version.json +1 -1
  146. package/src/components/MessageInput/__tests__/__snapshots__/FileUploadPreview.test.js.snap +0 -4413
  147. package/src/components/MessageInput/__tests__/__snapshots__/ImageUploadPreview.test.js.snap +0 -2373
@@ -71,6 +71,8 @@ var MessageInputContext = _react["default"].createContext({});
71
71
  exports.MessageInputContext = MessageInputContext;
72
72
 
73
73
  var MessageInputProvider = function MessageInputProvider(_ref) {
74
+ var _getFileUploadConfig, _getFileUploadConfig2, _getImageUploadConfig, _getImageUploadConfig2;
75
+
74
76
  var children = _ref.children,
75
77
  value = _ref.value;
76
78
 
@@ -81,8 +83,38 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
81
83
  setSelectedPicker = _useAttachmentPickerC.setSelectedPicker;
82
84
 
83
85
  var _useChatContext = (0, _ChatContext.useChatContext)(),
86
+ appSettings = _useChatContext.appSettings,
84
87
  client = _useChatContext.client;
85
88
 
89
+ var getFileUploadConfig = function getFileUploadConfig() {
90
+ var _appSettings$app;
91
+
92
+ var fileConfig = appSettings == null ? void 0 : (_appSettings$app = appSettings.app) == null ? void 0 : _appSettings$app.file_upload_config;
93
+
94
+ if (fileConfig !== null || fileConfig !== undefined) {
95
+ return fileConfig;
96
+ } else {
97
+ return {};
98
+ }
99
+ };
100
+
101
+ var blockedFileExtensionTypes = (_getFileUploadConfig = getFileUploadConfig()) == null ? void 0 : _getFileUploadConfig.blocked_file_extensions;
102
+ var blockedFileMimeTypes = (_getFileUploadConfig2 = getFileUploadConfig()) == null ? void 0 : _getFileUploadConfig2.blocked_mime_types;
103
+
104
+ var getImageUploadConfig = function getImageUploadConfig() {
105
+ var _appSettings$app2;
106
+
107
+ var imageConfig = appSettings == null ? void 0 : (_appSettings$app2 = appSettings.app) == null ? void 0 : _appSettings$app2.image_upload_config;
108
+
109
+ if (imageConfig !== null || imageConfig !== undefined) {
110
+ return imageConfig;
111
+ }
112
+
113
+ return {};
114
+ };
115
+
116
+ var blockedImageExtensionTypes = (_getImageUploadConfig = getImageUploadConfig()) == null ? void 0 : _getImageUploadConfig.blocked_file_extensions;
117
+ var blockedImageMimeTypes = (_getImageUploadConfig2 = getImageUploadConfig()) == null ? void 0 : _getImageUploadConfig2.blocked_mime_types;
86
118
  var channelCapabities = (0, _OwnCapabilitiesContext.useOwnCapabilitiesContext)();
87
119
 
88
120
  var _useChannelContext = (0, _ChannelContext.useChannelContext)(),
@@ -649,9 +681,57 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
649
681
  };
650
682
  }();
651
683
 
684
+ var regExcondition = /File (extension \.\w{2,4}|type \S+) is not supported/;
685
+
686
+ var getUploadSetStateAction = function getUploadSetStateAction(id, fileState) {
687
+ var extraData = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
688
+
689
+ var uploads = function uploads(prevUploads) {
690
+ return prevUploads.map(function (prevUpload) {
691
+ if (prevUpload.id === id) {
692
+ return (0, _extends2["default"])({}, prevUpload, extraData, {
693
+ state: fileState
694
+ });
695
+ }
696
+
697
+ return prevUpload;
698
+ });
699
+ };
700
+
701
+ return uploads;
702
+ };
703
+
704
+ var handleFileOrImageUploadError = function handleFileOrImageUploadError(error, isImageError, id) {
705
+ if (isImageError) {
706
+ setNumberOfUploads(function (prevNumberOfUploads) {
707
+ return prevNumberOfUploads - 1;
708
+ });
709
+
710
+ if (error instanceof Error) {
711
+ if (regExcondition.test(error.message)) {
712
+ return setImageUploads(getUploadSetStateAction(id, _utils.FileState.NOT_SUPPORTED));
713
+ }
714
+
715
+ return setImageUploads(getUploadSetStateAction(id, _utils.FileState.UPLOAD_FAILED));
716
+ }
717
+ } else {
718
+ setNumberOfUploads(function (prevNumberOfUploads) {
719
+ return prevNumberOfUploads - 1;
720
+ });
721
+
722
+ if (error instanceof Error) {
723
+ if (regExcondition.test(error.message)) {
724
+ return setFileUploads(getUploadSetStateAction(id, _utils.FileState.NOT_SUPPORTED));
725
+ }
726
+
727
+ return setFileUploads(getUploadSetStateAction(id, _utils.FileState.UPLOAD_FAILED));
728
+ }
729
+ }
730
+ };
731
+
652
732
  var uploadFile = function () {
653
733
  var _ref6 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4(_ref5) {
654
- var newFile, file, id, response;
734
+ var newFile, file, id, response, extraData;
655
735
  return _regenerator["default"].wrap(function _callee4$(_context4) {
656
736
  while (1) {
657
737
  switch (_context4.prev = _context4.next) {
@@ -667,17 +747,7 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
667
747
 
668
748
  case 3:
669
749
  file = newFile.file, id = newFile.id;
670
- setFileUploads(function (prevFileUploads) {
671
- return prevFileUploads.map(function (fileUpload) {
672
- if (fileUpload.id === id) {
673
- return (0, _extends2["default"])({}, fileUpload, {
674
- state: _utils.FileState.UPLOADING
675
- });
676
- }
677
-
678
- return fileUpload;
679
- });
680
- });
750
+ setFileUploads(getUploadSetStateAction(id, _utils.FileState.UPLOADING));
681
751
  response = {};
682
752
  _context4.prev = 6;
683
753
 
@@ -707,57 +777,24 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
707
777
  response = _context4.sent;
708
778
 
709
779
  case 17:
780
+ extraData = {
781
+ url: response.file
782
+ };
783
+ setFileUploads(getUploadSetStateAction(id, _utils.FileState.UPLOADED, extraData));
710
784
  _context4.next = 24;
711
785
  break;
712
786
 
713
- case 19:
714
- _context4.prev = 19;
787
+ case 21:
788
+ _context4.prev = 21;
715
789
  _context4.t0 = _context4["catch"](6);
716
- console.warn(_context4.t0);
717
-
718
- if (!newFile) {
719
- setNumberOfUploads(function (prevNumberOfUploads) {
720
- return prevNumberOfUploads - 1;
721
- });
722
- } else {
723
- setFileUploads(function (prevFileUploads) {
724
- return prevFileUploads.map(function (fileUpload) {
725
- if (fileUpload.id === id) {
726
- return (0, _extends2["default"])({}, fileUpload, {
727
- state: _utils.FileState.UPLOAD_FAILED
728
- });
729
- }
730
-
731
- return fileUpload;
732
- });
733
- });
734
- setNumberOfUploads(function (prevNumberOfUploads) {
735
- return prevNumberOfUploads - 1;
736
- });
737
- }
738
-
739
- return _context4.abrupt("return");
790
+ handleFileOrImageUploadError(_context4.t0, false, id);
740
791
 
741
792
  case 24:
742
- setFileUploads(function (prevFileUploads) {
743
- return prevFileUploads.map(function (fileUpload) {
744
- if (fileUpload.id === id) {
745
- return (0, _extends2["default"])({}, fileUpload, {
746
- state: _utils.FileState.UPLOADED,
747
- url: response.file
748
- });
749
- }
750
-
751
- return fileUpload;
752
- });
753
- });
754
-
755
- case 25:
756
793
  case "end":
757
794
  return _context4.stop();
758
795
  }
759
796
  }
760
- }, _callee4, null, [[6, 19]]);
797
+ }, _callee4, null, [[6, 21]]);
761
798
  }));
762
799
 
763
800
  return function uploadFile(_x) {
@@ -870,18 +907,9 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
870
907
  return prevAsyncUploads;
871
908
  });
872
909
  } else {
873
- setImageUploads(function (prevImageUploads) {
874
- return prevImageUploads.map(function (imageUpload) {
875
- if (imageUpload.id === id) {
876
- return (0, _extends2["default"])({}, imageUpload, {
877
- state: _utils.FileState.UPLOADED,
878
- url: res.file
879
- });
880
- }
881
-
882
- return imageUpload;
883
- });
884
- });
910
+ setImageUploads(getUploadSetStateAction(id, _utils.FileState.UPLOADED, {
911
+ url: res.file
912
+ }));
885
913
  }
886
914
  });
887
915
  _context5.next = 41;
@@ -896,50 +924,22 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
896
924
 
897
925
  case 41:
898
926
  if (Object.keys(response).length) {
899
- setImageUploads(function (prevImageUploads) {
900
- return prevImageUploads.map(function (imageUpload) {
901
- if (imageUpload.id === id) {
902
- return (0, _extends2["default"])({}, imageUpload, {
903
- height: file.height,
904
- state: _utils.FileState.UPLOADED,
905
- url: response.file,
906
- width: file.width
907
- });
908
- }
909
-
910
- return imageUpload;
911
- });
912
- });
927
+ setImageUploads(getUploadSetStateAction(id, _utils.FileState.UPLOADED, {
928
+ height: file.height,
929
+ url: response.file,
930
+ width: file.width
931
+ }));
913
932
  }
914
933
 
915
- _context5.next = 50;
934
+ _context5.next = 47;
916
935
  break;
917
936
 
918
937
  case 44:
919
938
  _context5.prev = 44;
920
939
  _context5.t2 = _context5["catch"](5);
921
- console.warn(_context5.t2);
922
-
923
- if (newImage) {
924
- setImageUploads(function (prevImageUploads) {
925
- return prevImageUploads.map(function (imageUpload) {
926
- if (imageUpload.id === id) {
927
- return (0, _extends2["default"])({}, imageUpload, {
928
- state: _utils.FileState.UPLOAD_FAILED
929
- });
930
- }
931
-
932
- return imageUpload;
933
- });
934
- });
935
- }
940
+ handleFileOrImageUploadError(_context5.t2, true, id);
936
941
 
937
- setNumberOfUploads(function (prevNumberOfUploads) {
938
- return prevNumberOfUploads - 1;
939
- });
940
- return _context5.abrupt("return");
941
-
942
- case 50:
942
+ case 47:
943
943
  case "end":
944
944
  return _context5.stop();
945
945
  }
@@ -954,33 +954,46 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
954
954
 
955
955
  var uploadNewFile = function () {
956
956
  var _ref10 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee6(file) {
957
- var id, mimeType, newFile;
957
+ var id, mimeType, isBlockedFileExtension, isBlockedFileMimeType, fileState, newFile;
958
958
  return _regenerator["default"].wrap(function _callee6$(_context6) {
959
959
  while (1) {
960
960
  switch (_context6.prev = _context6.next) {
961
961
  case 0:
962
962
  id = (0, _utils.generateRandomId)();
963
963
  mimeType = (0, _mimeTypes.lookup)(file.name);
964
+ isBlockedFileExtension = blockedFileExtensionTypes == null ? void 0 : blockedFileExtensionTypes.some(function (fileExtensionType) {
965
+ var _file$name;
966
+
967
+ return (_file$name = file.name) == null ? void 0 : _file$name.includes(fileExtensionType);
968
+ });
969
+ isBlockedFileMimeType = blockedFileMimeTypes == null ? void 0 : blockedFileMimeTypes.some(function (mimeType) {
970
+ var _file$name2;
971
+
972
+ return (_file$name2 = file.name) == null ? void 0 : _file$name2.includes(mimeType);
973
+ });
974
+ fileState = isBlockedFileExtension || isBlockedFileMimeType ? _utils.FileState.NOT_SUPPORTED : _utils.FileState.UPLOADING;
964
975
  newFile = {
965
976
  file: (0, _extends2["default"])({}, file, {
966
977
  type: mimeType || (file == null ? void 0 : file.type)
967
978
  }),
968
979
  id: id,
969
- state: _utils.FileState.UPLOADING
980
+ state: fileState
970
981
  };
971
- _context6.next = 5;
982
+ _context6.next = 8;
972
983
  return Promise.all([setFileUploads(function (prevFileUploads) {
973
984
  return prevFileUploads.concat([newFile]);
974
985
  }), setNumberOfUploads(function (prevNumberOfUploads) {
975
986
  return prevNumberOfUploads + 1;
976
987
  })]);
977
988
 
978
- case 5:
979
- uploadFile({
980
- newFile: newFile
981
- });
989
+ case 8:
990
+ if (!isBlockedFileExtension) {
991
+ uploadFile({
992
+ newFile: newFile
993
+ });
994
+ }
982
995
 
983
- case 6:
996
+ case 9:
984
997
  case "end":
985
998
  return _context6.stop();
986
999
  }
@@ -995,30 +1008,43 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
995
1008
 
996
1009
  var uploadNewImage = function () {
997
1010
  var _ref11 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee7(image) {
998
- var id, newImage;
1011
+ var id, isBlockedImageMimeType, isBlockedImageExtension, imageState, newImage;
999
1012
  return _regenerator["default"].wrap(function _callee7$(_context7) {
1000
1013
  while (1) {
1001
1014
  switch (_context7.prev = _context7.next) {
1002
1015
  case 0:
1003
1016
  id = (0, _utils.generateRandomId)();
1017
+ isBlockedImageMimeType = blockedImageMimeTypes == null ? void 0 : blockedImageMimeTypes.some(function (mimeType) {
1018
+ var _image$uri;
1019
+
1020
+ return (_image$uri = image.uri) == null ? void 0 : _image$uri.includes(mimeType);
1021
+ });
1022
+ isBlockedImageExtension = blockedImageExtensionTypes == null ? void 0 : blockedImageExtensionTypes.some(function (imageExtensionType) {
1023
+ var _image$uri2;
1024
+
1025
+ return (_image$uri2 = image.uri) == null ? void 0 : _image$uri2.includes(imageExtensionType);
1026
+ });
1027
+ imageState = isBlockedImageExtension || isBlockedImageMimeType ? _utils.FileState.NOT_SUPPORTED : _utils.FileState.UPLOADING;
1004
1028
  newImage = {
1005
1029
  file: image,
1006
1030
  id: id,
1007
- state: _utils.FileState.UPLOADING
1031
+ state: imageState
1008
1032
  };
1009
- _context7.next = 4;
1033
+ _context7.next = 7;
1010
1034
  return Promise.all([setImageUploads(function (prevImageUploads) {
1011
1035
  return prevImageUploads.concat([newImage]);
1012
1036
  }), setNumberOfUploads(function (prevNumberOfUploads) {
1013
1037
  return prevNumberOfUploads + 1;
1014
1038
  })]);
1015
1039
 
1016
- case 4:
1017
- uploadImage({
1018
- newImage: newImage
1019
- });
1040
+ case 7:
1041
+ if (!isBlockedImageExtension) {
1042
+ uploadImage({
1043
+ newImage: newImage
1044
+ });
1045
+ }
1020
1046
 
1021
- case 5:
1047
+ case 8:
1022
1048
  case "end":
1023
1049
  return _context7.stop();
1024
1050
  }
@@ -1087,7 +1113,7 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
1087
1113
  __self: _this,
1088
1114
  __source: {
1089
1115
  fileName: _jsxFileName,
1090
- lineNumber: 1086,
1116
+ lineNumber: 1117,
1091
1117
  columnNumber: 5
1092
1118
  }
1093
1119
  }, children);
@@ -1108,7 +1134,7 @@ var withMessageInputContext = function withMessageInputContext(Component) {
1108
1134
  __self: _this,
1109
1135
  __source: {
1110
1136
  fileName: _jsxFileName,
1111
- lineNumber: 1114,
1137
+ lineNumber: 1145,
1112
1138
  columnNumber: 12
1113
1139
  }
1114
1140
  }));