Skip to content

Commit 564d0cf

Browse files
committed
Wrap HOC.
1 parent 863ebc7 commit 564d0cf

File tree

3 files changed

+19
-44
lines changed

3 files changed

+19
-44
lines changed
Lines changed: 2 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,4 @@
11
import React from 'react';
2-
import { ImageComponentOptionalProps, ImageComponentProps, ImageComponentState } from './types';
3-
declare class Image extends React.Component<ImageComponentProps, ImageComponentState> {
4-
static defaultProps: ImageComponentOptionalProps;
5-
private _panResponder;
6-
private _translateXY;
7-
private _scale;
8-
private _lastOffset;
9-
private _lastScale;
10-
private _isGestureMoved;
11-
constructor(props: ImageComponentProps);
12-
private _onShouldSetPanResponder;
13-
private _onPanResponderMove;
14-
private _onPanResponderEnd;
15-
private _getMaximumScale;
16-
private _getMinimumScale;
17-
private _handleImageZoomInOut;
18-
private _getRatio;
19-
private _computeMoveBounds;
20-
private _onImageLoadEnd;
21-
private _onPinchEnd;
22-
private _onPinchUpdate;
23-
private _debug;
24-
private _setIsZooming;
25-
private _renderHeader;
26-
private _renderFooter;
27-
private _gestureDoubleTap;
28-
private _gesturePinch;
29-
static getDerivedStateFromProps(nextProps: Readonly<ImageComponentProps>, prevState: Readonly<ImageComponentState>): any;
30-
componentDidMount(): void;
31-
render(): JSX.Element;
32-
}
2+
import { ImageComponentProps } from './types';
3+
declare const Image: React.ComponentType<ImageComponentProps>;
334
export default Image;

demo/components/ImageViewer/Image.js

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,12 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
2424
};
2525
import React from 'react';
2626
import { Animated, Image as RNImage, ActivityIndicator, PanResponder, Dimensions, StyleSheet, View, Text, SafeAreaView, Platform, } from 'react-native';
27-
import { GestureDetector, Gesture, } from 'react-native-gesture-handler';
27+
import { GestureDetector, Gesture, gestureHandlerRootHOC, } from 'react-native-gesture-handler';
2828
var SCREEN_WIDTH = Dimensions.get('window').width;
2929
var SCREEN_HEIGHT = Dimensions.get('window').height;
30-
var Image = /** @class */ (function (_super) {
31-
__extends(Image, _super);
32-
function Image(props) {
30+
var ImageComponent = /** @class */ (function (_super) {
31+
__extends(ImageComponent, _super);
32+
function ImageComponent(props) {
3333
var _this = _super.call(this, props) || this;
3434
_this._scale = new Animated.Value(1);
3535
_this._lastOffset = { x: 0, y: 0 };
@@ -264,10 +264,10 @@ var Image = /** @class */ (function (_super) {
264264
});
265265
return _this;
266266
}
267-
Image.prototype._onShouldSetPanResponder = function (evt) {
267+
ImageComponent.prototype._onShouldSetPanResponder = function (evt) {
268268
return evt.nativeEvent.touches.length === 1;
269269
};
270-
Image.prototype._onPanResponderMove = function (_evt, gesture) {
270+
ImageComponent.prototype._onPanResponderMove = function (_evt, gesture) {
271271
this._debug('_onPanResponderMove', 'dx', gesture.dx, 'dy', gesture.dy, this._lastOffset);
272272
this._isGestureMoved = true;
273273
if (this._lastScale > this._getMinimumScale()) {
@@ -293,7 +293,7 @@ var Image = /** @class */ (function (_super) {
293293
this.props.onZoomStateChange(true);
294294
this._translateXY.setValue({ x: 0, y: Math.max(0, gesture.dy) });
295295
};
296-
Image.prototype._onPanResponderEnd = function (_evt, gesture) {
296+
ImageComponent.prototype._onPanResponderEnd = function (_evt, gesture) {
297297
var _this = this;
298298
if (!this._isGestureMoved) {
299299
return;
@@ -330,7 +330,7 @@ var Image = /** @class */ (function (_super) {
330330
}).start();
331331
}
332332
};
333-
Image.getDerivedStateFromProps = function (nextProps, prevState) {
333+
ImageComponent.getDerivedStateFromProps = function (nextProps, prevState) {
334334
if (prevState.width === null || prevState.height === null) {
335335
var resolveSource = RNImage.resolveAssetSource(nextProps.source);
336336
return {
@@ -340,7 +340,7 @@ var Image = /** @class */ (function (_super) {
340340
}
341341
return null;
342342
};
343-
Image.prototype.componentDidMount = function () {
343+
ImageComponent.prototype.componentDidMount = function () {
344344
var _this = this;
345345
if (!this.state.width || !this.state.height) {
346346
this._debug('Image', 'fetch image size with headers', this.props.source);
@@ -350,7 +350,7 @@ var Image = /** @class */ (function (_super) {
350350
});
351351
}
352352
};
353-
Image.prototype.render = function () {
353+
ImageComponent.prototype.render = function () {
354354
var moveObjStyle = {
355355
position: 'absolute',
356356
transform: __spreadArray(__spreadArray([], this._translateXY.getTranslateTransform(), true), [
@@ -394,13 +394,13 @@ var Image = /** @class */ (function (_super) {
394394
</SafeAreaView>
395395
</View>);
396396
};
397-
Image.defaultProps = {
397+
ImageComponent.defaultProps = {
398398
initialWidth: 200,
399399
initialHeight: 200,
400400
debug: false,
401401
renderFooter: undefined,
402402
};
403-
return Image;
403+
return ImageComponent;
404404
}(React.Component));
405405
var styles = StyleSheet.create({
406406
container: {
@@ -433,4 +433,5 @@ var styles = StyleSheet.create({
433433
borderRadius: 10,
434434
},
435435
});
436+
var Image = gestureHandlerRootHOC(function (props) { return <ImageComponent {...props}/>; });
436437
export default Image;

src/Image.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,14 @@ import {
1818
GestureDetector,
1919
Gesture,
2020
GestureStateChangeEvent,
21+
gestureHandlerRootHOC,
2122
} from 'react-native-gesture-handler';
2223
import {ImageComponentOptionalProps, ImageComponentProps, ImageComponentState} from './types';
2324

2425
const SCREEN_WIDTH = Dimensions.get('window').width;
2526
const SCREEN_HEIGHT = Dimensions.get('window').height;
2627

27-
class Image extends React.Component<ImageComponentProps, ImageComponentState> {
28+
class ImageComponent extends React.Component<ImageComponentProps, ImageComponentState> {
2829
static defaultProps: ImageComponentOptionalProps = {
2930
initialWidth: 200,
3031
initialHeight: 200,
@@ -494,4 +495,6 @@ const styles = StyleSheet.create({
494495
},
495496
});
496497

498+
const Image = gestureHandlerRootHOC((props: ImageComponentProps) => <ImageComponent {...props} />);
499+
497500
export default Image;

0 commit comments

Comments
 (0)