Skip to content

Commit fe53aac

Browse files
authored
Avoid rendering SkeletonView when deps are missing and add appropriate warnings to the user (#1495)
1 parent a5672bb commit fe53aac

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

src/components/skeletonView/index.tsx

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {extractAccessibilityProps} from '../../commons/modifiers';
1010

1111
const LinearGradient = LinearGradientPackage?.default;
1212

13-
const ShimmerPlaceholder = createShimmerPlaceholder(LinearGradient);
13+
let ShimmerPlaceholder: any;
1414

1515
const ANIMATION_DURATION = 400;
1616

@@ -134,6 +134,14 @@ class SkeletonView extends Component<SkeletonViewProps, SkeletonState> {
134134
isAnimating: !_.isUndefined(props.showContent),
135135
opacity: new Animated.Value(0)
136136
};
137+
138+
if (_.isUndefined(LinearGradientPackage?.default)) {
139+
console.error(`RNUILib SkeletonView's requires installing "react-native-linear-gradient" dependency`);
140+
} else if (_.isUndefined(createShimmerPlaceholder)) {
141+
console.error(`RNUILib SkeletonView's requires installing "react-native-shimmer-placeholder" dependency`);
142+
} else {
143+
ShimmerPlaceholder = createShimmerPlaceholder(LinearGradient);
144+
}
137145
}
138146

139147
componentDidMount() {
@@ -326,6 +334,10 @@ class SkeletonView extends Component<SkeletonViewProps, SkeletonState> {
326334
renderNothing = () => null;
327335

328336
render() {
337+
if (_.isUndefined(LinearGradientPackage?.default) || _.isUndefined(createShimmerPlaceholder)) {
338+
return null;
339+
}
340+
329341
const {times, timesKey, showLastSeparator, hideSeparator, renderContent, testID} = this.props;
330342

331343
if (times) {

0 commit comments

Comments
 (0)