react-native-attachment-kit 1.1.2 → 1.2.2
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/CHANGELOG.md +24 -1
- package/README.md +75 -4
- package/android/src/main/libs/rnattachmentkit-release.aar +0 -0
- package/android/src/newarch/java/com/rnattachmentkit/RNAttachmentKitModule.kt +21 -1
- package/android/src/oldarch/java/com/rnattachmentkit/RNAttachmentKitModule.kt +21 -1
- package/ios/RNAttachmentKit.swift +4 -3
- package/ios/RNAttachmentKit.xcframework/ios-arm64/RNAttachmentKit.framework/Assets.car +0 -0
- package/ios/RNAttachmentKit.xcframework/ios-arm64/RNAttachmentKit.framework/Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios.abi.json +7072 -4567
- package/ios/RNAttachmentKit.xcframework/ios-arm64/RNAttachmentKit.framework/Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios.private.swiftinterface +35 -1
- package/ios/RNAttachmentKit.xcframework/ios-arm64/RNAttachmentKit.framework/Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
- package/ios/RNAttachmentKit.xcframework/ios-arm64/RNAttachmentKit.framework/Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios.swiftinterface +35 -1
- package/ios/RNAttachmentKit.xcframework/ios-arm64/RNAttachmentKit.framework/RNAttachmentKit +0 -0
- package/ios/RNAttachmentKit.xcframework/ios-arm64/RNAttachmentKit.framework/_CodeSignature/CodeDirectory +0 -0
- package/ios/RNAttachmentKit.xcframework/ios-arm64/RNAttachmentKit.framework/_CodeSignature/CodeResources +12 -12
- package/ios/RNAttachmentKit.xcframework/ios-arm64/RNAttachmentKit.framework/_CodeSignature/CodeSignature +0 -0
- package/ios/RNAttachmentKit.xcframework/ios-arm64_x86_64-simulator/RNAttachmentKit.framework/Assets.car +0 -0
- package/ios/RNAttachmentKit.xcframework/ios-arm64_x86_64-simulator/RNAttachmentKit.framework/Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios-simulator.abi.json +7072 -4567
- package/ios/RNAttachmentKit.xcframework/ios-arm64_x86_64-simulator/RNAttachmentKit.framework/Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +35 -1
- package/ios/RNAttachmentKit.xcframework/ios-arm64_x86_64-simulator/RNAttachmentKit.framework/Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
- package/ios/RNAttachmentKit.xcframework/ios-arm64_x86_64-simulator/RNAttachmentKit.framework/Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios-simulator.swiftinterface +35 -1
- package/ios/RNAttachmentKit.xcframework/ios-arm64_x86_64-simulator/RNAttachmentKit.framework/Modules/RNAttachmentKit.swiftmodule/x86_64-apple-ios-simulator.abi.json +7072 -4567
- package/ios/RNAttachmentKit.xcframework/ios-arm64_x86_64-simulator/RNAttachmentKit.framework/Modules/RNAttachmentKit.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +35 -1
- package/ios/RNAttachmentKit.xcframework/ios-arm64_x86_64-simulator/RNAttachmentKit.framework/Modules/RNAttachmentKit.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
- package/ios/RNAttachmentKit.xcframework/ios-arm64_x86_64-simulator/RNAttachmentKit.framework/Modules/RNAttachmentKit.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +35 -1
- package/ios/RNAttachmentKit.xcframework/ios-arm64_x86_64-simulator/RNAttachmentKit.framework/RNAttachmentKit +0 -0
- package/ios/RNAttachmentKit.xcframework/ios-arm64_x86_64-simulator/RNAttachmentKit.framework/_CodeSignature/CodeDirectory +0 -0
- package/ios/RNAttachmentKit.xcframework/ios-arm64_x86_64-simulator/RNAttachmentKit.framework/_CodeSignature/CodeResources +22 -22
- package/package.json +1 -1
- package/src/index.ts +24 -3
- package/src/types.ts +55 -1
|
@@ -490,6 +490,7 @@ extension RNAttachmentKit.RemoteImageViewerViewController : UIKit.UICollectionVi
|
|
|
490
490
|
@_Concurrency.MainActor @preconcurrency @objc dynamic public func collectionView(_ collectionView: UIKit.UICollectionView, didSelectItemAt indexPath: Foundation.IndexPath)
|
|
491
491
|
}
|
|
492
492
|
extension RNAttachmentKit.RemoteImageViewerViewController {
|
|
493
|
+
@_Concurrency.MainActor @preconcurrency public func willCloseEventBody() -> [Swift.String : Any]
|
|
493
494
|
@_Concurrency.MainActor @preconcurrency public func videoCloseSnapshot(in container: UIKit.UIView) -> (image: UIKit.UIImage, frame: CoreFoundation.CGRect)?
|
|
494
495
|
}
|
|
495
496
|
public struct Localizer {
|
|
@@ -834,6 +835,23 @@ public struct ReverseGeocodeError : Swift.Error {
|
|
|
834
835
|
public static func apply(_ config: [Swift.String : Any])
|
|
835
836
|
@objc deinit
|
|
836
837
|
}
|
|
838
|
+
public struct VideoPreviewOptions {
|
|
839
|
+
public var height: Swift.Int
|
|
840
|
+
public var bitrate: Swift.Int
|
|
841
|
+
public var maxFps: Swift.Double
|
|
842
|
+
public var maxDurationSec: Swift.Double
|
|
843
|
+
public var codec: Swift.String
|
|
844
|
+
public init()
|
|
845
|
+
public init?(any v: Any?)
|
|
846
|
+
}
|
|
847
|
+
public struct VideoPreviewResult {
|
|
848
|
+
public let url: Foundation.URL
|
|
849
|
+
public let width: Swift.Int
|
|
850
|
+
public let height: Swift.Int
|
|
851
|
+
public let duration: Swift.Double
|
|
852
|
+
public let fileSize: Swift.Int64
|
|
853
|
+
public let bitrate: Swift.Int
|
|
854
|
+
}
|
|
837
855
|
public struct VideoExportOptions {
|
|
838
856
|
public var maxDurationSec: Swift.Double
|
|
839
857
|
public var maxFileSizeMB: Swift.Double
|
|
@@ -841,6 +859,7 @@ public struct VideoExportOptions {
|
|
|
841
859
|
public var defaultQuality: Swift.Int
|
|
842
860
|
public var codec: Swift.String
|
|
843
861
|
public var posterFormat: Swift.String
|
|
862
|
+
public var preview: RNAttachmentKit.VideoPreviewOptions?
|
|
844
863
|
public init()
|
|
845
864
|
public init(dictionary d: [Swift.String : Any]?)
|
|
846
865
|
}
|
|
@@ -906,6 +925,7 @@ public enum VideoSendIssue {
|
|
|
906
925
|
}
|
|
907
926
|
final public class VideoExporter {
|
|
908
927
|
public static let sizeMargin: Swift.Double
|
|
928
|
+
public static func tooLongText(maxDurationSec: Swift.Double, languageCode: Swift.String) -> Swift.String
|
|
909
929
|
public static func sendIssue(sourceDuration: Swift.Double, sourceShortSide: CoreFoundation.CGFloat, state: RNAttachmentKit.VideoEditState, options: RNAttachmentKit.VideoExportOptions) -> RNAttachmentKit.VideoSendIssue?
|
|
910
930
|
public static func fittedQuality(_ want: Swift.Int, sourceShortSide: CoreFoundation.CGFloat, outputDuration: Swift.Double, options: RNAttachmentKit.VideoExportOptions) -> Swift.Int
|
|
911
931
|
public enum ExportError : Foundation.LocalizedError {
|
|
@@ -922,6 +942,8 @@ final public class VideoExporter {
|
|
|
922
942
|
final public func cancel()
|
|
923
943
|
final public func export(asset: Photos.PHAsset, state: RNAttachmentKit.VideoEditState, options: RNAttachmentKit.VideoExportOptions, outputDir: Foundation.URL, baseName: Swift.String, progress: @escaping (Swift.Double) -> Swift.Void) throws -> RNAttachmentKit.VideoExportResult
|
|
924
944
|
final public func export(fileURL: Foundation.URL, state: RNAttachmentKit.VideoEditState, options: RNAttachmentKit.VideoExportOptions, outputDir: Foundation.URL, baseName: Swift.String, progress: @escaping (Swift.Double) -> Swift.Void) throws -> RNAttachmentKit.VideoExportResult
|
|
945
|
+
public static func previewWorthMaking(sentShortSide: Swift.Int, sentFileSize: Swift.Int64, sentDuration: Swift.Double, options: RNAttachmentKit.VideoPreviewOptions) -> Swift.Bool
|
|
946
|
+
final public func makePreview(from source: Foundation.URL, options: RNAttachmentKit.VideoPreviewOptions, to url: Foundation.URL, progress: @escaping (Swift.Double) -> Swift.Void) throws -> RNAttachmentKit.VideoPreviewResult
|
|
925
947
|
public static func encodePoster(_ image: UIKit.UIImage, format: Swift.String, quality: CoreFoundation.CGFloat) -> (data: Foundation.Data, fileExtension: Swift.String)?
|
|
926
948
|
@objc deinit
|
|
927
949
|
}
|
|
@@ -939,7 +961,8 @@ public struct ViewerVideoItem {
|
|
|
939
961
|
public var uri: Swift.String
|
|
940
962
|
public var duration: Swift.Double?
|
|
941
963
|
public var cacheFile: Swift.String?
|
|
942
|
-
public
|
|
964
|
+
public var startTime: Swift.Double?
|
|
965
|
+
public init(uri: Swift.String, duration: Swift.Double? = nil, cacheFile: Swift.String? = nil, startTime: Swift.Double? = nil)
|
|
943
966
|
public init?(dictionary d: Any?)
|
|
944
967
|
}
|
|
945
968
|
@_hasMissingDesignatedInitializers final public class VideoPrepareManager {
|
|
@@ -1004,8 +1027,19 @@ public struct AttachmentResult {
|
|
|
1004
1027
|
public var videoCodec: Swift.String?
|
|
1005
1028
|
public var videoBitrate: Swift.Int?
|
|
1006
1029
|
public var edited: Swift.Bool?
|
|
1030
|
+
public var previewURL: Foundation.URL?
|
|
1031
|
+
public var previewWidth: Swift.Int?
|
|
1032
|
+
public var previewHeight: Swift.Int?
|
|
1033
|
+
public var previewDuration: Swift.Double?
|
|
1034
|
+
public var previewFileSize: Swift.Int64?
|
|
1035
|
+
public var previewBitrate: Swift.Int?
|
|
1036
|
+
public var previewError: Swift.String?
|
|
1037
|
+
public var previewSkipped: Swift.String?
|
|
1007
1038
|
public var error: Swift.String?
|
|
1008
1039
|
public var cancelled: Swift.Bool
|
|
1040
|
+
public var previewPath: Swift.String? {
|
|
1041
|
+
get
|
|
1042
|
+
}
|
|
1009
1043
|
public var path: Swift.String? {
|
|
1010
1044
|
get
|
|
1011
1045
|
}
|
|
Binary file
|
|
@@ -490,6 +490,7 @@ extension RNAttachmentKit.RemoteImageViewerViewController : UIKit.UICollectionVi
|
|
|
490
490
|
@_Concurrency.MainActor @preconcurrency @objc dynamic public func collectionView(_ collectionView: UIKit.UICollectionView, didSelectItemAt indexPath: Foundation.IndexPath)
|
|
491
491
|
}
|
|
492
492
|
extension RNAttachmentKit.RemoteImageViewerViewController {
|
|
493
|
+
@_Concurrency.MainActor @preconcurrency public func willCloseEventBody() -> [Swift.String : Any]
|
|
493
494
|
@_Concurrency.MainActor @preconcurrency public func videoCloseSnapshot(in container: UIKit.UIView) -> (image: UIKit.UIImage, frame: CoreFoundation.CGRect)?
|
|
494
495
|
}
|
|
495
496
|
public struct Localizer {
|
|
@@ -834,6 +835,23 @@ public struct ReverseGeocodeError : Swift.Error {
|
|
|
834
835
|
public static func apply(_ config: [Swift.String : Any])
|
|
835
836
|
@objc deinit
|
|
836
837
|
}
|
|
838
|
+
public struct VideoPreviewOptions {
|
|
839
|
+
public var height: Swift.Int
|
|
840
|
+
public var bitrate: Swift.Int
|
|
841
|
+
public var maxFps: Swift.Double
|
|
842
|
+
public var maxDurationSec: Swift.Double
|
|
843
|
+
public var codec: Swift.String
|
|
844
|
+
public init()
|
|
845
|
+
public init?(any v: Any?)
|
|
846
|
+
}
|
|
847
|
+
public struct VideoPreviewResult {
|
|
848
|
+
public let url: Foundation.URL
|
|
849
|
+
public let width: Swift.Int
|
|
850
|
+
public let height: Swift.Int
|
|
851
|
+
public let duration: Swift.Double
|
|
852
|
+
public let fileSize: Swift.Int64
|
|
853
|
+
public let bitrate: Swift.Int
|
|
854
|
+
}
|
|
837
855
|
public struct VideoExportOptions {
|
|
838
856
|
public var maxDurationSec: Swift.Double
|
|
839
857
|
public var maxFileSizeMB: Swift.Double
|
|
@@ -841,6 +859,7 @@ public struct VideoExportOptions {
|
|
|
841
859
|
public var defaultQuality: Swift.Int
|
|
842
860
|
public var codec: Swift.String
|
|
843
861
|
public var posterFormat: Swift.String
|
|
862
|
+
public var preview: RNAttachmentKit.VideoPreviewOptions?
|
|
844
863
|
public init()
|
|
845
864
|
public init(dictionary d: [Swift.String : Any]?)
|
|
846
865
|
}
|
|
@@ -906,6 +925,7 @@ public enum VideoSendIssue {
|
|
|
906
925
|
}
|
|
907
926
|
final public class VideoExporter {
|
|
908
927
|
public static let sizeMargin: Swift.Double
|
|
928
|
+
public static func tooLongText(maxDurationSec: Swift.Double, languageCode: Swift.String) -> Swift.String
|
|
909
929
|
public static func sendIssue(sourceDuration: Swift.Double, sourceShortSide: CoreFoundation.CGFloat, state: RNAttachmentKit.VideoEditState, options: RNAttachmentKit.VideoExportOptions) -> RNAttachmentKit.VideoSendIssue?
|
|
910
930
|
public static func fittedQuality(_ want: Swift.Int, sourceShortSide: CoreFoundation.CGFloat, outputDuration: Swift.Double, options: RNAttachmentKit.VideoExportOptions) -> Swift.Int
|
|
911
931
|
public enum ExportError : Foundation.LocalizedError {
|
|
@@ -922,6 +942,8 @@ final public class VideoExporter {
|
|
|
922
942
|
final public func cancel()
|
|
923
943
|
final public func export(asset: Photos.PHAsset, state: RNAttachmentKit.VideoEditState, options: RNAttachmentKit.VideoExportOptions, outputDir: Foundation.URL, baseName: Swift.String, progress: @escaping (Swift.Double) -> Swift.Void) throws -> RNAttachmentKit.VideoExportResult
|
|
924
944
|
final public func export(fileURL: Foundation.URL, state: RNAttachmentKit.VideoEditState, options: RNAttachmentKit.VideoExportOptions, outputDir: Foundation.URL, baseName: Swift.String, progress: @escaping (Swift.Double) -> Swift.Void) throws -> RNAttachmentKit.VideoExportResult
|
|
945
|
+
public static func previewWorthMaking(sentShortSide: Swift.Int, sentFileSize: Swift.Int64, sentDuration: Swift.Double, options: RNAttachmentKit.VideoPreviewOptions) -> Swift.Bool
|
|
946
|
+
final public func makePreview(from source: Foundation.URL, options: RNAttachmentKit.VideoPreviewOptions, to url: Foundation.URL, progress: @escaping (Swift.Double) -> Swift.Void) throws -> RNAttachmentKit.VideoPreviewResult
|
|
925
947
|
public static func encodePoster(_ image: UIKit.UIImage, format: Swift.String, quality: CoreFoundation.CGFloat) -> (data: Foundation.Data, fileExtension: Swift.String)?
|
|
926
948
|
@objc deinit
|
|
927
949
|
}
|
|
@@ -939,7 +961,8 @@ public struct ViewerVideoItem {
|
|
|
939
961
|
public var uri: Swift.String
|
|
940
962
|
public var duration: Swift.Double?
|
|
941
963
|
public var cacheFile: Swift.String?
|
|
942
|
-
public
|
|
964
|
+
public var startTime: Swift.Double?
|
|
965
|
+
public init(uri: Swift.String, duration: Swift.Double? = nil, cacheFile: Swift.String? = nil, startTime: Swift.Double? = nil)
|
|
943
966
|
public init?(dictionary d: Any?)
|
|
944
967
|
}
|
|
945
968
|
@_hasMissingDesignatedInitializers final public class VideoPrepareManager {
|
|
@@ -1004,8 +1027,19 @@ public struct AttachmentResult {
|
|
|
1004
1027
|
public var videoCodec: Swift.String?
|
|
1005
1028
|
public var videoBitrate: Swift.Int?
|
|
1006
1029
|
public var edited: Swift.Bool?
|
|
1030
|
+
public var previewURL: Foundation.URL?
|
|
1031
|
+
public var previewWidth: Swift.Int?
|
|
1032
|
+
public var previewHeight: Swift.Int?
|
|
1033
|
+
public var previewDuration: Swift.Double?
|
|
1034
|
+
public var previewFileSize: Swift.Int64?
|
|
1035
|
+
public var previewBitrate: Swift.Int?
|
|
1036
|
+
public var previewError: Swift.String?
|
|
1037
|
+
public var previewSkipped: Swift.String?
|
|
1007
1038
|
public var error: Swift.String?
|
|
1008
1039
|
public var cancelled: Swift.Bool
|
|
1040
|
+
public var previewPath: Swift.String? {
|
|
1041
|
+
get
|
|
1042
|
+
}
|
|
1009
1043
|
public var path: Swift.String? {
|
|
1010
1044
|
get
|
|
1011
1045
|
}
|
|
Binary file
|
|
Binary file
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<dict>
|
|
7
7
|
<key>Assets.car</key>
|
|
8
8
|
<data>
|
|
9
|
-
|
|
9
|
+
g6yZrbEglkdHc1mfZaxagZ5xtQU=
|
|
10
10
|
</data>
|
|
11
11
|
<key>Base.lproj/LaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib</key>
|
|
12
12
|
<data>
|
|
@@ -30,43 +30,43 @@
|
|
|
30
30
|
</data>
|
|
31
31
|
<key>Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios-simulator.abi.json</key>
|
|
32
32
|
<data>
|
|
33
|
-
|
|
33
|
+
cDIKOxZMZjBEDwXWsaQcXFaOwjY=
|
|
34
34
|
</data>
|
|
35
35
|
<key>Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface</key>
|
|
36
36
|
<data>
|
|
37
|
-
|
|
37
|
+
5+4785ZK6wAQveUYGwxcd97v3fk=
|
|
38
38
|
</data>
|
|
39
39
|
<key>Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios-simulator.swiftdoc</key>
|
|
40
40
|
<data>
|
|
41
|
-
|
|
41
|
+
zVq/ulFQX0DNJyim760INA2BMJY=
|
|
42
42
|
</data>
|
|
43
43
|
<key>Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios-simulator.swiftinterface</key>
|
|
44
44
|
<data>
|
|
45
|
-
|
|
45
|
+
5+4785ZK6wAQveUYGwxcd97v3fk=
|
|
46
46
|
</data>
|
|
47
47
|
<key>Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios-simulator.swiftmodule</key>
|
|
48
48
|
<data>
|
|
49
|
-
|
|
49
|
+
myshBYtNXCHjI6pdLLGzq+k7QaY=
|
|
50
50
|
</data>
|
|
51
51
|
<key>Modules/RNAttachmentKit.swiftmodule/x86_64-apple-ios-simulator.abi.json</key>
|
|
52
52
|
<data>
|
|
53
|
-
|
|
53
|
+
cDIKOxZMZjBEDwXWsaQcXFaOwjY=
|
|
54
54
|
</data>
|
|
55
55
|
<key>Modules/RNAttachmentKit.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface</key>
|
|
56
56
|
<data>
|
|
57
|
-
|
|
57
|
+
gDqNg0dOOaQZG+LnUdHe2epfM/Q=
|
|
58
58
|
</data>
|
|
59
59
|
<key>Modules/RNAttachmentKit.swiftmodule/x86_64-apple-ios-simulator.swiftdoc</key>
|
|
60
60
|
<data>
|
|
61
|
-
|
|
61
|
+
bqeMNigi/6BVenv9pPCBC0cnOik=
|
|
62
62
|
</data>
|
|
63
63
|
<key>Modules/RNAttachmentKit.swiftmodule/x86_64-apple-ios-simulator.swiftinterface</key>
|
|
64
64
|
<data>
|
|
65
|
-
|
|
65
|
+
gDqNg0dOOaQZG+LnUdHe2epfM/Q=
|
|
66
66
|
</data>
|
|
67
67
|
<key>Modules/RNAttachmentKit.swiftmodule/x86_64-apple-ios-simulator.swiftmodule</key>
|
|
68
68
|
<data>
|
|
69
|
-
|
|
69
|
+
ldCLYzEJSMl9tGbvJKLqqcaexB0=
|
|
70
70
|
</data>
|
|
71
71
|
<key>Modules/module.modulemap</key>
|
|
72
72
|
<data>
|
|
@@ -227,7 +227,7 @@
|
|
|
227
227
|
<dict>
|
|
228
228
|
<key>hash2</key>
|
|
229
229
|
<data>
|
|
230
|
-
|
|
230
|
+
t4fvHNhwvX9Xc+yxU1dNnVy6zn+bhryN6MxDfE4HVwY=
|
|
231
231
|
</data>
|
|
232
232
|
</dict>
|
|
233
233
|
<key>Base.lproj/LaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib</key>
|
|
@@ -262,70 +262,70 @@
|
|
|
262
262
|
<dict>
|
|
263
263
|
<key>hash2</key>
|
|
264
264
|
<data>
|
|
265
|
-
|
|
265
|
+
5U0ebRft0k3pT7dh7XFPPmlXrsYugnRdA4Lzrg58wbs=
|
|
266
266
|
</data>
|
|
267
267
|
</dict>
|
|
268
268
|
<key>Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface</key>
|
|
269
269
|
<dict>
|
|
270
270
|
<key>hash2</key>
|
|
271
271
|
<data>
|
|
272
|
-
|
|
272
|
+
8S9V0QeM7wYkvdneQjfZzBBJczr//bsYL3LPwAAgn0M=
|
|
273
273
|
</data>
|
|
274
274
|
</dict>
|
|
275
275
|
<key>Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios-simulator.swiftdoc</key>
|
|
276
276
|
<dict>
|
|
277
277
|
<key>hash2</key>
|
|
278
278
|
<data>
|
|
279
|
-
|
|
279
|
+
b5YFkrCnQlPq+ypXoa8FpGaEy8FIGl4lF8SaDOjauKU=
|
|
280
280
|
</data>
|
|
281
281
|
</dict>
|
|
282
282
|
<key>Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios-simulator.swiftinterface</key>
|
|
283
283
|
<dict>
|
|
284
284
|
<key>hash2</key>
|
|
285
285
|
<data>
|
|
286
|
-
|
|
286
|
+
8S9V0QeM7wYkvdneQjfZzBBJczr//bsYL3LPwAAgn0M=
|
|
287
287
|
</data>
|
|
288
288
|
</dict>
|
|
289
289
|
<key>Modules/RNAttachmentKit.swiftmodule/arm64-apple-ios-simulator.swiftmodule</key>
|
|
290
290
|
<dict>
|
|
291
291
|
<key>hash2</key>
|
|
292
292
|
<data>
|
|
293
|
-
|
|
293
|
+
jawPPEoY72pY1VUCBTHs7AyHVJpsM4/uD/n6ijfZ9+4=
|
|
294
294
|
</data>
|
|
295
295
|
</dict>
|
|
296
296
|
<key>Modules/RNAttachmentKit.swiftmodule/x86_64-apple-ios-simulator.abi.json</key>
|
|
297
297
|
<dict>
|
|
298
298
|
<key>hash2</key>
|
|
299
299
|
<data>
|
|
300
|
-
|
|
300
|
+
5U0ebRft0k3pT7dh7XFPPmlXrsYugnRdA4Lzrg58wbs=
|
|
301
301
|
</data>
|
|
302
302
|
</dict>
|
|
303
303
|
<key>Modules/RNAttachmentKit.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface</key>
|
|
304
304
|
<dict>
|
|
305
305
|
<key>hash2</key>
|
|
306
306
|
<data>
|
|
307
|
-
|
|
307
|
+
9hRCvQHf4NkqX1nAk8jG2Vlek5vnm/aq9XSQlJzeZqU=
|
|
308
308
|
</data>
|
|
309
309
|
</dict>
|
|
310
310
|
<key>Modules/RNAttachmentKit.swiftmodule/x86_64-apple-ios-simulator.swiftdoc</key>
|
|
311
311
|
<dict>
|
|
312
312
|
<key>hash2</key>
|
|
313
313
|
<data>
|
|
314
|
-
|
|
314
|
+
siL9Prg1AkwGbKYqi7m/6XFHFWw//eIf2qRminOoGtc=
|
|
315
315
|
</data>
|
|
316
316
|
</dict>
|
|
317
317
|
<key>Modules/RNAttachmentKit.swiftmodule/x86_64-apple-ios-simulator.swiftinterface</key>
|
|
318
318
|
<dict>
|
|
319
319
|
<key>hash2</key>
|
|
320
320
|
<data>
|
|
321
|
-
|
|
321
|
+
9hRCvQHf4NkqX1nAk8jG2Vlek5vnm/aq9XSQlJzeZqU=
|
|
322
322
|
</data>
|
|
323
323
|
</dict>
|
|
324
324
|
<key>Modules/RNAttachmentKit.swiftmodule/x86_64-apple-ios-simulator.swiftmodule</key>
|
|
325
325
|
<dict>
|
|
326
326
|
<key>hash2</key>
|
|
327
327
|
<data>
|
|
328
|
-
|
|
328
|
+
5KpS89ua5KyMNFPf1VukiCs8RRbMX9viVdOof9j9eVI=
|
|
329
329
|
</data>
|
|
330
330
|
</dict>
|
|
331
331
|
<key>Modules/module.modulemap</key>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-attachment-kit",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.2",
|
|
4
4
|
"description": "Native attachment kit for React Native — gallery picker, editor, image viewer and media gallery (Turbo Module)",
|
|
5
5
|
"main": "src/index.ts",
|
|
6
6
|
"types": "src/index.ts",
|
package/src/index.ts
CHANGED
|
@@ -67,6 +67,23 @@ if (!RNAttachmentKitModule) {
|
|
|
67
67
|
const eventEmitter = new NativeEventEmitter(RNAttachmentKitModule)
|
|
68
68
|
|
|
69
69
|
/** 같은 화면을 중복으로 열려고 할 때 reject 하는 Error (code: "E_ALREADY_OPEN") */
|
|
70
|
+
/** 네이티브 onViewerWillClose 본문 → { currentIndex, videoPositions } (예전 네이티브·다른 Android 뷰어처럼 값이 없으면 undefined) */
|
|
71
|
+
function toViewerWillCloseEvent(e: any): import("./types").ViewerWillCloseEvent | undefined {
|
|
72
|
+
if (!e || typeof e.currentIndex !== 'number') return undefined
|
|
73
|
+
const out: import("./types").ViewerWillCloseEvent = { currentIndex: e.currentIndex }
|
|
74
|
+
const raw = e.videoPositions
|
|
75
|
+
if (raw && typeof raw === 'object') {
|
|
76
|
+
const positions: Record<number, number> = {}
|
|
77
|
+
let any = false
|
|
78
|
+
for (const k of Object.keys(raw)) {
|
|
79
|
+
const i = Number(k), v = raw[k]
|
|
80
|
+
if (Number.isInteger(i) && typeof v === 'number' && isFinite(v)) { positions[i] = v; any = true }
|
|
81
|
+
}
|
|
82
|
+
if (any) out.videoPositions = positions
|
|
83
|
+
}
|
|
84
|
+
return out
|
|
85
|
+
}
|
|
86
|
+
|
|
70
87
|
function alreadyOpenError(what: string): Error {
|
|
71
88
|
const err = new Error(`${what} is already open`)
|
|
72
89
|
;(err as any).code = "E_ALREADY_OPEN"
|
|
@@ -89,7 +106,7 @@ let _editorOpen = false
|
|
|
89
106
|
let _asyncImgProcessedSub: { remove: () => void } | null = null
|
|
90
107
|
|
|
91
108
|
export type { AIConfig, AIUsageEvent, AIChargeRequiredEvent } from "./types"
|
|
92
|
-
export type { VideoOptions, VideoProgressEvent, ViewerVideo, ProcessingStartEvent, ProcessingStartItem, ThumbnailOptions, SourceRect, SourceClipInsets, ViewerSourceUpdate } from "./types"
|
|
109
|
+
export type { VideoOptions, VideoProgressEvent, ViewerVideo, ViewerWillCloseEvent, ProcessingStartEvent, ProcessingStartItem, ThumbnailOptions, VideoPreviewOptions, SourceRect, SourceClipInsets, ViewerSourceUpdate } from "./types"
|
|
93
110
|
export type { SelectionChangeEvent, Appearance, AttachLocationResult, MapViewerOptions, ReverseGeocodeOptions, ReverseGeocodeResult, ReverseGeocodeErrorCode, AttachFileResult, AttachFileFailure, LocationThumbnailOptions, LocationThumbnailResult } from "./types"
|
|
94
111
|
export type { MediaGalleryItem, MediaGalleryOptions, MediaGalleryGridSize, MediaGalleryGridSizeChangedEvent, MediaGalleryTheme, MediaGalleryViewerOptions, MediaGalleryDeleteOption, MediaGalleryItemDeletedEvent, MediaGalleryNeedPageEvent, MediaGalleryClosedEvent, MediaGalleryAppendPayload, MediaGalleryRemovePayload } from "./types"
|
|
95
112
|
|
|
@@ -379,9 +396,13 @@ const AttachmentKit: RNAttachmentKit = {
|
|
|
379
396
|
// 네이티브 "onViewerWillClose"(iOS sendEvent / Android RCTDeviceEventEmitter) 는 앱이 콜백을 넘기지 않아도
|
|
380
397
|
// 항상 구독합니다 — 이 이벤트가 와야 onPageSelected / onImageDeleted 구독을 정리할 수 있기 때문입니다
|
|
381
398
|
// (예전엔 options.onViewerWillClose 가 없으면 구독을 안 해서 뷰어를 열 때마다 리스너가 누수됐음).
|
|
382
|
-
|
|
399
|
+
// Android 는 같은 이벤트가 두 구독(eventEmitter·DeviceEventEmitter)으로 올 수 있어 한 번만
|
|
400
|
+
let closeSent = false
|
|
401
|
+
const closeHandler = (event?: any) => {
|
|
402
|
+
if (closeSent) return
|
|
403
|
+
closeSent = true
|
|
383
404
|
if (options.onViewerWillClose) {
|
|
384
|
-
options.onViewerWillClose()
|
|
405
|
+
options.onViewerWillClose(toViewerWillCloseEvent(event))
|
|
385
406
|
}
|
|
386
407
|
if (subscriptionPageSelected) {
|
|
387
408
|
subscriptionPageSelected.remove()
|
package/src/types.ts
CHANGED
|
@@ -42,6 +42,20 @@ export interface ImageResult {
|
|
|
42
42
|
error?: string
|
|
43
43
|
/** 앱이 cancelVideoProcessing 으로 취소한 동영상 (uri 없음) */
|
|
44
44
|
cancelled?: boolean
|
|
45
|
+
/** 동영상: 미리보기 영상 file:// (video.preview 를 줬고 만들었을 때). 소리 없음, 저화질 mp4 (moov 앞쪽) */
|
|
46
|
+
previewUri?: string
|
|
47
|
+
previewWidth?: number
|
|
48
|
+
previewHeight?: number
|
|
49
|
+
/** 초(소수) — preview.maxDurationSec 로 잘랐으면 그 길이 */
|
|
50
|
+
previewDuration?: number
|
|
51
|
+
/** bytes */
|
|
52
|
+
previewFileSize?: number
|
|
53
|
+
/** 평균 비트레이트(bps) — 파일 크기 ÷ 길이 */
|
|
54
|
+
previewBitrate?: number
|
|
55
|
+
/** 미리보기만 실패 (전송본 uri 는 정상). "ENCODE_FAILED" */
|
|
56
|
+
previewError?: string
|
|
57
|
+
/** 일부러 만들지 않음. "SOURCE_SMALL" = 전송본이 미리보기 기준보다 작거나 같음 (짧은 변 ≤ preview.height 이거나 파일이 예상 미리보기보다 작음) */
|
|
58
|
+
previewSkipped?: string
|
|
45
59
|
}
|
|
46
60
|
|
|
47
61
|
/**
|
|
@@ -97,6 +111,20 @@ export interface ThumbnailOptions {
|
|
|
97
111
|
}
|
|
98
112
|
|
|
99
113
|
/** 동영상 옵션 (GalleryOptions.video). mediaType 이 "video"/"all" 일 때만 의미 */
|
|
114
|
+
/** video.preview — 목록·카드용 미리보기 영상 (1.2.0). 모두 선택, 0 이하·틀린 값은 기본값 */
|
|
115
|
+
export interface VideoPreviewOptions {
|
|
116
|
+
/** 짧은 변(px). 기본 360. 전송본이 이보다 작거나 같으면 만들지 않음 (previewSkipped "SOURCE_SMALL") */
|
|
117
|
+
height?: number
|
|
118
|
+
/** 평균 비트레이트(bps). 기본 450_000 */
|
|
119
|
+
bitrate?: number
|
|
120
|
+
/** 최대 fps. 기본 24. 원본이 더 낮으면 원본 그대로. iOS 만 — Android(media3 1.4.1)는 원본 fps 유지 */
|
|
121
|
+
maxFps?: number
|
|
122
|
+
/** 앞에서부터 이 길이(초)까지만. 기본 0 = 전송본 전체 */
|
|
123
|
+
maxDurationSec?: number
|
|
124
|
+
/** 기본 "h264" (호환성 때문에 h264 권장) */
|
|
125
|
+
codec?: "h264" | "hevc"
|
|
126
|
+
}
|
|
127
|
+
|
|
100
128
|
export interface VideoOptions {
|
|
101
129
|
/** 고를 수 있는 최대 길이(초). 기본 600 (10분). 넘는 동영상은 누르면 안내만. 0 = 제한 없음 */
|
|
102
130
|
maxDurationSec?: number
|
|
@@ -117,6 +145,11 @@ export interface VideoOptions {
|
|
|
117
145
|
* onProcessingStart / onImageProcessed 의 thumbnailUri 확장자가 이 값을 따름 (webp 인코딩이 안 되는 드문 경우엔 jpg 로 대신하니, 확장자는 uri 로 확인)
|
|
118
146
|
*/
|
|
119
147
|
posterFormat?: "webp" | "jpg"
|
|
148
|
+
/**
|
|
149
|
+
* 목록·카드용 미리보기 영상(소리 없음, 저화질 mp4, moov 앞쪽, 키프레임 1초)을 전송본과 함께 만듦 — 전송본(트림·크롭·그리기·음소거가
|
|
150
|
+
* 반영된 파일)에서 만들어 화면이 같음. 결과 previewUri 등. 없거나 false 면 예전과 같음, true 면 기본값 (1.2.0, iOS + Android)
|
|
151
|
+
*/
|
|
152
|
+
preview?: boolean | VideoPreviewOptions
|
|
120
153
|
/** 전송 전 변환 진행률 (동영상마다 0~1, 1% 이상 바뀔 때·최소 0.1초 간격) */
|
|
121
154
|
onProgress?: (e: VideoProgressEvent) => void
|
|
122
155
|
/**
|
|
@@ -432,6 +465,23 @@ export interface ViewerVideo {
|
|
|
432
465
|
cacheFile?: string
|
|
433
466
|
width?: number
|
|
434
467
|
height?: number
|
|
468
|
+
/**
|
|
469
|
+
* 초(소수). 이 페이지를 처음 열 때 이 위치부터 재생 (1.2.1). 생략·0 = 처음.
|
|
470
|
+
* 음수이거나 길이 이상이면 처음부터. 열기 애니메이션 동안은 포스터, 영상은 그 위치로 옮긴 뒤에 나타남
|
|
471
|
+
* (처음 장면이 비치지 않음). 다른 페이지로 넘겼다 돌아오면 지금처럼 처음부터. 스트리밍·캐시 파일 모두
|
|
472
|
+
*/
|
|
473
|
+
startTime?: number
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
/** onViewerWillClose 인자 (1.2.1) */
|
|
477
|
+
export interface ViewerWillCloseEvent {
|
|
478
|
+
/** 닫을 때 보고 있던 페이지 */
|
|
479
|
+
currentIndex: number
|
|
480
|
+
/**
|
|
481
|
+
* 동영상 페이지 번호 → 마지막 재생 위치(초, 소수). 이번에 재생한 동영상 페이지만 (사진·열지 않은 페이지는 없음).
|
|
482
|
+
* 끝까지 봤으면 길이. 하나도 없으면 생략
|
|
483
|
+
*/
|
|
484
|
+
videoPositions?: Record<number, number>
|
|
435
485
|
}
|
|
436
486
|
|
|
437
487
|
export interface ViewerOptions {
|
|
@@ -481,7 +531,11 @@ export interface ViewerOptions {
|
|
|
481
531
|
*/
|
|
482
532
|
underlayViewTag?: number
|
|
483
533
|
onPageSelected?: (index: number) => void
|
|
484
|
-
|
|
534
|
+
/**
|
|
535
|
+
* 닫기 시작할 때. 1.2.1 부터 { currentIndex, videoPositions } 를 넘김 — 인자 없이 쓰던 코드도 그대로 동작.
|
|
536
|
+
* (Android 는 useOverlayViewer 뷰어만 videoPositions, 다른 Android 뷰어는 인자 없음)
|
|
537
|
+
*/
|
|
538
|
+
onViewerWillClose?: (e?: ViewerWillCloseEvent) => void
|
|
485
539
|
/**
|
|
486
540
|
* 상단바에 저장/공유/삭제 아이콘 3개를 표시할지 여부. 기본값 true.
|
|
487
541
|
*/
|