108 lines
2.4 KiB
TypeScript
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',
|
|
},
|
|
});
|