@sendbird/uikit-react-native 1.0.2 → 1.1.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 +7 -7
- package/lib/commonjs/SendbirdUIKitContainer.js +5 -2
- package/lib/commonjs/SendbirdUIKitContainer.js.map +1 -1
- package/lib/commonjs/components/FileViewer.js +326 -0
- package/lib/commonjs/components/FileViewer.js.map +1 -0
- package/lib/commonjs/components/GroupChannelPreviewContainer.js +180 -0
- package/lib/commonjs/components/GroupChannelPreviewContainer.js.map +1 -0
- package/lib/commonjs/components/MessageRenderer/FileMessage/VideoFileMessage.js +116 -0
- package/lib/commonjs/components/MessageRenderer/FileMessage/VideoFileMessage.js.map +1 -0
- package/lib/commonjs/components/MessageRenderer/FileMessage/index.js +8 -0
- package/lib/commonjs/components/MessageRenderer/FileMessage/index.js.map +1 -1
- package/lib/commonjs/components/MessageRenderer/MessageOutgoingStatus.js +15 -24
- package/lib/commonjs/components/MessageRenderer/MessageOutgoingStatus.js.map +1 -1
- package/lib/commonjs/components/SBUPressable.js +45 -0
- package/lib/commonjs/components/SBUPressable.js.map +1 -0
- package/lib/commonjs/components/UserActionBar.js +1 -3
- package/lib/commonjs/components/UserActionBar.js.map +1 -1
- package/lib/commonjs/components/UserSelectableBar.js +1 -3
- package/lib/commonjs/components/UserSelectableBar.js.map +1 -1
- package/lib/commonjs/constants.js +7 -1
- package/lib/commonjs/constants.js.map +1 -1
- package/lib/commonjs/contexts/PlatformService.js +4 -2
- package/lib/commonjs/contexts/PlatformService.js.map +1 -1
- package/lib/commonjs/contexts/SendbirdChat.js +6 -2
- package/lib/commonjs/contexts/SendbirdChat.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +30 -7
- package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/module/moduleContext.js +2 -3
- package/lib/commonjs/domain/groupChannel/module/moduleContext.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/types.js.map +1 -1
- package/lib/commonjs/domain/groupChannelList/types.js.map +1 -1
- package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js +1 -1
- package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelCreateFragment.js +3 -7
- package/lib/commonjs/fragments/createGroupChannelCreateFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelFragment.js +13 -11
- package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelListFragment.js +7 -37
- package/lib/commonjs/fragments/createGroupChannelListFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelMembersFragment.js +1 -1
- package/lib/commonjs/fragments/createGroupChannelMembersFragment.js.map +1 -1
- package/lib/commonjs/hooks/useContext.js.map +1 -1
- package/lib/commonjs/index.js +29 -2
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/localization/StringSet.type.js +8 -0
- package/lib/commonjs/localization/StringSet.type.js.map +1 -1
- package/lib/commonjs/platform/createFileService.expo.js +21 -2
- package/lib/commonjs/platform/createFileService.expo.js.map +1 -1
- package/lib/commonjs/platform/createFileService.native.js +20 -3
- package/lib/commonjs/platform/createFileService.native.js.map +1 -1
- package/lib/commonjs/platform/createMediaService.expo.js +64 -0
- package/lib/commonjs/platform/createMediaService.expo.js.map +1 -0
- package/lib/commonjs/platform/createMediaService.native.js +67 -0
- package/lib/commonjs/platform/createMediaService.native.js.map +1 -0
- package/lib/commonjs/platform/createNotificationService.expo.js.map +1 -1
- package/lib/commonjs/platform/types.js.map +1 -1
- package/lib/commonjs/version.js +1 -1
- package/lib/commonjs/version.js.map +1 -1
- package/lib/module/SendbirdUIKitContainer.js +5 -2
- package/lib/module/SendbirdUIKitContainer.js.map +1 -1
- package/lib/module/components/FileViewer.js +304 -0
- package/lib/module/components/FileViewer.js.map +1 -0
- package/lib/module/components/GroupChannelPreviewContainer.js +158 -0
- package/lib/module/components/GroupChannelPreviewContainer.js.map +1 -0
- package/lib/module/components/MessageRenderer/FileMessage/VideoFileMessage.js +100 -0
- package/lib/module/components/MessageRenderer/FileMessage/VideoFileMessage.js.map +1 -0
- package/lib/module/components/MessageRenderer/FileMessage/index.js +6 -0
- package/lib/module/components/MessageRenderer/FileMessage/index.js.map +1 -1
- package/lib/module/components/MessageRenderer/MessageOutgoingStatus.js +17 -26
- package/lib/module/components/MessageRenderer/MessageOutgoingStatus.js.map +1 -1
- package/lib/module/components/SBUPressable.js +33 -0
- package/lib/module/components/SBUPressable.js.map +1 -0
- package/lib/module/components/UserActionBar.js +1 -1
- package/lib/module/components/UserActionBar.js.map +1 -1
- package/lib/module/components/UserSelectableBar.js +1 -1
- package/lib/module/components/UserSelectableBar.js.map +1 -1
- package/lib/module/constants.js +5 -0
- package/lib/module/constants.js.map +1 -1
- package/lib/module/contexts/PlatformService.js +4 -2
- package/lib/module/contexts/PlatformService.js.map +1 -1
- package/lib/module/contexts/SendbirdChat.js +6 -2
- package/lib/module/contexts/SendbirdChat.js.map +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js +28 -7
- package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
- package/lib/module/domain/groupChannel/module/moduleContext.js +2 -3
- package/lib/module/domain/groupChannel/module/moduleContext.js.map +1 -1
- package/lib/module/domain/groupChannel/types.js.map +1 -1
- package/lib/module/domain/groupChannelList/types.js.map +1 -1
- package/lib/module/domain/groupChannelSettings/module/moduleContext.js +1 -1
- package/lib/module/domain/groupChannelSettings/module/moduleContext.js.map +1 -1
- package/lib/module/fragments/createGroupChannelCreateFragment.js +4 -4
- package/lib/module/fragments/createGroupChannelCreateFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelFragment.js +15 -13
- package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelListFragment.js +11 -38
- package/lib/module/fragments/createGroupChannelListFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelMembersFragment.js +1 -1
- package/lib/module/fragments/createGroupChannelMembersFragment.js.map +1 -1
- package/lib/module/hooks/useContext.js.map +1 -1
- package/lib/module/index.js +4 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/localization/StringSet.type.js +8 -0
- package/lib/module/localization/StringSet.type.js.map +1 -1
- package/lib/module/platform/createFileService.expo.js +21 -2
- package/lib/module/platform/createFileService.expo.js.map +1 -1
- package/lib/module/platform/createFileService.native.js +20 -3
- package/lib/module/platform/createFileService.native.js.map +1 -1
- package/lib/module/platform/createMediaService.expo.js +54 -0
- package/lib/module/platform/createMediaService.expo.js.map +1 -0
- package/lib/module/platform/createMediaService.native.js +57 -0
- package/lib/module/platform/createMediaService.native.js.map +1 -0
- package/lib/module/platform/createNotificationService.expo.js.map +1 -1
- package/lib/module/platform/types.js.map +1 -1
- package/lib/module/version.js +1 -1
- package/lib/module/version.js.map +1 -1
- package/lib/typescript/src/SendbirdUIKitContainer.d.ts +7 -3
- package/lib/typescript/src/components/FileViewer.d.ts +12 -0
- package/lib/typescript/src/components/GroupChannelPreviewContainer.d.ts +8 -0
- package/lib/typescript/src/components/MessageRenderer/FileMessage/VideoFileMessage.d.ts +3 -0
- package/lib/typescript/src/components/SBUPressable.d.ts +18 -0
- package/lib/typescript/src/components/UserActionBar.d.ts +2 -3
- package/lib/typescript/src/components/UserSelectableBar.d.ts +2 -3
- package/lib/typescript/src/constants.d.ts +5 -0
- package/lib/typescript/src/contexts/PlatformService.d.ts +3 -2
- package/lib/typescript/src/contexts/SendbirdChat.d.ts +5 -1
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelMessageList.d.ts +3 -2
- package/lib/typescript/src/domain/groupChannel/types.d.ts +6 -2
- package/lib/typescript/src/hooks/useContext.d.ts +7 -5
- package/lib/typescript/src/index.d.ts +3 -0
- package/lib/typescript/src/localization/StringSet.type.d.ts +4 -0
- package/lib/typescript/src/platform/createMediaService.expo.d.ts +9 -0
- package/lib/typescript/src/platform/createMediaService.native.d.ts +9 -0
- package/lib/typescript/src/platform/createNotificationService.expo.d.ts +1 -1
- package/lib/typescript/src/platform/types.d.ts +20 -1
- package/lib/typescript/src/version.d.ts +1 -1
- package/package.json +14 -5
- package/src/SendbirdUIKitContainer.tsx +14 -2
- package/src/components/FileViewer.tsx +284 -0
- package/src/components/GroupChannelPreviewContainer.tsx +134 -0
- package/src/components/MessageRenderer/FileMessage/VideoFileMessage.tsx +91 -0
- package/src/components/MessageRenderer/FileMessage/index.tsx +6 -0
- package/src/components/MessageRenderer/MessageOutgoingStatus.tsx +25 -32
- package/src/components/SBUPressable.tsx +40 -0
- package/src/components/UserActionBar.tsx +1 -1
- package/src/components/UserSelectableBar.tsx +1 -1
- package/src/constants.ts +5 -0
- package/src/contexts/PlatformService.tsx +15 -3
- package/src/contexts/SendbirdChat.tsx +13 -5
- package/src/domain/groupChannel/component/GroupChannelInput/SendInput.tsx +1 -1
- package/src/domain/groupChannel/component/GroupChannelMessageList.tsx +23 -6
- package/src/domain/groupChannel/module/moduleContext.tsx +6 -13
- package/src/domain/groupChannel/types.ts +8 -2
- package/src/domain/groupChannelList/types.ts +1 -0
- package/src/domain/groupChannelSettings/module/moduleContext.tsx +5 -10
- package/src/fragments/createGroupChannelCreateFragment.tsx +38 -41
- package/src/fragments/createGroupChannelFragment.tsx +23 -33
- package/src/fragments/createGroupChannelListFragment.tsx +10 -32
- package/src/fragments/createGroupChannelMembersFragment.tsx +34 -39
- package/src/hooks/useContext.ts +3 -5
- package/src/index.ts +5 -1
- package/src/localization/StringSet.type.ts +8 -0
- package/src/platform/createFileService.expo.ts +17 -2
- package/src/platform/createFileService.native.ts +16 -3
- package/src/platform/createMediaService.expo.tsx +30 -0
- package/src/platform/createMediaService.native.tsx +37 -0
- package/src/platform/createNotificationService.expo.ts +1 -1
- package/src/platform/types.ts +26 -1
- package/src/version.ts +1 -1
package/src/index.ts
CHANGED
|
@@ -6,6 +6,7 @@ import { Logger } from '@sendbird/uikit-utils';
|
|
|
6
6
|
export { default as MessageRenderer } from './components/MessageRenderer';
|
|
7
7
|
export { default as ChannelCover } from './components/ChannelCover';
|
|
8
8
|
export { default as ChatFlatList } from './components/ChatFlatList';
|
|
9
|
+
export { default as FileViewer } from './components/FileViewer';
|
|
9
10
|
export { default as NewMessagesButton } from './components/NewMessagesButton';
|
|
10
11
|
export { default as ProviderLayout } from './components/ProviderLayout';
|
|
11
12
|
export { default as ScrollToBottomButton } from './components/ScrollToBottomButton';
|
|
@@ -41,9 +42,12 @@ export type { StringSet } from './localization/StringSet.type';
|
|
|
41
42
|
export { default as createNativeFileService } from './platform/createFileService.native';
|
|
42
43
|
export { default as createNativeClipboardService } from './platform/createClipboardService.native';
|
|
43
44
|
export { default as createNativeNotificationService } from './platform/createNotificationService.native';
|
|
45
|
+
export { default as createNativeMediaService } from './platform/createMediaService.native';
|
|
44
46
|
export { default as createExpoFileService } from './platform/createFileService.expo';
|
|
45
47
|
export { default as createExpoClipboardService } from './platform/createClipboardService.expo';
|
|
46
48
|
export { default as createExpoNotificationService } from './platform/createNotificationService.expo';
|
|
49
|
+
export { default as createExpoMediaService } from './platform/createMediaService.expo';
|
|
50
|
+
|
|
47
51
|
export type {
|
|
48
52
|
FileServiceInterface,
|
|
49
53
|
ClipboardServiceInterface,
|
|
@@ -100,5 +104,5 @@ export {
|
|
|
100
104
|
|
|
101
105
|
export * from './types';
|
|
102
106
|
|
|
107
|
+
Logger.setLogLevel(__DEV__ ? 'warn' : 'none');
|
|
103
108
|
Logger.setTitle(`[UIKIT_${Platform.OS}]`);
|
|
104
|
-
__DEV__ && Logger.setLogLevel('none');
|
|
@@ -131,6 +131,10 @@ export interface StringSet {
|
|
|
131
131
|
CHANNEL_NO_MEMBERS: string;
|
|
132
132
|
TYPING_INDICATOR_TYPINGS: (users: SendbirdUser[]) => string | undefined;
|
|
133
133
|
};
|
|
134
|
+
FILE_VIEWER: {
|
|
135
|
+
TITLE: (message: SendbirdFileMessage) => string;
|
|
136
|
+
SUBTITLE: (message: SendbirdFileMessage) => string;
|
|
137
|
+
};
|
|
134
138
|
PLACEHOLDER: {
|
|
135
139
|
NO_BANNED_MEMBERS: string;
|
|
136
140
|
NO_USERS: string;
|
|
@@ -292,6 +296,10 @@ export const createBaseStringSet = ({ dateLocale, overrides }: StringSetCreateOp
|
|
|
292
296
|
},
|
|
293
297
|
...overrides?.LABELS,
|
|
294
298
|
},
|
|
299
|
+
FILE_VIEWER: {
|
|
300
|
+
TITLE: (message) => message.sender?.nickname || USER_NO_NAME,
|
|
301
|
+
SUBTITLE: (message) => messageTime(new Date(message.createdAt), dateLocale),
|
|
302
|
+
},
|
|
295
303
|
PLACEHOLDER: {
|
|
296
304
|
NO_BANNED_MEMBERS: 'No banned members',
|
|
297
305
|
NO_USERS: 'No users',
|
|
@@ -67,8 +67,10 @@ const createExpoFileService = ({
|
|
|
67
67
|
return imagePickerModule.MediaTypeOptions.Images;
|
|
68
68
|
case 'video':
|
|
69
69
|
return imagePickerModule.MediaTypeOptions.Videos;
|
|
70
|
-
|
|
70
|
+
case 'all':
|
|
71
71
|
return imagePickerModule.MediaTypeOptions.All;
|
|
72
|
+
default:
|
|
73
|
+
return imagePickerModule.MediaTypeOptions.Images;
|
|
72
74
|
}
|
|
73
75
|
})(),
|
|
74
76
|
});
|
|
@@ -92,7 +94,20 @@ const createExpoFileService = ({
|
|
|
92
94
|
}
|
|
93
95
|
}
|
|
94
96
|
|
|
95
|
-
const response = await imagePickerModule.launchImageLibraryAsync(
|
|
97
|
+
const response = await imagePickerModule.launchImageLibraryAsync({
|
|
98
|
+
mediaTypes: (() => {
|
|
99
|
+
switch (options?.mediaType) {
|
|
100
|
+
case 'photo':
|
|
101
|
+
return imagePickerModule.MediaTypeOptions.Images;
|
|
102
|
+
case 'video':
|
|
103
|
+
return imagePickerModule.MediaTypeOptions.Videos;
|
|
104
|
+
case 'all':
|
|
105
|
+
return imagePickerModule.MediaTypeOptions.All;
|
|
106
|
+
default:
|
|
107
|
+
return imagePickerModule.MediaTypeOptions.Images;
|
|
108
|
+
}
|
|
109
|
+
})(),
|
|
110
|
+
});
|
|
96
111
|
if (response.cancelled) return null;
|
|
97
112
|
const { uri } = response;
|
|
98
113
|
|
|
@@ -54,7 +54,7 @@ const createNativeFileService = ({
|
|
|
54
54
|
fsModule: typeof FileAccess;
|
|
55
55
|
}): FileServiceInterface => {
|
|
56
56
|
const cameraPermissions: Permission[] = Platform.select({
|
|
57
|
-
ios: [permissionModule.PERMISSIONS.IOS.CAMERA],
|
|
57
|
+
ios: [permissionModule.PERMISSIONS.IOS.CAMERA, permissionModule.PERMISSIONS.IOS.MICROPHONE],
|
|
58
58
|
android: [permissionModule.PERMISSIONS.ANDROID.CAMERA],
|
|
59
59
|
default: [],
|
|
60
60
|
});
|
|
@@ -94,7 +94,18 @@ const createNativeFileService = ({
|
|
|
94
94
|
|
|
95
95
|
const response = await imagePickerModule.launchCamera({
|
|
96
96
|
cameraType: options?.cameraType ?? 'back',
|
|
97
|
-
mediaType:
|
|
97
|
+
mediaType: (() => {
|
|
98
|
+
switch (options?.mediaType) {
|
|
99
|
+
case 'photo':
|
|
100
|
+
return 'photo';
|
|
101
|
+
case 'video':
|
|
102
|
+
return 'video';
|
|
103
|
+
case 'all':
|
|
104
|
+
return 'mixed';
|
|
105
|
+
default:
|
|
106
|
+
return 'photo';
|
|
107
|
+
}
|
|
108
|
+
})(),
|
|
98
109
|
});
|
|
99
110
|
if (response.didCancel) return null;
|
|
100
111
|
if (response.errorCode === 'camera_unavailable') {
|
|
@@ -128,8 +139,10 @@ const createNativeFileService = ({
|
|
|
128
139
|
return 'photo';
|
|
129
140
|
case 'video':
|
|
130
141
|
return 'video';
|
|
131
|
-
|
|
142
|
+
case 'all':
|
|
132
143
|
return 'mixed';
|
|
144
|
+
default:
|
|
145
|
+
return 'photo';
|
|
133
146
|
}
|
|
134
147
|
})(),
|
|
135
148
|
});
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type * as ExpoAV from 'expo-av';
|
|
2
|
+
import type * as ExpoVideoThumbnail from 'expo-video-thumbnails';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
|
|
5
|
+
import type { MediaServiceInterface } from './types';
|
|
6
|
+
|
|
7
|
+
type Modules = {
|
|
8
|
+
avModule: typeof ExpoAV;
|
|
9
|
+
thumbnailModule: typeof ExpoVideoThumbnail;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
const createExpoMediaService = ({ avModule, thumbnailModule }: Modules): MediaServiceInterface => {
|
|
13
|
+
return {
|
|
14
|
+
VideoComponent({ source, resizeMode, onLoad, ...props }) {
|
|
15
|
+
// FIXME: type error https://github.com/expo/expo/issues/17101
|
|
16
|
+
// @ts-ignore
|
|
17
|
+
return <avModule.Video {...props} source={source} resizeMode={resizeMode} onLoad={onLoad} useNativeControls />;
|
|
18
|
+
},
|
|
19
|
+
async getVideoThumbnail({ url, quality, timeMills }) {
|
|
20
|
+
try {
|
|
21
|
+
const { uri } = await thumbnailModule.getThumbnailAsync(url, { quality, time: timeMills });
|
|
22
|
+
return { path: uri };
|
|
23
|
+
} catch {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export default createExpoMediaService;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type * as CreateThumbnail from 'react-native-create-thumbnail';
|
|
3
|
+
import type Video from 'react-native-video';
|
|
4
|
+
|
|
5
|
+
import type { MediaServiceInterface } from './types';
|
|
6
|
+
|
|
7
|
+
type Modules = {
|
|
8
|
+
VideoComponent: typeof Video;
|
|
9
|
+
thumbnailModule: typeof CreateThumbnail;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
function hash(str: string) {
|
|
13
|
+
return String(Math.abs(str.split('').reduce((a, c) => ((a << 5) - a + c.charCodeAt(0)) | 0, 0)));
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const createNativeMediaService = ({ VideoComponent, thumbnailModule }: Modules): MediaServiceInterface => {
|
|
17
|
+
return {
|
|
18
|
+
VideoComponent({ source, resizeMode, onLoad, ...props }) {
|
|
19
|
+
return <VideoComponent {...props} source={source} resizeMode={resizeMode} onLoad={onLoad} controls />;
|
|
20
|
+
},
|
|
21
|
+
async getVideoThumbnail({ url, timeMills }) {
|
|
22
|
+
try {
|
|
23
|
+
const { path } = await thumbnailModule.createThumbnail({
|
|
24
|
+
url,
|
|
25
|
+
format: 'jpeg',
|
|
26
|
+
timeStamp: timeMills,
|
|
27
|
+
cacheName: hash(url),
|
|
28
|
+
});
|
|
29
|
+
return { path };
|
|
30
|
+
} catch {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export default createNativeMediaService;
|
package/src/platform/types.ts
CHANGED
|
@@ -3,6 +3,7 @@ export type DownloadedPath = string;
|
|
|
3
3
|
export type FilePickerResponse = FileType | null;
|
|
4
4
|
export type FileType = { uri: string; size: number; name: string; type: string };
|
|
5
5
|
|
|
6
|
+
// ---------- NotificationService ---------- //
|
|
6
7
|
export interface NotificationServiceInterface {
|
|
7
8
|
hasPushPermission(): Promise<boolean>;
|
|
8
9
|
requestPushPermission(): Promise<boolean>;
|
|
@@ -12,11 +13,13 @@ export interface NotificationServiceInterface {
|
|
|
12
13
|
onTokenRefresh(handler: (token: string) => void): Unsubscribe;
|
|
13
14
|
}
|
|
14
15
|
|
|
16
|
+
// ---------- ClipboardService ---------- //
|
|
15
17
|
export interface ClipboardServiceInterface {
|
|
16
18
|
setString(text: string): void;
|
|
17
19
|
getString(): Promise<string>;
|
|
18
20
|
}
|
|
19
21
|
|
|
22
|
+
// ---------- FileService ---------- //
|
|
20
23
|
export interface FileServiceInterface extends FilePickerServiceInterface, FileSystemServiceInterface {}
|
|
21
24
|
|
|
22
25
|
export interface OpenResultListener {
|
|
@@ -28,7 +31,7 @@ export interface OpenMediaLibraryOptions extends OpenResultListener {
|
|
|
28
31
|
}
|
|
29
32
|
export interface OpenCameraOptions extends OpenResultListener {
|
|
30
33
|
cameraType?: 'front' | 'back';
|
|
31
|
-
mediaType?: 'photo' | 'video';
|
|
34
|
+
mediaType?: 'photo' | 'video' | 'all';
|
|
32
35
|
}
|
|
33
36
|
export type OpenDocumentOptions = OpenResultListener;
|
|
34
37
|
export interface SaveOptions {
|
|
@@ -49,3 +52,25 @@ export interface FileSystemServiceInterface {
|
|
|
49
52
|
// - Application supports iTunes file sharing
|
|
50
53
|
save(options?: SaveOptions): Promise<DownloadedPath | null>;
|
|
51
54
|
}
|
|
55
|
+
|
|
56
|
+
// ---------- MediaService ---------- //
|
|
57
|
+
interface VideoProps {
|
|
58
|
+
source: { uri: string } | number;
|
|
59
|
+
resizeMode?: 'cover' | 'contain' | 'stretch';
|
|
60
|
+
onLoad?: () => void;
|
|
61
|
+
}
|
|
62
|
+
interface GetVideoThumbnailOptions {
|
|
63
|
+
url: string;
|
|
64
|
+
timeMills?: number;
|
|
65
|
+
quality?: number;
|
|
66
|
+
}
|
|
67
|
+
export interface MediaServiceInterface {
|
|
68
|
+
VideoComponent<Props = {}>(props: VideoProps & Props): JSX.Element;
|
|
69
|
+
getVideoThumbnail(options: GetVideoThumbnailOptions): Promise<{ path: string } | null>;
|
|
70
|
+
// compressImage(options: {
|
|
71
|
+
// path: string;
|
|
72
|
+
// compressionRate: number;
|
|
73
|
+
// resizingWidth: number;
|
|
74
|
+
// resizingHeight: number;
|
|
75
|
+
// }): Promise<{ path: string }>;
|
|
76
|
+
}
|
package/src/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const VERSION = '1.0
|
|
1
|
+
const VERSION = '1.1.0';
|
|
2
2
|
export default VERSION;
|