@@ -4,11 +4,23 @@ import Animated, { useAnimatedStyle } from 'react-native-reanimated';
44import  {  ShimmerContext  }  from  './ShimmerContext' ; 
55import  {  MyLinearGradient  }  from  './LinearGradient' ; 
66
7+ const  DEFAULT_LINEAR_GRADIENTS  =  [ 'transparent' ,  '#FFFFFF30' ,  'transparent' ] ; 
8+ const  DEFAULT_GRADIENT_START  =  {  x : 0 ,  y : 0.5  } ; 
9+ const  DEFAULT_GRADIENT_END  =  {  x : 1 ,  y : 0.5  } ; 
10+ 
711interface  Props  { 
812  style ?: ViewStyle  |  ViewStyle [ ] ; 
13+   linearGradients ?: string [ ] ; 
14+   gradientStart ?: {  x : number ;  y : number  } ; 
15+   gradientEnd ?: {  x : number ;  y : number  } ; 
916} 
1017
11- export  const  Shimmer : React . FC < Props >  =  ( {  style } )  =>  { 
18+ export  const  Shimmer  =  ( { 
19+   style, 
20+   linearGradients =  DEFAULT_LINEAR_GRADIENTS , 
21+   gradientStart =  DEFAULT_GRADIENT_START , 
22+   gradientEnd =  DEFAULT_GRADIENT_END , 
23+ } : Props ) : React . ReactNode  =>  { 
1224  const  shimmer  =  useContext ( ShimmerContext ) ; 
1325  const  shimmerRef  =  React . useRef < View > ( null ) ; 
1426  const  [ offset ,  setOffset ]  =  useState ( 0 ) ; 
@@ -39,9 +51,9 @@ export const Shimmer: React.FC<Props> = ({ style }) => {
3951    < View  ref = { shimmerRef }  onLayout = { measure }  style = { [ styles . container ,  style ] } > 
4052      < Animated . View  style = { [ gradientStyle ,  styles . gradientWrapper ] } > 
4153        < MyLinearGradient 
42-           colors = { [ 'transparent' ,   '#FFFFFF30' ,   'transparent' ] } 
43-           start = { {   x :  0 ,   y :  0.5   } } 
44-           end = { {   x :  1 ,   y :  0.5   } } 
54+           colors = { linearGradients } 
55+           start = { gradientStart } 
56+           end = { gradientEnd } 
4557          style = { StyleSheet . absoluteFill } 
4658        /> 
4759      </ Animated . View > 
0 commit comments