react-native-ui-lib 7.43.0-snapshot.7190 → 7.43.0-snapshot.7192
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/lib/package.json +1 -1
- package/package.json +6 -5
- package/src/components/marquee/types.js +1 -4
- package/src/components/skeletonView/index.d.ts +25 -4
- package/src/components/skeletonView/index.js +13 -9
- package/src/components/skeletonView/skeletonView.api.json +2 -2
- package/src/components/textField/types.js +0 -1
- package/src/components/timeline/types.js +0 -3
- package/src/index.js +2 -1
- package/src/optionalDependencies/LinearGradientPackage.js +1 -1
- package/src/optionalDependencies/ShimmerPackage.d.ts +2 -0
- package/src/optionalDependencies/ShimmerPackage.js +5 -0
- package/src/optionalDependencies/index.d.ts +1 -0
- package/src/optionalDependencies/index.js +1 -0
- package/src/optionalDependencies/index.web.d.ts +1 -0
- package/src/optionalDependencies/index.web.js +1 -0
- package/src/components/skeletonView/ShimmerPlaceholder.d.ts +0 -27
- package/src/components/skeletonView/ShimmerPlaceholder.js +0 -68
package/lib/package.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-ui-lib",
|
|
3
|
-
"version": "7.43.0-snapshot.
|
|
3
|
+
"version": "7.43.0-snapshot.7192",
|
|
4
4
|
"main": "src/index.js",
|
|
5
5
|
"types": "src/index.d.ts",
|
|
6
6
|
"author": "Ethan Sharabi <ethan.shar@gmail.com>",
|
|
@@ -117,11 +117,12 @@
|
|
|
117
117
|
"react-native": "0.77.2",
|
|
118
118
|
"react-native-fs": "^2.20.0",
|
|
119
119
|
"react-native-gesture-handler": "2.22.1",
|
|
120
|
-
"react-native-gradients": "2.1.1",
|
|
121
120
|
"react-native-haptic-feedback": "^1.11.0",
|
|
121
|
+
"react-native-linear-gradient": "3.0.0-alpha.1",
|
|
122
122
|
"react-native-mmkv": "3.2.0",
|
|
123
123
|
"react-native-navigation": "8.1.0-rc02",
|
|
124
124
|
"react-native-reanimated": "3.16.7",
|
|
125
|
+
"react-native-shimmer-placeholder": "^2.0.6",
|
|
125
126
|
"react-native-svg": "15.11.2",
|
|
126
127
|
"react-native-svg-transformer": "1.5.0",
|
|
127
128
|
"react-test-renderer": "18.3.1",
|
|
@@ -130,9 +131,6 @@
|
|
|
130
131
|
"shell-utils": "^1.0.10",
|
|
131
132
|
"typescript": "5.0.4"
|
|
132
133
|
},
|
|
133
|
-
"resolutions": {
|
|
134
|
-
"react-native-svg": "15.11.2"
|
|
135
|
-
},
|
|
136
134
|
"peerDependencies": {
|
|
137
135
|
"react": ">=17.0.1",
|
|
138
136
|
"react-native": ">=0.76.0",
|
|
@@ -162,6 +160,9 @@
|
|
|
162
160
|
"legacyFakeTimers": true
|
|
163
161
|
}
|
|
164
162
|
},
|
|
163
|
+
"resolutions": {
|
|
164
|
+
"react-native-linear-gradient": "patch:react-native-linear-gradient@npm%3A3.0.0-alpha.1#./.yarn/patches/react-native-linear-gradient-3.0.0-alpha.1.patch"
|
|
165
|
+
},
|
|
165
166
|
"engines": {
|
|
166
167
|
"node": ">=18"
|
|
167
168
|
},
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
export let MarqueeDirections = /*#__PURE__*/function (MarqueeDirections) {
|
|
2
2
|
MarqueeDirections["RIGHT"] = "RIGHT";
|
|
3
|
-
//LTR
|
|
4
3
|
MarqueeDirections["LEFT"] = "LEFT";
|
|
5
|
-
//RTL
|
|
6
4
|
MarqueeDirections["UP"] = "UP";
|
|
7
|
-
|
|
8
|
-
MarqueeDirections["DOWN"] = "DOWN"; //Up To Bottom
|
|
5
|
+
MarqueeDirections["DOWN"] = "DOWN";
|
|
9
6
|
return MarqueeDirections;
|
|
10
7
|
}({});
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React, { Component } from 'react';
|
|
2
2
|
import { Animated, StyleProp, ViewStyle, AccessibilityProps } from 'react-native';
|
|
3
|
-
import { ShimmerPlaceholderProps } from './ShimmerPlaceholder';
|
|
4
3
|
import { AlignmentModifiers, PaddingModifiers, MarginModifiers } from '../../commons/new';
|
|
5
4
|
export declare enum Template {
|
|
6
5
|
LIST_ITEM = "listItem",
|
|
@@ -38,7 +37,7 @@ export interface SkeletonListProps {
|
|
|
38
37
|
*/
|
|
39
38
|
renderEndContent?: () => React.ReactElement | undefined;
|
|
40
39
|
}
|
|
41
|
-
export interface SkeletonViewProps extends
|
|
40
|
+
export interface SkeletonViewProps extends AccessibilityProps, AlignmentModifiers, PaddingModifiers, MarginModifiers {
|
|
42
41
|
/**
|
|
43
42
|
* The content has been loaded, start fading out the skeleton and fading in the content
|
|
44
43
|
*/
|
|
@@ -73,6 +72,19 @@ export interface SkeletonViewProps extends ShimmerPlaceholderProps, Accessibilit
|
|
|
73
72
|
* This is needed because the `key` prop is not accessible.
|
|
74
73
|
*/
|
|
75
74
|
timesKey?: string;
|
|
75
|
+
/**
|
|
76
|
+
* The height of the skeleton view
|
|
77
|
+
*/
|
|
78
|
+
height?: number;
|
|
79
|
+
/**
|
|
80
|
+
* The width of the skeleton view
|
|
81
|
+
*/
|
|
82
|
+
width?: number;
|
|
83
|
+
/**
|
|
84
|
+
* The colors of the skeleton view, the array length has to be >=2
|
|
85
|
+
* default: [Colors.grey70, Colors.grey60, Colors.grey70]
|
|
86
|
+
*/
|
|
87
|
+
colors?: string[];
|
|
76
88
|
/**
|
|
77
89
|
* The border radius of the skeleton view
|
|
78
90
|
*/
|
|
@@ -81,6 +93,14 @@ export interface SkeletonViewProps extends ShimmerPlaceholderProps, Accessibilit
|
|
|
81
93
|
* Whether the skeleton is a circle (will override the borderRadius)
|
|
82
94
|
*/
|
|
83
95
|
circle?: boolean;
|
|
96
|
+
/**
|
|
97
|
+
* Additional style to the skeleton view
|
|
98
|
+
*/
|
|
99
|
+
shimmerStyle?: StyleProp<ViewStyle>;
|
|
100
|
+
/**
|
|
101
|
+
* Override container styles
|
|
102
|
+
*/
|
|
103
|
+
style?: StyleProp<ViewStyle>;
|
|
84
104
|
/**
|
|
85
105
|
* Used to locate this view in end-to-end tests
|
|
86
106
|
*/
|
|
@@ -95,7 +115,7 @@ interface SkeletonState {
|
|
|
95
115
|
* @description: Allows showing a temporary skeleton view while your real view is loading.
|
|
96
116
|
* @example: https://github.com/wix/react-native-ui-lib/blob/master/demo/src/screens/componentScreens/SkeletonViewScreen.tsx
|
|
97
117
|
* @image: https://github.com/wix/react-native-ui-lib/blob/master/demo/showcase/Skeleton/Skeleton.gif?raw=true
|
|
98
|
-
* @notes: View requires installing the 'react-native-
|
|
118
|
+
* @notes: View requires installing the 'react-native-shimmer-placeholder' and 'react-native-linear-gradient' library
|
|
99
119
|
*/
|
|
100
120
|
declare class SkeletonView extends Component<SkeletonViewProps, SkeletonState> {
|
|
101
121
|
static displayName: string;
|
|
@@ -119,7 +139,8 @@ declare class SkeletonView extends Component<SkeletonViewProps, SkeletonState> {
|
|
|
119
139
|
circleOverride: boolean;
|
|
120
140
|
style: StyleProp<ViewStyle>;
|
|
121
141
|
}) => {
|
|
122
|
-
|
|
142
|
+
shimmerColors: string[];
|
|
143
|
+
isReversed: boolean;
|
|
123
144
|
style: StyleProp<ViewStyle>[];
|
|
124
145
|
width: number | undefined;
|
|
125
146
|
height: number;
|
|
@@ -5,11 +5,12 @@ import _isUndefined from "lodash/isUndefined";
|
|
|
5
5
|
import React, { Component } from 'react';
|
|
6
6
|
import { StyleSheet, Animated, Easing } from 'react-native';
|
|
7
7
|
import memoize from 'memoize-one';
|
|
8
|
-
import {
|
|
9
|
-
import
|
|
10
|
-
import { BorderRadiuses, Dividers, Spacings } from "../../style";
|
|
8
|
+
import { BorderRadiuses, Colors, Dividers, Spacings } from "../../style";
|
|
9
|
+
import { createShimmerPlaceholder, LinearGradientPackage } from "../../optionalDependencies";
|
|
11
10
|
import View from "../view";
|
|
11
|
+
import { Constants } from "../../commons/new";
|
|
12
12
|
import { LogService } from "../../services";
|
|
13
|
+
const LinearGradient = LinearGradientPackage?.default;
|
|
13
14
|
let ShimmerPlaceholder;
|
|
14
15
|
const ANIMATION_DURATION = 400;
|
|
15
16
|
export let Template = /*#__PURE__*/function (Template) {
|
|
@@ -31,7 +32,7 @@ export let ContentType = /*#__PURE__*/function (ContentType) {
|
|
|
31
32
|
* @description: Allows showing a temporary skeleton view while your real view is loading.
|
|
32
33
|
* @example: https://github.com/wix/react-native-ui-lib/blob/master/demo/src/screens/componentScreens/SkeletonViewScreen.tsx
|
|
33
34
|
* @image: https://github.com/wix/react-native-ui-lib/blob/master/demo/showcase/Skeleton/Skeleton.gif?raw=true
|
|
34
|
-
* @notes: View requires installing the 'react-native-
|
|
35
|
+
* @notes: View requires installing the 'react-native-shimmer-placeholder' and 'react-native-linear-gradient' library
|
|
35
36
|
*/
|
|
36
37
|
class SkeletonView extends Component {
|
|
37
38
|
static displayName = 'SkeletonView';
|
|
@@ -61,10 +62,12 @@ class SkeletonView extends Component {
|
|
|
61
62
|
isAnimating: props.showContent === false,
|
|
62
63
|
opacity: new Animated.Value(0)
|
|
63
64
|
};
|
|
64
|
-
if (_isUndefined(LinearGradientPackage)) {
|
|
65
|
-
LogService.error(`RNUILib SkeletonView's requires installing "react-native-
|
|
65
|
+
if (_isUndefined(LinearGradientPackage?.default)) {
|
|
66
|
+
LogService.error(`RNUILib SkeletonView's requires installing "react-native-linear-gradient" dependency`);
|
|
67
|
+
} else if (_isUndefined(createShimmerPlaceholder)) {
|
|
68
|
+
LogService.error(`RNUILib SkeletonView's requires installing "react-native-shimmer-placeholder" dependency`);
|
|
66
69
|
} else if (ShimmerPlaceholder === undefined) {
|
|
67
|
-
ShimmerPlaceholder =
|
|
70
|
+
ShimmerPlaceholder = createShimmerPlaceholder(LinearGradient);
|
|
68
71
|
}
|
|
69
72
|
this.setAccessibilityProps(props.template);
|
|
70
73
|
}
|
|
@@ -115,7 +118,8 @@ class SkeletonView extends Component {
|
|
|
115
118
|
size = Math.max(width || 0, height);
|
|
116
119
|
}
|
|
117
120
|
return {
|
|
118
|
-
colors,
|
|
121
|
+
shimmerColors: colors || [Colors.$backgroundNeutral, Colors.$backgroundNeutralMedium, Colors.$backgroundNeutral],
|
|
122
|
+
isReversed: Constants.isRTL,
|
|
119
123
|
style: [{
|
|
120
124
|
borderRadius
|
|
121
125
|
}, style],
|
|
@@ -261,7 +265,7 @@ class SkeletonView extends Component {
|
|
|
261
265
|
}
|
|
262
266
|
renderNothing = () => null;
|
|
263
267
|
render() {
|
|
264
|
-
if (LinearGradientPackage
|
|
268
|
+
if (_isUndefined(LinearGradientPackage?.default) || _isUndefined(createShimmerPlaceholder)) {
|
|
265
269
|
return null;
|
|
266
270
|
}
|
|
267
271
|
const {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"category": "status",
|
|
4
4
|
"description": "Allows showing a temporary skeleton view while your real view is loading",
|
|
5
5
|
"modifiers": ["margin"],
|
|
6
|
-
"note": "Requires installing the 'react-native-
|
|
6
|
+
"note": "Requires installing the 'react-native-shimmer-placeholder' and 'react-native-linear-gradient' libraries",
|
|
7
7
|
"example": "https://github.com/wix/react-native-ui-lib/blob/master/demo/src/screens/componentScreens/SkeletonViewScreen.tsx",
|
|
8
8
|
"images": ["https://github.com/wix/react-native-ui-lib/blob/master/demo/showcase/Skeleton/Skeleton.gif?raw=true"],
|
|
9
9
|
"props": [
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
{
|
|
41
41
|
"name": "colors",
|
|
42
42
|
"type": "string[]",
|
|
43
|
-
"description": "The colors of the skeleton view, the array length has to be
|
|
43
|
+
"description": "The colors of the skeleton view, the array length has to be >=2",
|
|
44
44
|
"default": "[Colors.grey70, Colors.grey60, Colors.grey70]"
|
|
45
45
|
},
|
|
46
46
|
{"name": "borderRadius", "type": "number", "description": "The border radius of the skeleton view"},
|
|
@@ -5,7 +5,6 @@ export let ValidationMessagePosition = /*#__PURE__*/function (ValidationMessageP
|
|
|
5
5
|
}({});
|
|
6
6
|
export let Presets = /*#__PURE__*/function (Presets) {
|
|
7
7
|
Presets["DEFAULT"] = "default";
|
|
8
|
-
// TODO: remove
|
|
9
8
|
Presets["UNDERLINE"] = "underline";
|
|
10
9
|
Presets["OUTLINE"] = "outline";
|
|
11
10
|
return Presets;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export let StateTypes = /*#__PURE__*/function (StateTypes) {
|
|
2
2
|
StateTypes["CURRENT"] = "current";
|
|
3
|
-
// default
|
|
4
3
|
StateTypes["NEXT"] = "next";
|
|
5
4
|
StateTypes["ERROR"] = "error";
|
|
6
5
|
StateTypes["SUCCESS"] = "success";
|
|
@@ -8,13 +7,11 @@ export let StateTypes = /*#__PURE__*/function (StateTypes) {
|
|
|
8
7
|
}({});
|
|
9
8
|
export let LineTypes = /*#__PURE__*/function (LineTypes) {
|
|
10
9
|
LineTypes["SOLID"] = "solid";
|
|
11
|
-
// default
|
|
12
10
|
LineTypes["DASHED"] = "dashed";
|
|
13
11
|
return LineTypes;
|
|
14
12
|
}({});
|
|
15
13
|
export let PointTypes = /*#__PURE__*/function (PointTypes) {
|
|
16
14
|
PointTypes["BULLET"] = "bullet";
|
|
17
|
-
// default
|
|
18
15
|
PointTypes["CIRCLE"] = "circle";
|
|
19
16
|
PointTypes["OUTLINE"] = "outline";
|
|
20
17
|
return PointTypes;
|
package/src/index.js
CHANGED
|
@@ -2249,5 +2249,6 @@ function _WheelPicker() {
|
|
|
2249
2249
|
};
|
|
2250
2250
|
return data;
|
|
2251
2251
|
}
|
|
2252
|
-
function
|
|
2252
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
2253
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
2253
2254
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -5,4 +5,5 @@ export { default as MomentPackage } from './MomentPackage';
|
|
|
5
5
|
export { default as NetInfoPackage } from './NetInfoPackage';
|
|
6
6
|
export { default as HapticFeedbackPackage } from './HapticFeedbackPackage';
|
|
7
7
|
export { default as SvgPackage, SvgCssUri } from './SvgPackage';
|
|
8
|
+
export { createShimmerPlaceholder } from './ShimmerPackage';
|
|
8
9
|
export { default as LinearGradientPackage } from './LinearGradientPackage';
|
|
@@ -5,4 +5,5 @@ export { default as MomentPackage } from "./MomentPackage";
|
|
|
5
5
|
export { default as NetInfoPackage } from "./NetInfoPackage";
|
|
6
6
|
export { default as HapticFeedbackPackage } from "./HapticFeedbackPackage";
|
|
7
7
|
export { default as SvgPackage, SvgCssUri } from "./SvgPackage";
|
|
8
|
+
export { createShimmerPlaceholder } from "./ShimmerPackage";
|
|
8
9
|
export { default as LinearGradientPackage } from "./LinearGradientPackage";
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { default as NetInfoPackage } from './NetInfoPackage';
|
|
2
2
|
export { default as HapticFeedbackPackage } from './HapticFeedbackPackage';
|
|
3
3
|
export { default as SvgPackage } from './SvgPackage';
|
|
4
|
+
export { createShimmerPlaceholder } from './ShimmerPackage';
|
|
4
5
|
export { default as LinearGradientPackage } from './LinearGradientPackage';
|
|
5
6
|
export { default as PostCssPackage } from './PostCssPackage';
|
|
6
7
|
export { default as FlashListPackage } from './FlashListPackage';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { default as NetInfoPackage } from "./NetInfoPackage";
|
|
2
2
|
export { default as HapticFeedbackPackage } from "./HapticFeedbackPackage";
|
|
3
3
|
export { default as SvgPackage } from "./SvgPackage";
|
|
4
|
+
export { createShimmerPlaceholder } from "./ShimmerPackage";
|
|
4
5
|
export { default as LinearGradientPackage } from "./LinearGradientPackage";
|
|
5
6
|
export { default as PostCssPackage } from "./PostCssPackage";
|
|
6
7
|
export { default as FlashListPackage } from "./FlashListPackage";
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { StyleProp, ViewStyle } from 'react-native';
|
|
3
|
-
export interface ShimmerPlaceholderProps {
|
|
4
|
-
/**
|
|
5
|
-
* The height of the skeleton view
|
|
6
|
-
*/
|
|
7
|
-
height?: number;
|
|
8
|
-
/**
|
|
9
|
-
* The width of the skeleton view
|
|
10
|
-
*/
|
|
11
|
-
width?: number;
|
|
12
|
-
/**
|
|
13
|
-
* The colors of the skeleton view, the array length has to be 3
|
|
14
|
-
* default: [Colors.grey70, Colors.grey60, Colors.grey70]
|
|
15
|
-
*/
|
|
16
|
-
colors?: string[];
|
|
17
|
-
/**
|
|
18
|
-
* Additional style to the skeleton view
|
|
19
|
-
*/
|
|
20
|
-
shimmerStyle?: StyleProp<ViewStyle>;
|
|
21
|
-
/**
|
|
22
|
-
* Override container styles
|
|
23
|
-
*/
|
|
24
|
-
style?: StyleProp<ViewStyle>;
|
|
25
|
-
}
|
|
26
|
-
declare const ShimmerPlaceholder: (props: ShimmerPlaceholderProps) => React.JSX.Element;
|
|
27
|
-
export default ShimmerPlaceholder;
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import React, { useEffect, useMemo } from 'react';
|
|
2
|
-
import { LinearGradientPackage as LinearGradient } from "../../optionalDependencies";
|
|
3
|
-
import View from "../view";
|
|
4
|
-
import { Colors } from "../../style";
|
|
5
|
-
import Constants from "../../commons/Constants";
|
|
6
|
-
import { interpolate, useAnimatedStyle, useSharedValue, withRepeat, withTiming } from 'react-native-reanimated';
|
|
7
|
-
const ANIMATION_DURATION = 1000;
|
|
8
|
-
const ShimmerPlaceholder = props => {
|
|
9
|
-
const {
|
|
10
|
-
height,
|
|
11
|
-
width = 100,
|
|
12
|
-
colors = [Colors.$backgroundNeutral, Colors.$backgroundNeutralMedium, Colors.$backgroundNeutral],
|
|
13
|
-
shimmerStyle,
|
|
14
|
-
style
|
|
15
|
-
} = props;
|
|
16
|
-
const translateValue = useSharedValue(-0.7);
|
|
17
|
-
useEffect(() => {
|
|
18
|
-
translateValue.value = withRepeat(withTiming(0.7, {
|
|
19
|
-
duration: ANIMATION_DURATION
|
|
20
|
-
}), -1, false);
|
|
21
|
-
}, [translateValue]);
|
|
22
|
-
const backgroundColor = useMemo(() => {
|
|
23
|
-
return colors[0];
|
|
24
|
-
}, [colors]);
|
|
25
|
-
const colorList = useMemo(() => {
|
|
26
|
-
return [{
|
|
27
|
-
offset: '20%',
|
|
28
|
-
color: colors[0],
|
|
29
|
-
opacity: '1'
|
|
30
|
-
}, {
|
|
31
|
-
offset: '40%',
|
|
32
|
-
color: colors[1],
|
|
33
|
-
opacity: '1'
|
|
34
|
-
}, {
|
|
35
|
-
offset: '100%',
|
|
36
|
-
color: colors[2],
|
|
37
|
-
opacity: '1'
|
|
38
|
-
}];
|
|
39
|
-
}, [colors]);
|
|
40
|
-
const animatedStyle = useAnimatedStyle(() => {
|
|
41
|
-
const translateX = interpolate(translateValue.value, [-1, 1], [-width, width], 'extend');
|
|
42
|
-
return {
|
|
43
|
-
transform: [{
|
|
44
|
-
translateX
|
|
45
|
-
}]
|
|
46
|
-
};
|
|
47
|
-
}, [width]);
|
|
48
|
-
const _style = useMemo(() => {
|
|
49
|
-
const reverseStyle = Constants.isRTL ? {
|
|
50
|
-
transform: [{
|
|
51
|
-
scaleX: -1
|
|
52
|
-
}]
|
|
53
|
-
} : undefined;
|
|
54
|
-
return [style, shimmerStyle, {
|
|
55
|
-
overflow: 'hidden'
|
|
56
|
-
}, reverseStyle, {
|
|
57
|
-
backgroundColor
|
|
58
|
-
}];
|
|
59
|
-
}, [style, shimmerStyle, backgroundColor]);
|
|
60
|
-
return <View height={height} width={width}
|
|
61
|
-
// @ts-expect-error
|
|
62
|
-
style={_style}>
|
|
63
|
-
<View width={width} reanimated style={animatedStyle}>
|
|
64
|
-
<LinearGradient colorList={colorList} angle={0} />
|
|
65
|
-
</View>
|
|
66
|
-
</View>;
|
|
67
|
-
};
|
|
68
|
-
export default ShimmerPlaceholder;
|