Skip to content

Commit acb3fc9

Browse files
committed
#1 - expose thumbWidth prop to react native
1 parent 84471c6 commit acb3fc9

3 files changed

Lines changed: 38 additions & 21 deletions

File tree

ios/RNVideoProcessing/RNTrimmerView/RNTrimmerView.swift

Lines changed: 32 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import AVKit
88

99
@objc(RNTrimmerView)
1010
class RNTrimmerView: RCTView, ICGVideoTrimmerDelegate {
11-
11+
1212
var trimmerView: ICGVideoTrimmerView?
1313
var asset: AVAsset!
1414
var rect: CGRect = CGRect.zero
@@ -18,18 +18,19 @@ class RNTrimmerView: RCTView, ICGVideoTrimmerDelegate {
1818
var onTrackerMove: RCTBubblingEventBlock?
1919
var _minLength: CGFloat? = nil
2020
var _maxLength: CGFloat? = nil
21+
var _thumbWidth: CGFloat? = nil
2122
var _trackerColor: UIColor = UIColor.clear
22-
23+
2324
var source: NSString? {
2425
set {
2526
setSource(source: newValue)
2627
}
2728
get {
28-
29+
2930
return nil
3031
}
3132
}
32-
33+
3334
var height: NSNumber? {
3435
set {
3536
self.rect.size.height = RCTConvert.cgFloat(newValue)
@@ -39,7 +40,7 @@ class RNTrimmerView: RCTView, ICGVideoTrimmerDelegate {
3940
return nil
4041
}
4142
}
42-
43+
4344
var width: NSNumber? {
4445
set {
4546
self.rect.size.width = RCTConvert.cgFloat(newValue)
@@ -49,7 +50,7 @@ class RNTrimmerView: RCTView, ICGVideoTrimmerDelegate {
4950
return nil
5051
}
5152
}
52-
53+
5354
var themeColor: NSString? {
5455
set {
5556
if newValue != nil {
@@ -62,7 +63,7 @@ class RNTrimmerView: RCTView, ICGVideoTrimmerDelegate {
6263
return nil
6364
}
6465
}
65-
66+
6667
var maxLength: NSNumber? {
6768
set {
6869
if newValue != nil {
@@ -74,7 +75,7 @@ class RNTrimmerView: RCTView, ICGVideoTrimmerDelegate {
7475
return nil
7576
}
7677
}
77-
78+
7879
var minLength: NSNumber? {
7980
set {
8081
if newValue != nil {
@@ -86,7 +87,19 @@ class RNTrimmerView: RCTView, ICGVideoTrimmerDelegate {
8687
return nil
8788
}
8889
}
89-
90+
91+
var thumbWidth: NSNumber? {
92+
set {
93+
if newValue != nil {
94+
self._thumbWidth = RCTConvert.cgFloat(newValue!)
95+
self.updateView()
96+
}
97+
}
98+
get {
99+
return nil
100+
}
101+
}
102+
90103
var currentTime: NSNumber? {
91104
set {
92105
print("CHANGED: [TrimmerView]: currentTime: \(newValue)")
@@ -100,7 +113,7 @@ class RNTrimmerView: RCTView, ICGVideoTrimmerDelegate {
100113
return nil
101114
}
102115
}
103-
116+
104117
var trackerColor: NSString? {
105118
set {
106119
if newValue == nil {
@@ -120,7 +133,7 @@ class RNTrimmerView: RCTView, ICGVideoTrimmerDelegate {
120133
return nil
121134
}
122135
}
123-
136+
124137
func updateView() {
125138
self.frame = rect
126139
if trimmerView != nil {
@@ -135,16 +148,16 @@ class RNTrimmerView: RCTView, ICGVideoTrimmerDelegate {
135148
// Timer.scheduledTimer(timeInterval: 0.5, target: self, selector: #selector(self.updateTrimmer), userInfo: nil, repeats: false)
136149
}
137150
}
138-
151+
139152
func updateTrimmer() {
140153
self.trimmerView!.resetSubviews()
141154
}
142-
155+
143156
func setSource(source: NSString?) {
144157
if source != nil {
145158
let pathToSource = NSURL(string: source! as String)
146159
self.asset = AVURLAsset(url: pathToSource as! URL, options: nil)
147-
160+
148161
trimmerView = ICGVideoTrimmerView(frame: rect, asset: self.asset)
149162
trimmerView!.showsRulerView = false
150163
trimmerView!.hideTracker(false)
@@ -154,27 +167,27 @@ class RNTrimmerView: RCTView, ICGVideoTrimmerDelegate {
154167
self.updateView()
155168
}
156169
}
157-
170+
158171
init(frame: CGRect, bridge: RCTBridge) {
159172
super.init(frame: frame)
160173
self.bridge = bridge
161174
}
162-
175+
163176
required init?(coder aDecoder: NSCoder) {
164177
fatalError("init(coder:) has not been implemented")
165178
}
166-
179+
167180
func onTrimmerPositionChange(startTime: CGFloat, endTime: CGFloat) {
168181
if self.onChange != nil {
169182
let event = ["startTime": startTime, "endTime": endTime]
170183
self.onChange!(event)
171184
}
172185
}
173-
186+
174187
func trimmerView(_ trimmerView: ICGVideoTrimmerView, didChangeLeftPosition startTime: CGFloat, rightPosition endTime: CGFloat) {
175188
onTrimmerPositionChange(startTime: startTime, endTime: endTime)
176189
}
177-
190+
178191
public func trimmerView(_ trimmerView: ICGVideoTrimmerView, currentPosition currentTime: CGFloat) {
179192
print("current", currentTime)
180193
if onTrackerMove == nil {

ios/RNVideoProcessing/RNTrimmerView/RNTrimmerViewBridge.m

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,6 @@ @interface RCT_EXTERN_MODULE(RNTrimmerViewManager, RCTViewManager)
2020
RCT_EXPORT_VIEW_PROPERTY(maxLength, NSNumber)
2121
RCT_EXPORT_VIEW_PROPERTY(currentTime, NSNumber)
2222
RCT_EXPORT_VIEW_PROPERTY(trackerColor, NSString)
23+
RCT_EXPORT_VIEW_PROPERTY(thumbWidth, NSString)
2324

2425
@end

lib/Trimmer/Trimmer.ios.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ export class Trimmer extends Component {
1414
minLength: PropTypes.number,
1515
maxLength: PropTypes.number,
1616
currentTime: PropTypes.number,
17-
trackerColor: PropTypes.string
17+
trackerColor: PropTypes.string,
18+
thumbWidth: PropTypes.number
1819
};
1920

2021
static defaultProps = {
@@ -53,7 +54,8 @@ export class Trimmer extends Component {
5354
minLength,
5455
maxLength,
5556
currentTime,
56-
trackerColor
57+
trackerColor,
58+
thumbWidth,
5759
} = this.props;
5860
const actualSource = getActualSource(source);
5961
return (
@@ -69,6 +71,7 @@ export class Trimmer extends Component {
6971
onChange={this._onChange}
7072
minLength={minLength}
7173
maxLength={maxLength}
74+
thumbWidth={thumbWidth}
7275
/>
7376
);
7477
}

0 commit comments

Comments
 (0)