fix : progress bar
This commit is contained in:
@@ -12,6 +12,12 @@ type Props = {
|
||||
export default function ProgressBar({ margin, value, category }: Props) {
|
||||
const [progress, setProgress] = useState(new Animated.Value(0));
|
||||
const [totalProgress, setTotalProgress] = useState(category == 'carousel' ? 232 : category == 'page' ? 245 : 290);
|
||||
const [componentWidth, setComponentWidth] = useState(0);
|
||||
|
||||
const handleLayout = (event: any) => {
|
||||
const { width } = event.nativeEvent.layout;
|
||||
setComponentWidth(width);
|
||||
};
|
||||
|
||||
|
||||
useEffect(() => {
|
||||
@@ -19,16 +25,16 @@ export default function ProgressBar({ margin, value, category }: Props) {
|
||||
// carousel:: 100% = 255
|
||||
// page:: 100% = 290
|
||||
// wrapbar :: 90%
|
||||
toValue: value / 100 * totalProgress,
|
||||
toValue: value / 100 * componentWidth,
|
||||
duration: 1000,
|
||||
useNativeDriver: false
|
||||
}).start();
|
||||
}, [value]);
|
||||
}, [value, componentWidth]);
|
||||
|
||||
|
||||
return (
|
||||
<View style={[Styles.contentItemCenter]}>
|
||||
<View style={[Styles.wrapBar, { margin: margin && margin }]}>
|
||||
<View style={[Styles.wrapBar, { margin: margin && margin }]} onLayout={handleLayout}>
|
||||
<Animated.View style={[Styles.contentBar, { width: progress }]} />
|
||||
</View>
|
||||
</View>
|
||||
|
||||
@@ -339,7 +339,7 @@ const Styles = StyleSheet.create({
|
||||
backgroundColor: '#ccc',
|
||||
borderRadius: 10,
|
||||
margin: 0,
|
||||
width: '90%'
|
||||
width: '100%'
|
||||
},
|
||||
contentBar: {
|
||||
height: 20,
|
||||
|
||||
Reference in New Issue
Block a user