import React from 'react'; import {StyleSheet, Pressable, Text, View} from 'react-native'; import Colors from '../../assets/styles/Colors'; import FontFamily from '../../assets/styles/FontFamily'; import Icon from 'react-native-vector-icons/MaterialCommunityIcons'; const StepIndicator = ({ currentStep, totalSteps, completedSteps, onStepPress, validationStatus, }: any) => { return ( {[...Array(totalSteps)].map((_, index) => { const stepNumber = index + 1; const isCompleted = completedSteps.includes(stepNumber); const isCurrent = currentStep === stepNumber; const stepStatus = validationStatus[stepNumber]; const backgroundColorStyle = stepStatus === 'completed' ? Colors.indicatorGreen.color : stepStatus === 'invalid' ? Colors.indicatorOrange.color : Colors.neutral100.color; const indicatorLineBackgroundColorStyle = isCompleted ? Colors.secondary30.color : Colors.neutral100.color; const borderColorStyle = stepStatus === 'completed' ? Colors.indicatorGreen.color : stepStatus === 'invalid' ? Colors.indicatorOrange.color : isCurrent ? Colors.secondary30.color : Colors.neutral100.color; const textColorStyle = isCompleted || stepStatus === 'invalid' ? Colors.neutral100.color : isCurrent ? Colors.secondary30.color : Colors.secondary50.color; const textStyle = isCompleted ? FontFamily.notoSansBold : isCurrent ? FontFamily.notoSansSemiBold : FontFamily.notoSansRegular; return ( onStepPress?.(stepNumber)} style={({pressed}) => ({ transform: [{scale: pressed ? 0.97 : 1}], })}> {stepStatus === 'completed' ? ( ) : stepStatus === 'invalid' ? ( ) : ( {stepNumber} )} {index < totalSteps - 1 && ( )} ); })} ); }; const styles = StyleSheet.create({ container: { flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center', padding: 16, backgroundColor: Colors.secondary70.color, }, stepIndicatorContainer: { width: 30, height: 30, borderRadius: 15, borderWidth: 1, justifyContent: 'center', alignItems: 'center', }, stepIndicatorText: { includeFontPadding: false, fontSize: 14, }, stepIndicatorLine: { flex: 1, height: 2, }, }); export default StepIndicator;