This commit is contained in:
1
2026-02-02 17:33:20 +08:00
113 changed files with 11785 additions and 280 deletions

View File

@@ -18,9 +18,10 @@ interface SelectionStepProps {
selectedIds: string[];
onToggle: (id: string) => void;
onNext: () => void;
onSkip?: () => void;
}
export function SelectionStep({ options, selectedIds, onToggle, onNext }: SelectionStepProps) {
export function SelectionStep({ options, selectedIds, onToggle, onNext, onSkip }: SelectionStepProps) {
const hasSelection = selectedIds.length > 0;
return (
@@ -48,13 +49,17 @@ export function SelectionStep({ options, selectedIds, onToggle, onNext }: Select
{/* 底部按钮:距离底部 12% 高度 */}
<View style={styles.footer}>
<TouchableOpacity
onPress={onNext}
disabled={!hasSelection}
activeOpacity={0.8}
>
{hasSelection ? <BtnClicked width={87} height={57} /> : <BtnNotClicked width={87} height={57} />}
</TouchableOpacity>
<View style={styles.footerRow}>
{onSkip && (
<TouchableOpacity onPress={onSkip} activeOpacity={0.8} style={styles.skipBtn}>
<SerifText style={styles.skipText}></SerifText>
</TouchableOpacity>
)}
<TouchableOpacity onPress={onNext} disabled={!hasSelection} activeOpacity={0.8}>
{hasSelection ? <BtnClicked width={87} height={57} /> : <BtnNotClicked width={87} height={57} />}
</TouchableOpacity>
</View>
</View>
</View>
);
@@ -99,5 +104,20 @@ const styles = StyleSheet.create({
left: 0,
right: 0,
alignItems: 'center',
}
},
footerRow: {
flexDirection: 'row',
alignItems: 'center',
gap: 16,
},
skipBtn: {
paddingVertical: 10,
paddingHorizontal: 14,
borderRadius: 12,
backgroundColor: 'rgba(0,0,0,0.04)',
},
skipText: {
fontSize: 16,
color: OnboardingColors.textMuted,
},
});