react-native-video-trim 4.1.0 → 5.0.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.
Files changed (99) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +89 -76
  3. package/VideoTrim.podspec +3 -3
  4. package/android/build.gradle +6 -53
  5. package/android/gradle.properties +1 -1
  6. package/android/src/main/AndroidManifest.xml +1 -1
  7. package/android/src/main/java/com/{margelo/nitro/videotrim/VideoTrim.kt → videotrim/VideoTrimModule.kt} +246 -232
  8. package/android/src/main/java/com/videotrim/VideoTrimPackage.kt +33 -0
  9. package/android/src/main/java/com/{margelo/nitro/videotrim → videotrim}/enums/ErrorCode.java +1 -1
  10. package/android/src/main/java/com/{margelo/nitro/videotrim → videotrim}/interfaces/IVideoTrimmerView.java +1 -1
  11. package/android/src/main/java/com/{margelo/nitro/videotrim → videotrim}/interfaces/VideoTrimListener.java +5 -4
  12. package/android/src/main/java/com/{margelo/nitro/videotrim → videotrim}/utils/MediaMetadataUtil.java +1 -1
  13. package/android/src/main/java/com/{margelo/nitro/videotrim → videotrim}/utils/StorageUtil.java +1 -1
  14. package/android/src/main/java/com/{margelo/nitro/videotrim → videotrim}/utils/VideoTrimmerUtil.java +20 -18
  15. package/android/src/main/java/com/{margelo/nitro/videotrim → videotrim}/widgets/VideoTrimmerView.java +44 -45
  16. package/ios/AssetLoader.h +19 -0
  17. package/ios/AssetLoader.mm +87 -0
  18. package/ios/ErrorCode.h +9 -0
  19. package/ios/ProgressAlertController.h +15 -0
  20. package/ios/ProgressAlertController.mm +78 -0
  21. package/ios/VideoTrim.h +31 -0
  22. package/ios/VideoTrim.mm +663 -0
  23. package/ios/VideoTrimmer.h +67 -0
  24. package/ios/VideoTrimmer.mm +863 -0
  25. package/ios/VideoTrimmerThumb.h +23 -0
  26. package/ios/VideoTrimmerThumb.mm +175 -0
  27. package/ios/VideoTrimmerViewController.h +52 -0
  28. package/ios/VideoTrimmerViewController.mm +533 -0
  29. package/lib/module/NativeVideoTrim.js +5 -0
  30. package/lib/module/NativeVideoTrim.js.map +1 -0
  31. package/lib/module/index.js +22 -24
  32. package/lib/module/index.js.map +1 -1
  33. package/lib/typescript/src/NativeVideoTrim.d.ts +107 -0
  34. package/lib/typescript/src/NativeVideoTrim.d.ts.map +1 -0
  35. package/lib/typescript/src/index.d.ts +13 -10
  36. package/lib/typescript/src/index.d.ts.map +1 -1
  37. package/package.json +15 -18
  38. package/src/NativeVideoTrim.ts +113 -0
  39. package/src/index.tsx +26 -31
  40. package/android/CMakeLists.txt +0 -24
  41. package/android/src/main/cpp/cpp-adapter.cpp +0 -6
  42. package/android/src/main/java/com/margelo/nitro/videotrim/VideoTrimPackage.kt +0 -22
  43. package/ios/AssetLoader.swift +0 -99
  44. package/ios/ErrorCode.swift +0 -17
  45. package/ios/ProgressAlertController.swift +0 -100
  46. package/ios/VideoTrim.swift +0 -67
  47. package/ios/VideoTrimImpl.swift +0 -957
  48. package/ios/VideoTrimmer.swift +0 -872
  49. package/ios/VideoTrimmerThumb.swift +0 -175
  50. package/ios/VideoTrimmerViewController.swift +0 -557
  51. package/lib/module/VideoTrim.nitro.js +0 -4
  52. package/lib/module/VideoTrim.nitro.js.map +0 -1
  53. package/lib/typescript/src/VideoTrim.nitro.d.ts +0 -257
  54. package/lib/typescript/src/VideoTrim.nitro.d.ts.map +0 -1
  55. package/nitrogen/generated/android/c++/JEditorConfig.hpp +0 -237
  56. package/nitrogen/generated/android/c++/JFileValidationResult.hpp +0 -61
  57. package/nitrogen/generated/android/c++/JFunc_void.hpp +0 -74
  58. package/nitrogen/generated/android/c++/JFunc_void_std__string_std__unordered_map_std__string__std__string_.hpp +0 -89
  59. package/nitrogen/generated/android/c++/JHybridVideoTrimSpec.cpp +0 -151
  60. package/nitrogen/generated/android/c++/JHybridVideoTrimSpec.hpp +0 -68
  61. package/nitrogen/generated/android/c++/JTrimOptions.hpp +0 -109
  62. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/EditorConfig.kt +0 -72
  63. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/FileValidationResult.kt +0 -28
  64. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/Func_void.kt +0 -80
  65. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/Func_void_std__string_std__unordered_map_std__string__std__string_.kt +0 -80
  66. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/HybridVideoTrimSpec.kt +0 -86
  67. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/TrimOptions.kt +0 -40
  68. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/videotrimOnLoad.kt +0 -35
  69. package/nitrogen/generated/android/videotrim+autolinking.cmake +0 -78
  70. package/nitrogen/generated/android/videotrim+autolinking.gradle +0 -27
  71. package/nitrogen/generated/android/videotrimOnLoad.cpp +0 -50
  72. package/nitrogen/generated/android/videotrimOnLoad.hpp +0 -25
  73. package/nitrogen/generated/ios/VideoTrim+autolinking.rb +0 -60
  74. package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Bridge.cpp +0 -96
  75. package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Bridge.hpp +0 -374
  76. package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Umbrella.hpp +0 -56
  77. package/nitrogen/generated/ios/VideoTrimAutolinking.mm +0 -33
  78. package/nitrogen/generated/ios/VideoTrimAutolinking.swift +0 -25
  79. package/nitrogen/generated/ios/c++/HybridVideoTrimSpecSwift.cpp +0 -11
  80. package/nitrogen/generated/ios/c++/HybridVideoTrimSpecSwift.hpp +0 -127
  81. package/nitrogen/generated/ios/swift/EditorConfig.swift +0 -541
  82. package/nitrogen/generated/ios/swift/FileValidationResult.swift +0 -57
  83. package/nitrogen/generated/ios/swift/Func_void.swift +0 -46
  84. package/nitrogen/generated/ios/swift/Func_void_FileValidationResult.swift +0 -46
  85. package/nitrogen/generated/ios/swift/Func_void_bool.swift +0 -46
  86. package/nitrogen/generated/ios/swift/Func_void_double.swift +0 -46
  87. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +0 -46
  88. package/nitrogen/generated/ios/swift/Func_void_std__string.swift +0 -46
  89. package/nitrogen/generated/ios/swift/Func_void_std__string_std__unordered_map_std__string__std__string_.swift +0 -54
  90. package/nitrogen/generated/ios/swift/Func_void_std__vector_std__string_.swift +0 -46
  91. package/nitrogen/generated/ios/swift/HybridVideoTrimSpec.swift +0 -54
  92. package/nitrogen/generated/ios/swift/HybridVideoTrimSpec_cxx.swift +0 -241
  93. package/nitrogen/generated/ios/swift/TrimOptions.swift +0 -189
  94. package/nitrogen/generated/shared/c++/EditorConfig.hpp +0 -253
  95. package/nitrogen/generated/shared/c++/FileValidationResult.hpp +0 -77
  96. package/nitrogen/generated/shared/c++/HybridVideoTrimSpec.cpp +0 -27
  97. package/nitrogen/generated/shared/c++/HybridVideoTrimSpec.hpp +0 -80
  98. package/nitrogen/generated/shared/c++/TrimOptions.hpp +0 -125
  99. package/src/VideoTrim.nitro.ts +0 -263
@@ -1,125 +0,0 @@
1
- ///
2
- /// TrimOptions.hpp
3
- /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
- /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
6
- ///
7
-
8
- #pragma once
9
-
10
- #if __has_include(<NitroModules/JSIConverter.hpp>)
11
- #include <NitroModules/JSIConverter.hpp>
12
- #else
13
- #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
- #endif
15
- #if __has_include(<NitroModules/NitroDefines.hpp>)
16
- #include <NitroModules/NitroDefines.hpp>
17
- #else
18
- #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
- #endif
20
-
21
-
22
-
23
- #include <string>
24
-
25
- namespace margelo::nitro::videotrim {
26
-
27
- /**
28
- * A struct which can be represented as a JavaScript object (TrimOptions).
29
- */
30
- struct TrimOptions {
31
- public:
32
- double startTime SWIFT_PRIVATE;
33
- double endTime SWIFT_PRIVATE;
34
- bool saveToPhoto SWIFT_PRIVATE;
35
- std::string type SWIFT_PRIVATE;
36
- std::string outputExt SWIFT_PRIVATE;
37
- bool openDocumentsOnFinish SWIFT_PRIVATE;
38
- bool openShareSheetOnFinish SWIFT_PRIVATE;
39
- bool removeAfterSavedToPhoto SWIFT_PRIVATE;
40
- bool removeAfterFailedToSavePhoto SWIFT_PRIVATE;
41
- bool removeAfterSavedToDocuments SWIFT_PRIVATE;
42
- bool removeAfterFailedToSaveDocuments SWIFT_PRIVATE;
43
- bool removeAfterShared SWIFT_PRIVATE;
44
- bool removeAfterFailedToShare SWIFT_PRIVATE;
45
- bool enableRotation SWIFT_PRIVATE;
46
- double rotationAngle SWIFT_PRIVATE;
47
-
48
- public:
49
- TrimOptions() = default;
50
- explicit TrimOptions(double startTime, double endTime, bool saveToPhoto, std::string type, std::string outputExt, bool openDocumentsOnFinish, bool openShareSheetOnFinish, bool removeAfterSavedToPhoto, bool removeAfterFailedToSavePhoto, bool removeAfterSavedToDocuments, bool removeAfterFailedToSaveDocuments, bool removeAfterShared, bool removeAfterFailedToShare, bool enableRotation, double rotationAngle): startTime(startTime), endTime(endTime), saveToPhoto(saveToPhoto), type(type), outputExt(outputExt), openDocumentsOnFinish(openDocumentsOnFinish), openShareSheetOnFinish(openShareSheetOnFinish), removeAfterSavedToPhoto(removeAfterSavedToPhoto), removeAfterFailedToSavePhoto(removeAfterFailedToSavePhoto), removeAfterSavedToDocuments(removeAfterSavedToDocuments), removeAfterFailedToSaveDocuments(removeAfterFailedToSaveDocuments), removeAfterShared(removeAfterShared), removeAfterFailedToShare(removeAfterFailedToShare), enableRotation(enableRotation), rotationAngle(rotationAngle) {}
51
- };
52
-
53
- } // namespace margelo::nitro::videotrim
54
-
55
- namespace margelo::nitro {
56
-
57
- using namespace margelo::nitro::videotrim;
58
-
59
- // C++ TrimOptions <> JS TrimOptions (object)
60
- template <>
61
- struct JSIConverter<TrimOptions> final {
62
- static inline TrimOptions fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
63
- jsi::Object obj = arg.asObject(runtime);
64
- return TrimOptions(
65
- JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "startTime")),
66
- JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "endTime")),
67
- JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "saveToPhoto")),
68
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "type")),
69
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "outputExt")),
70
- JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "openDocumentsOnFinish")),
71
- JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "openShareSheetOnFinish")),
72
- JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterSavedToPhoto")),
73
- JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterFailedToSavePhoto")),
74
- JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterSavedToDocuments")),
75
- JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterFailedToSaveDocuments")),
76
- JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterShared")),
77
- JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterFailedToShare")),
78
- JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "enableRotation")),
79
- JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "rotationAngle"))
80
- );
81
- }
82
- static inline jsi::Value toJSI(jsi::Runtime& runtime, const TrimOptions& arg) {
83
- jsi::Object obj(runtime);
84
- obj.setProperty(runtime, "startTime", JSIConverter<double>::toJSI(runtime, arg.startTime));
85
- obj.setProperty(runtime, "endTime", JSIConverter<double>::toJSI(runtime, arg.endTime));
86
- obj.setProperty(runtime, "saveToPhoto", JSIConverter<bool>::toJSI(runtime, arg.saveToPhoto));
87
- obj.setProperty(runtime, "type", JSIConverter<std::string>::toJSI(runtime, arg.type));
88
- obj.setProperty(runtime, "outputExt", JSIConverter<std::string>::toJSI(runtime, arg.outputExt));
89
- obj.setProperty(runtime, "openDocumentsOnFinish", JSIConverter<bool>::toJSI(runtime, arg.openDocumentsOnFinish));
90
- obj.setProperty(runtime, "openShareSheetOnFinish", JSIConverter<bool>::toJSI(runtime, arg.openShareSheetOnFinish));
91
- obj.setProperty(runtime, "removeAfterSavedToPhoto", JSIConverter<bool>::toJSI(runtime, arg.removeAfterSavedToPhoto));
92
- obj.setProperty(runtime, "removeAfterFailedToSavePhoto", JSIConverter<bool>::toJSI(runtime, arg.removeAfterFailedToSavePhoto));
93
- obj.setProperty(runtime, "removeAfterSavedToDocuments", JSIConverter<bool>::toJSI(runtime, arg.removeAfterSavedToDocuments));
94
- obj.setProperty(runtime, "removeAfterFailedToSaveDocuments", JSIConverter<bool>::toJSI(runtime, arg.removeAfterFailedToSaveDocuments));
95
- obj.setProperty(runtime, "removeAfterShared", JSIConverter<bool>::toJSI(runtime, arg.removeAfterShared));
96
- obj.setProperty(runtime, "removeAfterFailedToShare", JSIConverter<bool>::toJSI(runtime, arg.removeAfterFailedToShare));
97
- obj.setProperty(runtime, "enableRotation", JSIConverter<bool>::toJSI(runtime, arg.enableRotation));
98
- obj.setProperty(runtime, "rotationAngle", JSIConverter<double>::toJSI(runtime, arg.rotationAngle));
99
- return obj;
100
- }
101
- static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
102
- if (!value.isObject()) {
103
- return false;
104
- }
105
- jsi::Object obj = value.getObject(runtime);
106
- if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "startTime"))) return false;
107
- if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "endTime"))) return false;
108
- if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "saveToPhoto"))) return false;
109
- if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "type"))) return false;
110
- if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "outputExt"))) return false;
111
- if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "openDocumentsOnFinish"))) return false;
112
- if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "openShareSheetOnFinish"))) return false;
113
- if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterSavedToPhoto"))) return false;
114
- if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterFailedToSavePhoto"))) return false;
115
- if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterSavedToDocuments"))) return false;
116
- if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterFailedToSaveDocuments"))) return false;
117
- if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterShared"))) return false;
118
- if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterFailedToShare"))) return false;
119
- if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "enableRotation"))) return false;
120
- if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "rotationAngle"))) return false;
121
- return true;
122
- }
123
- };
124
-
125
- } // namespace margelo::nitro
@@ -1,263 +0,0 @@
1
- import type { HybridObject } from 'react-native-nitro-modules';
2
-
3
- export interface BaseOptions {
4
- /**
5
- * Save the output file to Photos Library. Only video is supported. Note that you have to make sure you have permission to save to Photos Library.
6
- * @default false
7
- */
8
- saveToPhoto: boolean;
9
- /**
10
- * Type of the file to edit. If video file, recommend to use `video`. If audio file, recommend to use `audio`.
11
- * @default "video"
12
- */
13
- type: string;
14
- /**
15
- * Output file extension. If video file, recommend to use `mp4` or `mov`. If audio file, recommend to use `wav` or `m4a`.
16
- * @default "mp4"
17
- * @example "mp4", "mov", "wav", "m4a", "3gp", "avi", "mkv", "flv", "wmv", "webm"
18
- */
19
- outputExt: string;
20
- /**
21
- * Whether to open Documents app after finish editing
22
- * @default false
23
- */
24
- openDocumentsOnFinish: boolean;
25
- /**
26
- * Whether to open Share Sheet after finish editing
27
- * @default false
28
- */
29
- openShareSheetOnFinish: boolean;
30
- /**
31
- * Remove the file after saved to Photos Library
32
- * @default false
33
- */
34
- removeAfterSavedToPhoto: boolean;
35
- /**
36
- * Remove the file after failed to save to Photos Library
37
- * @default false
38
- */
39
- removeAfterFailedToSavePhoto: boolean;
40
- /**
41
- * Remove the file after saved to Documents app
42
- * @default false
43
- */
44
- removeAfterSavedToDocuments: boolean;
45
- /**
46
- * Remove the file after failed to save to Documents app
47
- * @default false
48
- */
49
- removeAfterFailedToSaveDocuments: boolean;
50
- /**
51
- * Remove the file after shared to other apps. Currently only support iOS, on Android there's no way to detect if the file is shared or not.
52
- * @default false
53
- */
54
- removeAfterShared: boolean;
55
- /**
56
- * Remove the file after failed to share to other apps. Currently only support iOS, on Android there's no way to detect if the file is shared or not.
57
- * @default false
58
- */
59
- removeAfterFailedToShare: boolean;
60
- /**
61
- * Enable rotation
62
- * @default false
63
- */
64
- enableRotation: boolean;
65
- /**
66
- * Rotation angle in degrees
67
- * @default 0
68
- */
69
- rotationAngle: number;
70
- }
71
-
72
- export interface EditorConfig extends BaseOptions {
73
- /**
74
- * Enable haptic feedback
75
- * @default true
76
- */
77
- enableHapticFeedback: boolean;
78
- maxDuration: number;
79
- /**
80
- * Minimum duration for trimmer
81
- * @default 1000
82
- */
83
- minDuration: number;
84
- /**
85
- * Cancel button text
86
- * @default "Cancel"
87
- */
88
- cancelButtonText: string;
89
- /**
90
- * Save button text
91
- * @default "Save"
92
- */
93
- saveButtonText: string;
94
- /**
95
- * Enable cancel dialog
96
- * @default true
97
- */
98
- enableCancelDialog: boolean;
99
- /**
100
- * Cancel dialog title
101
- * @default "Warning!"
102
- */
103
- cancelDialogTitle: string;
104
- /**
105
- * Cancel dialog message
106
- * @default "Are you sure want to cancel?"
107
- */
108
- cancelDialogMessage: string;
109
- /**
110
- * Cancel dialog cancel text
111
- * @default "Close"
112
- */
113
- cancelDialogCancelText: string;
114
- /**
115
- * Cancel dialog confirm text
116
- * @default "Proceed"
117
- */
118
- cancelDialogConfirmText: string;
119
- /**
120
- * Enable save dialog
121
- * @default true
122
- */
123
- enableSaveDialog: boolean;
124
- /**
125
- * Save dialog title
126
- * @default "Confirmation!"
127
- */
128
- saveDialogTitle: string;
129
- /**
130
- * Save dialog message
131
- * @default "Are you sure want to save?"
132
- */
133
- saveDialogMessage: string;
134
- /**
135
- * Save dialog cancel text
136
- * @default "Close"
137
- */
138
- saveDialogCancelText: string;
139
- /**
140
- * Save dialog confirm text
141
- * @default "Proceed"
142
- */
143
- saveDialogConfirmText: string;
144
- /**
145
- * Trimming text
146
- * @default "Trimming video..."
147
- */
148
- trimmingText: string;
149
- /**
150
- * By default, on iOS the editor will be presented as a modal. If you want to present it as a full screen modal, set this to `true`.
151
- * @default false
152
- */
153
- fullScreenModalIOS: boolean;
154
- /**
155
- * Whether to enable autoplay on load
156
- */
157
- autoplay: boolean;
158
- /**
159
- * Jump to position on load in milliseconds
160
- * @default `undefined` (beginning of the video)
161
- */
162
- jumpToPositionOnLoad: number;
163
- /**
164
- * Whether to close the editor when finish editing
165
- * @default true
166
- */
167
- closeWhenFinish: boolean;
168
- /**
169
- * Enable cancel trimming
170
- * @default true
171
- */
172
- enableCancelTrimming: boolean;
173
- /**
174
- * Cancel trimming button text
175
- * @default "Cancel"
176
- */
177
- cancelTrimmingButtonText: string;
178
- /**
179
- * Enable cancel trimming dialog
180
- * @default true
181
- */
182
- enableCancelTrimmingDialog: boolean;
183
- /**
184
- * Cancel trimming dialog title
185
- * @default "Warning!"
186
- */
187
- cancelTrimmingDialogTitle: string;
188
- /**
189
- * Cancel trimming dialog message
190
- * @default "Are you sure want to cancel trimming?"
191
- */
192
- cancelTrimmingDialogMessage: string;
193
- /**
194
- * Cancel trimming dialog cancel text
195
- * @default "Close"
196
- */
197
- cancelTrimmingDialogCancelText: string;
198
- /**
199
- * Cancel trimming dialog confirm text
200
- * @default "Proceed"
201
- */
202
- cancelTrimmingDialogConfirmText: string;
203
- /**
204
- * Header text
205
- */
206
- headerText: string;
207
- /**
208
- * Header text size
209
- * @default 16
210
- */
211
- headerTextSize: number;
212
- /**
213
- * Header text color
214
- * @default white
215
- */
216
- headerTextColor: number;
217
- /**
218
- * Alert on fail to load media
219
- * @default true
220
- */
221
- alertOnFailToLoad: boolean;
222
- /**
223
- * Alert on fail to load media title
224
- * @default "Error"
225
- */
226
- alertOnFailTitle: string;
227
- /**
228
- * Alert on fail to load media message
229
- * @default "Fail to load media. Possibly invalid file or no network connection"
230
- */
231
- alertOnFailMessage: string;
232
- /**
233
- * Alert on fail to load media close text
234
- * @default "Close"
235
- */
236
- alertOnFailCloseText: string;
237
- }
238
-
239
- export interface TrimOptions extends BaseOptions {
240
- startTime: number; // in milliseconds
241
- endTime: number; // in milliseconds
242
- }
243
-
244
- export interface FileValidationResult {
245
- isValid: boolean;
246
- fileType: string;
247
- duration: number;
248
- }
249
-
250
- export interface VideoTrim
251
- extends HybridObject<{ ios: 'swift'; android: 'kotlin' }> {
252
- showEditor(
253
- filePath: string,
254
- config: EditorConfig,
255
- onEvent: (eventName: string, payload: Record<string, string>) => void // currently nitro modules will fail if there are 2 optional callbacks, to make if work, we need to pass the onEvent as the last parameter
256
- ): void;
257
- listFiles(): Promise<string[]>;
258
- cleanFiles(): Promise<number>;
259
- deleteFile(filePath: string): Promise<boolean>;
260
- closeEditor(onComplete: () => void): void;
261
- isValidFile(url: string): Promise<FileValidationResult>;
262
- trim(url: string, options: TrimOptions): Promise<string>;
263
- }