@sendbird/uikit-react-native 3.11.4 → 3.12.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/README.md CHANGED
@@ -149,12 +149,12 @@ npm install react-native-video \
149
149
  react-native-file-access \
150
150
  react-native-image-picker \
151
151
  react-native-document-picker \
152
- react-native-create-thumbnail \
153
152
  react-native-nitro-sound \
154
153
  @react-native-clipboard/clipboard \
155
154
  @react-native-camera-roll/camera-roll \
156
155
  @react-native-firebase/app \
157
156
  @react-native-firebase/messaging \
157
+ @sendbird/react-native-create-thumbnail \
158
158
  @bam.tech/react-native-image-resizer
159
159
 
160
160
  npx pod-install
@@ -169,7 +169,7 @@ import * as DocumentPicker from '@react-native-documents/picker';
169
169
  import * as FileAccess from 'react-native-file-access';
170
170
  import * as ImagePicker from 'react-native-image-picker';
171
171
  import * as Permissions from 'react-native-permissions';
172
- import * as CreateThumbnail from 'react-native-create-thumbnail';
172
+ import * as CreateThumbnail from '@sendbird/react-native-create-thumbnail';
173
173
  import * as ImageResizer from '@bam.tech/react-native-image-resizer';
174
174
  import * as AudioRecorderPlayer from 'react-native-nitro-sound';
175
175
 
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_uikitUtils","_SBUUtils","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","createNativeMediaService","VideoComponent","thumbnailModule","imageResizerModule","source","resizeMode","onLoad","props","createElement","controls","getVideoThumbnail","url","timeMills","path","createThumbnail","format","timeStamp","cacheName","hash","split","compressImage","uri","maxWidth","maxHeight","compressionRate","originSize","SBUUtils","getImageSize","width","height","getDownscaleSize","extension","getFileExtension","size","resizedSize","compressedURI","createResizedImage","Math","min","max","_default","exports"],"sources":["createMediaService.native.tsx"],"sourcesContent":["import type * as RNImageResizer from '@bam.tech/react-native-image-resizer';\nimport React from 'react';\nimport type * as RNCreateThumbnail from 'react-native-create-thumbnail';\nimport type RNVideo from 'react-native-video';\n\nimport { getDownscaleSize, getFileExtension, hash } from '@sendbird/uikit-utils';\n\nimport SBUUtils from '../libs/SBUUtils';\nimport type { MediaServiceInterface } from './types';\n\ntype Modules = {\n VideoComponent: typeof RNVideo;\n thumbnailModule: typeof RNCreateThumbnail;\n imageResizerModule: typeof RNImageResizer;\n};\n\nconst createNativeMediaService = ({\n VideoComponent,\n thumbnailModule,\n imageResizerModule,\n}: Modules): MediaServiceInterface => {\n return {\n VideoComponent({ source, resizeMode, onLoad, ...props }) {\n return (\n <VideoComponent\n {...props}\n source={source as { uri: string }}\n resizeMode={resizeMode}\n onLoad={onLoad}\n controls\n />\n );\n },\n async getVideoThumbnail({ url, timeMills }) {\n try {\n const { path } = await thumbnailModule.createThumbnail({\n url,\n format: 'jpeg',\n timeStamp: timeMills,\n cacheName: hash(url.split('?')[0]),\n });\n return { path };\n } catch {\n return null;\n }\n },\n async compressImage({ uri, maxWidth, maxHeight, compressionRate = 1 }) {\n const originSize = await SBUUtils.getImageSize(uri);\n const { width, height } = getDownscaleSize(originSize, { width: maxWidth, height: maxHeight });\n const extension = (() => {\n return { 'png': 'PNG', 'jpeg': 'JPEG', 'jpg': 'JPEG' }[getFileExtension(uri)] ?? 'JPEG';\n })() as 'PNG' | 'JPEG';\n\n const { size: resizedSize, uri: compressedURI } = await imageResizerModule.default.createResizedImage(\n uri,\n width,\n height,\n extension,\n Math.min(Math.max(0, compressionRate), 1) * 100,\n );\n\n return { uri: compressedURI, size: resizedSize };\n },\n };\n};\n\nexport default createNativeMediaService;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_uikitUtils","_SBUUtils","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","createNativeMediaService","VideoComponent","thumbnailModule","imageResizerModule","source","resizeMode","onLoad","props","createElement","controls","getVideoThumbnail","url","timeMills","path","createThumbnail","format","timeStamp","cacheName","hash","split","compressImage","uri","maxWidth","maxHeight","compressionRate","originSize","SBUUtils","getImageSize","width","height","getDownscaleSize","extension","getFileExtension","size","resizedSize","compressedURI","createResizedImage","Math","min","max","_default","exports"],"sources":["createMediaService.native.tsx"],"sourcesContent":["import type * as RNImageResizer from '@bam.tech/react-native-image-resizer';\nimport React from 'react';\nimport type * as RNCreateThumbnail from 'react-native-create-thumbnail';\nimport type RNVideo from 'react-native-video';\n\nimport type * as SBCreateThumbnail from '@sendbird/react-native-create-thumbnail';\nimport { getDownscaleSize, getFileExtension, hash } from '@sendbird/uikit-utils';\n\nimport SBUUtils from '../libs/SBUUtils';\nimport type { MediaServiceInterface } from './types';\n\nexport type ThumbnailModule = typeof SBCreateThumbnail | typeof RNCreateThumbnail;\n\ntype Modules = {\n VideoComponent: typeof RNVideo;\n thumbnailModule: ThumbnailModule;\n imageResizerModule: typeof RNImageResizer;\n};\n\nconst createNativeMediaService = ({\n VideoComponent,\n thumbnailModule,\n imageResizerModule,\n}: Modules): MediaServiceInterface => {\n return {\n VideoComponent({ source, resizeMode, onLoad, ...props }) {\n return (\n <VideoComponent\n {...props}\n source={source as { uri: string }}\n resizeMode={resizeMode}\n onLoad={onLoad}\n controls\n />\n );\n },\n async getVideoThumbnail({ url, timeMills }) {\n try {\n const { path } = await thumbnailModule.createThumbnail({\n url,\n format: 'jpeg',\n timeStamp: timeMills,\n cacheName: hash(url.split('?')[0]),\n });\n return { path };\n } catch {\n return null;\n }\n },\n async compressImage({ uri, maxWidth, maxHeight, compressionRate = 1 }) {\n const originSize = await SBUUtils.getImageSize(uri);\n const { width, height } = getDownscaleSize(originSize, { width: maxWidth, height: maxHeight });\n const extension = (() => {\n return { 'png': 'PNG', 'jpeg': 'JPEG', 'jpg': 'JPEG' }[getFileExtension(uri)] ?? 'JPEG';\n })() as 'PNG' | 'JPEG';\n\n const { size: resizedSize, uri: compressedURI } = await imageResizerModule.default.createResizedImage(\n uri,\n width,\n height,\n extension,\n Math.min(Math.max(0, compressionRate), 1) * 100,\n );\n\n return { uri: compressedURI, size: resizedSize };\n },\n };\n};\n\nexport default createNativeMediaService;\n"],"mappings":"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","ignoreList":[]}
@@ -4,6 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- const VERSION = '3.11.4';
7
+ const VERSION = '3.12.0';
8
8
  var _default = exports.default = VERSION;
9
9
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["VERSION","_default","exports","default"],"sources":["version.ts"],"sourcesContent":["const VERSION = '3.11.4';\nexport default VERSION;\n"],"mappings":";;;;;;AAAA,MAAMA,OAAO,GAAG,QAAQ;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GACVH,OAAO","ignoreList":[]}
1
+ {"version":3,"names":["VERSION","_default","exports","default"],"sources":["version.ts"],"sourcesContent":["const VERSION = '3.12.0';\nexport default VERSION;\n"],"mappings":";;;;;;AAAA,MAAMA,OAAO,GAAG,QAAQ;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GACVH,OAAO","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["React","getDownscaleSize","getFileExtension","hash","SBUUtils","createNativeMediaService","VideoComponent","thumbnailModule","imageResizerModule","source","resizeMode","onLoad","props","createElement","_extends","controls","getVideoThumbnail","url","timeMills","path","createThumbnail","format","timeStamp","cacheName","split","compressImage","uri","maxWidth","maxHeight","compressionRate","originSize","getImageSize","width","height","extension","size","resizedSize","compressedURI","default","createResizedImage","Math","min","max"],"sources":["createMediaService.native.tsx"],"sourcesContent":["import type * as RNImageResizer from '@bam.tech/react-native-image-resizer';\nimport React from 'react';\nimport type * as RNCreateThumbnail from 'react-native-create-thumbnail';\nimport type RNVideo from 'react-native-video';\n\nimport { getDownscaleSize, getFileExtension, hash } from '@sendbird/uikit-utils';\n\nimport SBUUtils from '../libs/SBUUtils';\nimport type { MediaServiceInterface } from './types';\n\ntype Modules = {\n VideoComponent: typeof RNVideo;\n thumbnailModule: typeof RNCreateThumbnail;\n imageResizerModule: typeof RNImageResizer;\n};\n\nconst createNativeMediaService = ({\n VideoComponent,\n thumbnailModule,\n imageResizerModule,\n}: Modules): MediaServiceInterface => {\n return {\n VideoComponent({ source, resizeMode, onLoad, ...props }) {\n return (\n <VideoComponent\n {...props}\n source={source as { uri: string }}\n resizeMode={resizeMode}\n onLoad={onLoad}\n controls\n />\n );\n },\n async getVideoThumbnail({ url, timeMills }) {\n try {\n const { path } = await thumbnailModule.createThumbnail({\n url,\n format: 'jpeg',\n timeStamp: timeMills,\n cacheName: hash(url.split('?')[0]),\n });\n return { path };\n } catch {\n return null;\n }\n },\n async compressImage({ uri, maxWidth, maxHeight, compressionRate = 1 }) {\n const originSize = await SBUUtils.getImageSize(uri);\n const { width, height } = getDownscaleSize(originSize, { width: maxWidth, height: maxHeight });\n const extension = (() => {\n return { 'png': 'PNG', 'jpeg': 'JPEG', 'jpg': 'JPEG' }[getFileExtension(uri)] ?? 'JPEG';\n })() as 'PNG' | 'JPEG';\n\n const { size: resizedSize, uri: compressedURI } = await imageResizerModule.default.createResizedImage(\n uri,\n width,\n height,\n extension,\n Math.min(Math.max(0, compressionRate), 1) * 100,\n );\n\n return { uri: compressedURI, size: resizedSize };\n },\n };\n};\n\nexport default createNativeMediaService;\n"],"mappings":";AACA,OAAOA,KAAK,MAAM,OAAO;AAIzB,SAASC,gBAAgB,EAAEC,gBAAgB,EAAEC,IAAI,QAAQ,uBAAuB;AAEhF,OAAOC,QAAQ,MAAM,kBAAkB;AASvC,MAAMC,wBAAwB,GAAGA,CAAC;EAChCC,cAAc;EACdC,eAAe;EACfC;AACO,CAAC,KAA4B;EACpC,OAAO;IACLF,cAAcA,CAAC;MAAEG,MAAM;MAAEC,UAAU;MAAEC,MAAM;MAAE,GAAGC;IAAM,CAAC,EAAE;MACvD,oBACEZ,KAAA,CAAAa,aAAA,CAACP,cAAc,EAAAQ,QAAA,KACTF,KAAK;QACTH,MAAM,EAAEA,MAA0B;QAClCC,UAAU,EAAEA,UAAW;QACvBC,MAAM,EAAEA,MAAO;QACfI,QAAQ;MAAA,EACT,CAAC;IAEN,CAAC;IACD,MAAMC,iBAAiBA,CAAC;MAAEC,GAAG;MAAEC;IAAU,CAAC,EAAE;MAC1C,IAAI;QACF,MAAM;UAAEC;QAAK,CAAC,GAAG,MAAMZ,eAAe,CAACa,eAAe,CAAC;UACrDH,GAAG;UACHI,MAAM,EAAE,MAAM;UACdC,SAAS,EAAEJ,SAAS;UACpBK,SAAS,EAAEpB,IAAI,CAACc,GAAG,CAACO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC;QACF,OAAO;UAAEL;QAAK,CAAC;MACjB,CAAC,CAAC,MAAM;QACN,OAAO,IAAI;MACb;IACF,CAAC;IACD,MAAMM,aAAaA,CAAC;MAAEC,GAAG;MAAEC,QAAQ;MAAEC,SAAS;MAAEC,eAAe,GAAG;IAAE,CAAC,EAAE;MACrE,MAAMC,UAAU,GAAG,MAAM1B,QAAQ,CAAC2B,YAAY,CAACL,GAAG,CAAC;MACnD,MAAM;QAAEM,KAAK;QAAEC;MAAO,CAAC,GAAGhC,gBAAgB,CAAC6B,UAAU,EAAE;QAAEE,KAAK,EAAEL,QAAQ;QAAEM,MAAM,EAAEL;MAAU,CAAC,CAAC;MAC9F,MAAMM,SAAS,GAAG,CAAC,MAAM;QACvB,OAAO;UAAE,KAAK,EAAE,KAAK;UAAE,MAAM,EAAE,MAAM;UAAE,KAAK,EAAE;QAAO,CAAC,CAAChC,gBAAgB,CAACwB,GAAG,CAAC,CAAC,IAAI,MAAM;MACzF,CAAC,EAAE,CAAmB;MAEtB,MAAM;QAAES,IAAI,EAAEC,WAAW;QAAEV,GAAG,EAAEW;MAAc,CAAC,GAAG,MAAM7B,kBAAkB,CAAC8B,OAAO,CAACC,kBAAkB,CACnGb,GAAG,EACHM,KAAK,EACLC,MAAM,EACNC,SAAS,EACTM,IAAI,CAACC,GAAG,CAACD,IAAI,CAACE,GAAG,CAAC,CAAC,EAAEb,eAAe,CAAC,EAAE,CAAC,CAAC,GAAG,GAC9C,CAAC;MAED,OAAO;QAAEH,GAAG,EAAEW,aAAa;QAAEF,IAAI,EAAEC;MAAY,CAAC;IAClD;EACF,CAAC;AACH,CAAC;AAED,eAAe/B,wBAAwB","ignoreList":[]}
1
+ {"version":3,"names":["React","getDownscaleSize","getFileExtension","hash","SBUUtils","createNativeMediaService","VideoComponent","thumbnailModule","imageResizerModule","source","resizeMode","onLoad","props","createElement","_extends","controls","getVideoThumbnail","url","timeMills","path","createThumbnail","format","timeStamp","cacheName","split","compressImage","uri","maxWidth","maxHeight","compressionRate","originSize","getImageSize","width","height","extension","size","resizedSize","compressedURI","default","createResizedImage","Math","min","max"],"sources":["createMediaService.native.tsx"],"sourcesContent":["import type * as RNImageResizer from '@bam.tech/react-native-image-resizer';\nimport React from 'react';\nimport type * as RNCreateThumbnail from 'react-native-create-thumbnail';\nimport type RNVideo from 'react-native-video';\n\nimport type * as SBCreateThumbnail from '@sendbird/react-native-create-thumbnail';\nimport { getDownscaleSize, getFileExtension, hash } from '@sendbird/uikit-utils';\n\nimport SBUUtils from '../libs/SBUUtils';\nimport type { MediaServiceInterface } from './types';\n\nexport type ThumbnailModule = typeof SBCreateThumbnail | typeof RNCreateThumbnail;\n\ntype Modules = {\n VideoComponent: typeof RNVideo;\n thumbnailModule: ThumbnailModule;\n imageResizerModule: typeof RNImageResizer;\n};\n\nconst createNativeMediaService = ({\n VideoComponent,\n thumbnailModule,\n imageResizerModule,\n}: Modules): MediaServiceInterface => {\n return {\n VideoComponent({ source, resizeMode, onLoad, ...props }) {\n return (\n <VideoComponent\n {...props}\n source={source as { uri: string }}\n resizeMode={resizeMode}\n onLoad={onLoad}\n controls\n />\n );\n },\n async getVideoThumbnail({ url, timeMills }) {\n try {\n const { path } = await thumbnailModule.createThumbnail({\n url,\n format: 'jpeg',\n timeStamp: timeMills,\n cacheName: hash(url.split('?')[0]),\n });\n return { path };\n } catch {\n return null;\n }\n },\n async compressImage({ uri, maxWidth, maxHeight, compressionRate = 1 }) {\n const originSize = await SBUUtils.getImageSize(uri);\n const { width, height } = getDownscaleSize(originSize, { width: maxWidth, height: maxHeight });\n const extension = (() => {\n return { 'png': 'PNG', 'jpeg': 'JPEG', 'jpg': 'JPEG' }[getFileExtension(uri)] ?? 'JPEG';\n })() as 'PNG' | 'JPEG';\n\n const { size: resizedSize, uri: compressedURI } = await imageResizerModule.default.createResizedImage(\n uri,\n width,\n height,\n extension,\n Math.min(Math.max(0, compressionRate), 1) * 100,\n );\n\n return { uri: compressedURI, size: resizedSize };\n },\n };\n};\n\nexport default createNativeMediaService;\n"],"mappings":";AACA,OAAOA,KAAK,MAAM,OAAO;AAKzB,SAASC,gBAAgB,EAAEC,gBAAgB,EAAEC,IAAI,QAAQ,uBAAuB;AAEhF,OAAOC,QAAQ,MAAM,kBAAkB;AAWvC,MAAMC,wBAAwB,GAAGA,CAAC;EAChCC,cAAc;EACdC,eAAe;EACfC;AACO,CAAC,KAA4B;EACpC,OAAO;IACLF,cAAcA,CAAC;MAAEG,MAAM;MAAEC,UAAU;MAAEC,MAAM;MAAE,GAAGC;IAAM,CAAC,EAAE;MACvD,oBACEZ,KAAA,CAAAa,aAAA,CAACP,cAAc,EAAAQ,QAAA,KACTF,KAAK;QACTH,MAAM,EAAEA,MAA0B;QAClCC,UAAU,EAAEA,UAAW;QACvBC,MAAM,EAAEA,MAAO;QACfI,QAAQ;MAAA,EACT,CAAC;IAEN,CAAC;IACD,MAAMC,iBAAiBA,CAAC;MAAEC,GAAG;MAAEC;IAAU,CAAC,EAAE;MAC1C,IAAI;QACF,MAAM;UAAEC;QAAK,CAAC,GAAG,MAAMZ,eAAe,CAACa,eAAe,CAAC;UACrDH,GAAG;UACHI,MAAM,EAAE,MAAM;UACdC,SAAS,EAAEJ,SAAS;UACpBK,SAAS,EAAEpB,IAAI,CAACc,GAAG,CAACO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC;QACF,OAAO;UAAEL;QAAK,CAAC;MACjB,CAAC,CAAC,MAAM;QACN,OAAO,IAAI;MACb;IACF,CAAC;IACD,MAAMM,aAAaA,CAAC;MAAEC,GAAG;MAAEC,QAAQ;MAAEC,SAAS;MAAEC,eAAe,GAAG;IAAE,CAAC,EAAE;MACrE,MAAMC,UAAU,GAAG,MAAM1B,QAAQ,CAAC2B,YAAY,CAACL,GAAG,CAAC;MACnD,MAAM;QAAEM,KAAK;QAAEC;MAAO,CAAC,GAAGhC,gBAAgB,CAAC6B,UAAU,EAAE;QAAEE,KAAK,EAAEL,QAAQ;QAAEM,MAAM,EAAEL;MAAU,CAAC,CAAC;MAC9F,MAAMM,SAAS,GAAG,CAAC,MAAM;QACvB,OAAO;UAAE,KAAK,EAAE,KAAK;UAAE,MAAM,EAAE,MAAM;UAAE,KAAK,EAAE;QAAO,CAAC,CAAChC,gBAAgB,CAACwB,GAAG,CAAC,CAAC,IAAI,MAAM;MACzF,CAAC,EAAE,CAAmB;MAEtB,MAAM;QAAES,IAAI,EAAEC,WAAW;QAAEV,GAAG,EAAEW;MAAc,CAAC,GAAG,MAAM7B,kBAAkB,CAAC8B,OAAO,CAACC,kBAAkB,CACnGb,GAAG,EACHM,KAAK,EACLC,MAAM,EACNC,SAAS,EACTM,IAAI,CAACC,GAAG,CAACD,IAAI,CAACE,GAAG,CAAC,CAAC,EAAEb,eAAe,CAAC,EAAE,CAAC,CAAC,GAAG,GAC9C,CAAC;MAED,OAAO;QAAEH,GAAG,EAAEW,aAAa;QAAEF,IAAI,EAAEC;MAAY,CAAC;IAClD;EACF,CAAC;AACH,CAAC;AAED,eAAe/B,wBAAwB","ignoreList":[]}
@@ -1,3 +1,3 @@
1
- const VERSION = '3.11.4';
1
+ const VERSION = '3.12.0';
2
2
  export default VERSION;
3
3
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["VERSION"],"sources":["version.ts"],"sourcesContent":["const VERSION = '3.11.4';\nexport default VERSION;\n"],"mappings":"AAAA,MAAMA,OAAO,GAAG,QAAQ;AACxB,eAAeA,OAAO","ignoreList":[]}
1
+ {"version":3,"names":["VERSION"],"sources":["version.ts"],"sourcesContent":["const VERSION = '3.12.0';\nexport default VERSION;\n"],"mappings":"AAAA,MAAMA,OAAO,GAAG,QAAQ;AACxB,eAAeA,OAAO","ignoreList":[]}
@@ -14,7 +14,7 @@ import type { StringSet } from '../localization/StringSet.type';
14
14
  import type { ClipboardServiceInterface, FileServiceInterface, MediaServiceInterface, NotificationServiceInterface, PlayerServiceInterface, RecorderServiceInterface } from '../platform/types';
15
15
  import { ErrorBoundaryProps, LocalCacheStorage } from '../types';
16
16
  export declare const SendbirdUIKit: Readonly<{
17
- VERSION: "3.11.4";
17
+ VERSION: "3.12.0";
18
18
  PLATFORM: string;
19
19
  DEFAULT: {
20
20
  AUTO_PUSH_TOKEN_REGISTRATION: boolean;
@@ -1,10 +1,12 @@
1
1
  import type * as RNImageResizer from '@bam.tech/react-native-image-resizer';
2
2
  import type * as RNCreateThumbnail from 'react-native-create-thumbnail';
3
3
  import type RNVideo from 'react-native-video';
4
+ import type * as SBCreateThumbnail from '@sendbird/react-native-create-thumbnail';
4
5
  import type { MediaServiceInterface } from './types';
6
+ export type ThumbnailModule = typeof SBCreateThumbnail | typeof RNCreateThumbnail;
5
7
  type Modules = {
6
8
  VideoComponent: typeof RNVideo;
7
- thumbnailModule: typeof RNCreateThumbnail;
9
+ thumbnailModule: ThumbnailModule;
8
10
  imageResizerModule: typeof RNImageResizer;
9
11
  };
10
12
  declare const createNativeMediaService: ({ VideoComponent, thumbnailModule, imageResizerModule, }: Modules) => MediaServiceInterface;
@@ -1,2 +1,2 @@
1
- declare const VERSION = "3.11.4";
1
+ declare const VERSION = "3.12.0";
2
2
  export default VERSION;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sendbird/uikit-react-native",
3
- "version": "3.11.4",
3
+ "version": "3.12.0",
4
4
  "description": "Sendbird UIKit for React Native: A feature-rich and customizable chat UI kit with messaging, channel management, and user authentication.",
5
5
  "keywords": [
6
6
  "sendbird",
@@ -69,10 +69,10 @@
69
69
  },
70
70
  "dependencies": {
71
71
  "@openspacelabs/react-native-zoomable-view": "^2.3.0",
72
- "@sendbird/uikit-chat-hooks": "3.11.4",
73
- "@sendbird/uikit-react-native-foundation": "3.11.4",
72
+ "@sendbird/uikit-chat-hooks": "3.12.0",
73
+ "@sendbird/uikit-react-native-foundation": "3.12.0",
74
74
  "@sendbird/uikit-tools": "0.0.15",
75
- "@sendbird/uikit-utils": "3.11.4"
75
+ "@sendbird/uikit-utils": "3.12.0"
76
76
  },
77
77
  "devDependencies": {
78
78
  "@bam.tech/react-native-image-resizer": "^3.0.11",
@@ -83,6 +83,7 @@
83
83
  "@react-native-documents/picker": "^10.1.0",
84
84
  "@react-native-firebase/app": "^19.3.0",
85
85
  "@react-native-firebase/messaging": "^19.3.0",
86
+ "@sendbird/react-native-create-thumbnail": "^1.0.2",
86
87
  "@types/react": "*",
87
88
  "@types/react-native": "*",
88
89
  "date-fns": ">=2.28.0",
@@ -126,6 +127,7 @@
126
127
  "@react-native-documents/picker": ">=10.0.0",
127
128
  "@react-native-firebase/messaging": ">=14.4.0",
128
129
  "@sendbird/chat": "^4.20.2",
130
+ "@sendbird/react-native-create-thumbnail": ">=1.0.2",
129
131
  "@sendbird/react-native-scrollview-enhancer": "*",
130
132
  "@sendbird/uikit-tools": ">=0.0.10",
131
133
  "date-fns": ">=2.28.0",
@@ -173,6 +175,9 @@
173
175
  "@react-native-firebase/messaging": {
174
176
  "optional": true
175
177
  },
178
+ "@sendbird/react-native-create-thumbnail": {
179
+ "optional": true
180
+ },
176
181
  "@sendbird/react-native-scrollview-enhancer": {
177
182
  "optional": true
178
183
  },
@@ -251,5 +256,5 @@
251
256
  ]
252
257
  ]
253
258
  },
254
- "gitHead": "2c3e4a178540abaedf0ba33e8680f572808d243f"
259
+ "gitHead": "e2f8e3530d9c37e58ee57f88d46b472509714d26"
255
260
  }
@@ -3,14 +3,17 @@ import React from 'react';
3
3
  import type * as RNCreateThumbnail from 'react-native-create-thumbnail';
4
4
  import type RNVideo from 'react-native-video';
5
5
 
6
+ import type * as SBCreateThumbnail from '@sendbird/react-native-create-thumbnail';
6
7
  import { getDownscaleSize, getFileExtension, hash } from '@sendbird/uikit-utils';
7
8
 
8
9
  import SBUUtils from '../libs/SBUUtils';
9
10
  import type { MediaServiceInterface } from './types';
10
11
 
12
+ export type ThumbnailModule = typeof SBCreateThumbnail | typeof RNCreateThumbnail;
13
+
11
14
  type Modules = {
12
15
  VideoComponent: typeof RNVideo;
13
- thumbnailModule: typeof RNCreateThumbnail;
16
+ thumbnailModule: ThumbnailModule;
14
17
  imageResizerModule: typeof RNImageResizer;
15
18
  };
16
19
 
package/src/version.ts CHANGED
@@ -1,2 +1,2 @@
1
- const VERSION = '3.11.4';
1
+ const VERSION = '3.12.0';
2
2
  export default VERSION;