108 lines
2.4 KiB
TypeScript

import { StyleSheet, Platform, Dimensions } from 'react-native';
import { ThemeColors } from '../../theme';
const { height: SCREEN_HEIGHT } = Dimensions.get('window');
export const getStyles = (colors: ThemeColors) =>
StyleSheet.create({
container: {
marginBottom: 16,
},
label: {
fontSize: 14,
fontWeight: '600',
color: colors.text,
marginBottom: 8,
},
required: {
color: '#EF4444',
marginLeft: 2,
},
pickerContainer: {
backgroundColor: colors.surface,
borderWidth: 1,
borderColor: colors.border,
borderRadius: 10,
flexDirection: 'row',
alignItems: 'center',
justifyContent: 'space-between',
paddingHorizontal: 16,
paddingVertical: 13,
},
pickerText: {
fontSize: 15,
color: colors.text,
flex: 1,
},
placeholder: {
color: colors.textMuted,
},
// Modal
backdrop: {
flex: 1,
backgroundColor: 'rgba(0,0,0,0.45)',
},
sheet: {
backgroundColor: colors.card,
borderTopLeftRadius: 20,
borderTopRightRadius: 20,
maxHeight: SCREEN_HEIGHT * 0.65,
paddingBottom: Platform.OS === 'ios' ? 0 : 16,
},
sheetHeader: {
flexDirection: 'row',
alignItems: 'center',
justifyContent: 'space-between',
paddingHorizontal: 20,
paddingVertical: 16,
borderBottomWidth: 1,
borderBottomColor: colors.border,
},
sheetTitle: {
fontSize: 16,
fontWeight: '700',
color: colors.text,
},
searchWrapper: {
flexDirection: 'row',
alignItems: 'center',
backgroundColor: colors.surface,
borderRadius: 10,
marginHorizontal: 16,
marginTop: 12,
paddingHorizontal: 12,
borderWidth: 1,
borderColor: colors.border,
},
searchIcon: {
marginRight: 8,
},
searchInput: {
flex: 1,
height: 40,
fontSize: 14,
color: colors.text,
},
separator: {
height: 1,
backgroundColor: colors.border,
marginHorizontal: 16,
},
optionRow: {
flexDirection: 'row',
alignItems: 'center',
justifyContent: 'space-between',
paddingHorizontal: 20,
paddingVertical: 14,
},
optionText: {
fontSize: 15,
color: colors.text,
flex: 1,
},
optionTextSelected: {
color: colors.icon,
fontWeight: '600',
},
});