react-native-fast-image 8.6.22 → 8.6.24
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.
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
package com.dylanvann.fastimage;
|
|
2
2
|
|
|
3
3
|
import static com.dylanvann.fastimage.FastImageRequestListener.REACT_ON_ERROR_EVENT;
|
|
4
|
+
import static com.dylanvann.fastimage.FastImageRequestListener.REACT_ON_LOAD_END_EVENT;
|
|
4
5
|
|
|
5
6
|
import android.annotation.SuppressLint;
|
|
6
7
|
import android.content.Context;
|
|
@@ -55,8 +56,8 @@ class FastImageViewWithUrl extends AppCompatImageView {
|
|
|
55
56
|
if (!mNeedsReload)
|
|
56
57
|
return;
|
|
57
58
|
|
|
58
|
-
|
|
59
|
-
|
|
59
|
+
// Nothing to show.
|
|
60
|
+
if (mSource == null && mDefaultSource == null) {
|
|
60
61
|
// Cancel existing requests.
|
|
61
62
|
clearView(requestManager);
|
|
62
63
|
|
|
@@ -70,9 +71,14 @@ class FastImageViewWithUrl extends AppCompatImageView {
|
|
|
70
71
|
}
|
|
71
72
|
|
|
72
73
|
//final GlideUrl glideUrl = FastImageViewConverter.getGlideUrl(view.getContext(), mSource);
|
|
73
|
-
final FastImageSource imageSource = FastImageViewConverter.
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
final FastImageSource imageSource = FastImageViewConverter.hasUri(mSource)
|
|
75
|
+
? FastImageViewConverter.getImageSource(getContext(), mSource)
|
|
76
|
+
: null;
|
|
77
|
+
|
|
78
|
+
// A source without a uri (empty, missing or null), or one that can't be
|
|
79
|
+
// resolved: fire onError and onLoadEnd and show defaultSource, as on iOS
|
|
80
|
+
// (#1028, #945).
|
|
81
|
+
if (mSource != null && (imageSource == null || imageSource.getUri().toString().length() == 0)) {
|
|
76
82
|
ReactContext context = FastImageViewManager.getReactContext(getContext());
|
|
77
83
|
if (context != null) {
|
|
78
84
|
RCTEventEmitter eventEmitter = context.getJSModule(RCTEventEmitter.class);
|
|
@@ -80,6 +86,7 @@ class FastImageViewWithUrl extends AppCompatImageView {
|
|
|
80
86
|
WritableMap event = new WritableNativeMap();
|
|
81
87
|
event.putString("message", "Invalid source prop:" + mSource);
|
|
82
88
|
eventEmitter.receiveEvent(viewId, REACT_ON_ERROR_EVENT, event);
|
|
89
|
+
eventEmitter.receiveEvent(viewId, REACT_ON_LOAD_END_EVENT, new WritableNativeMap());
|
|
83
90
|
}
|
|
84
91
|
|
|
85
92
|
// Cancel existing requests.
|
|
@@ -88,8 +95,7 @@ class FastImageViewWithUrl extends AppCompatImageView {
|
|
|
88
95
|
if (glideUrl != null) {
|
|
89
96
|
FastImageOkHttpProgressGlideModule.forget(glideUrl.toStringUrl());
|
|
90
97
|
}
|
|
91
|
-
|
|
92
|
-
setImageDrawable(null);
|
|
98
|
+
setImageDrawable(mDefaultSource);
|
|
93
99
|
return;
|
|
94
100
|
}
|
|
95
101
|
|
package/dist/index.cjs.js
CHANGED
|
@@ -93,6 +93,9 @@ function FastImageBase({
|
|
|
93
93
|
// On the wrapper, so the layout is relative to the parent (the image view
|
|
94
94
|
// inside always has x and y of 0).
|
|
95
95
|
onLayout,
|
|
96
|
+
// On the wrapper, which would otherwise still take touches. With
|
|
97
|
+
// 'box-none' the image is part of the box, so it ignores touches too.
|
|
98
|
+
pointerEvents,
|
|
96
99
|
...viewProps
|
|
97
100
|
}) {
|
|
98
101
|
// Touchables pass onClick to their child (React Native 0.73+, for
|
|
@@ -105,7 +108,11 @@ function FastImageBase({
|
|
|
105
108
|
} = viewProps;
|
|
106
109
|
const wrapperProps = {
|
|
107
110
|
onLayout,
|
|
108
|
-
onClick
|
|
111
|
+
onClick,
|
|
112
|
+
pointerEvents
|
|
113
|
+
};
|
|
114
|
+
const imageProps = { ...props,
|
|
115
|
+
pointerEvents: pointerEvents === 'box-none' ? 'none' : undefined
|
|
109
116
|
}; // tintColor can also be set in style, as with React Native's Image. The
|
|
110
117
|
// prop wins.
|
|
111
118
|
|
|
@@ -122,7 +129,7 @@ function FastImageBase({
|
|
|
122
129
|
style: [styles.imageContainer, style]
|
|
123
130
|
}, wrapperProps, {
|
|
124
131
|
ref: forwardedRef
|
|
125
|
-
}), /*#__PURE__*/React__default['default'].createElement(reactNative.Image, _extends__default['default']({},
|
|
132
|
+
}), /*#__PURE__*/React__default['default'].createElement(reactNative.Image, _extends__default['default']({}, imageProps, {
|
|
126
133
|
style: [styles.fallbackImage, {
|
|
127
134
|
tintColor: resolvedTintColor
|
|
128
135
|
}],
|
|
@@ -143,7 +150,7 @@ function FastImageBase({
|
|
|
143
150
|
style: [styles.imageContainer, style]
|
|
144
151
|
}, wrapperProps, {
|
|
145
152
|
ref: forwardedRef
|
|
146
|
-
}), /*#__PURE__*/React__default['default'].createElement(FastImageView, _extends__default['default']({},
|
|
153
|
+
}), /*#__PURE__*/React__default['default'].createElement(FastImageView, _extends__default['default']({}, imageProps, {
|
|
147
154
|
tintColor: resolvedTintColor,
|
|
148
155
|
style: reactNative.StyleSheet.absoluteFill,
|
|
149
156
|
source: resolvedSource,
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAA;AAC/C,OAAO,EAMH,iBAAiB,EACjB,SAAS,EACT,SAAS,EACT,kBAAkB,EAElB,kBAAkB,EAClB,SAAS,EACZ,MAAM,cAAc,CAAA;AAKrB,aAAK,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAE3D,oBAAY,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAA;AAEnE,QAAA,MAAM,UAAU;;;;;CAKN,CAAA;AAEV,oBAAY,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAA;AAEhD,QAAA,MAAM,QAAQ;;;;CAIJ,CAAA;AAEV,oBAAY,KAAK,GAAG,WAAW,GAAG,KAAK,GAAG,WAAW,CAAA;AAErD,QAAA,MAAM,YAAY;;;;CAOR,CAAA;AAEV,oBAAY,MAAM,GAAG;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;IACnC,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,KAAK,CAAC,EAAE,KAAK,CAAA;CAChB,CAAA;AAED,MAAM,WAAW,WAAW;IACxB,WAAW,EAAE;QACT,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,EAAE,MAAM,CAAA;QAGd,MAAM,CAAC,EAAE,MAAM,CAAA;KAClB,CAAA;CACJ;AAED,MAAM,WAAW,eAAe;IAC5B,WAAW,EAAE;QACT,MAAM,EAAE,MAAM,CAAA;QACd,KAAK,EAAE,MAAM,CAAA;KAChB,CAAA;CACJ;AAID,MAAM,WAAW,UAAW,SAAQ,SAAS;IACzC,kBAAkB,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAA;IACzC,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,eAAe,CAAC,EAAE,UAAU,CAAA;IAC5B,WAAW,CAAC,EAAE,UAAU,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,YAAY,CAAC,EAAE,UAAU,CAAA;IACzB,SAAS,CAAC,EAAE,UAAU,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,cAAe,SAAQ,kBAAkB,EAAE,SAAS;IACjE,MAAM,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAAA;IACpC,aAAa,CAAC,EAAE,kBAAkB,CAAA;IAClC,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB,WAAW,CAAC,IAAI,IAAI,CAAA;IAEpB,UAAU,CAAC,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAAA;IAEzC,MAAM,CAAC,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAA;IAEjC,OAAO,CAAC,IAAI,IAAI,CAAA;IAEhB,SAAS,CAAC,IAAI,IAAI,CAAA;IAElB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAA;IAE7C;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAA;IAE7B;;;;OAIG;IAEH,SAAS,CAAC,EAAE,UAAU,CAAA;IAEtB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC7B;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -86,6 +86,9 @@ function FastImageBase({
|
|
|
86
86
|
// On the wrapper, so the layout is relative to the parent (the image view
|
|
87
87
|
// inside always has x and y of 0).
|
|
88
88
|
onLayout,
|
|
89
|
+
// On the wrapper, which would otherwise still take touches. With
|
|
90
|
+
// 'box-none' the image is part of the box, so it ignores touches too.
|
|
91
|
+
pointerEvents,
|
|
89
92
|
...viewProps
|
|
90
93
|
}) {
|
|
91
94
|
// Touchables pass onClick to their child (React Native 0.73+, for
|
|
@@ -98,7 +101,11 @@ function FastImageBase({
|
|
|
98
101
|
} = viewProps;
|
|
99
102
|
const wrapperProps = {
|
|
100
103
|
onLayout,
|
|
101
|
-
onClick
|
|
104
|
+
onClick,
|
|
105
|
+
pointerEvents
|
|
106
|
+
};
|
|
107
|
+
const imageProps = { ...props,
|
|
108
|
+
pointerEvents: pointerEvents === 'box-none' ? 'none' : undefined
|
|
102
109
|
}; // tintColor can also be set in style, as with React Native's Image. The
|
|
103
110
|
// prop wins.
|
|
104
111
|
|
|
@@ -115,7 +122,7 @@ function FastImageBase({
|
|
|
115
122
|
style: [styles.imageContainer, style]
|
|
116
123
|
}, wrapperProps, {
|
|
117
124
|
ref: forwardedRef
|
|
118
|
-
}), /*#__PURE__*/React.createElement(Image, _extends({},
|
|
125
|
+
}), /*#__PURE__*/React.createElement(Image, _extends({}, imageProps, {
|
|
119
126
|
style: [styles.fallbackImage, {
|
|
120
127
|
tintColor: resolvedTintColor
|
|
121
128
|
}],
|
|
@@ -136,7 +143,7 @@ function FastImageBase({
|
|
|
136
143
|
style: [styles.imageContainer, style]
|
|
137
144
|
}, wrapperProps, {
|
|
138
145
|
ref: forwardedRef
|
|
139
|
-
}), /*#__PURE__*/React.createElement(FastImageView, _extends({},
|
|
146
|
+
}), /*#__PURE__*/React.createElement(FastImageView, _extends({}, imageProps, {
|
|
140
147
|
tintColor: resolvedTintColor,
|
|
141
148
|
style: StyleSheet.absoluteFill,
|
|
142
149
|
source: resolvedSource,
|