164 lines
3.9 KiB
TypeScript
164 lines
3.9 KiB
TypeScript
|
|
import { StyleSheet, Image } from 'react-native';
|
||
|
|
import { Spacing, BorderRadius, Theme } from '@/constants/theme';
|
||
|
|
|
||
|
|
export const createStyles = (theme: Theme) => {
|
||
|
|
return StyleSheet.create({
|
||
|
|
scrollContent: {
|
||
|
|
flexGrow: 1,
|
||
|
|
paddingHorizontal: Spacing.lg,
|
||
|
|
paddingTop: Spacing.xl,
|
||
|
|
paddingBottom: Spacing["5xl"],
|
||
|
|
},
|
||
|
|
title: {
|
||
|
|
marginBottom: Spacing.xl,
|
||
|
|
},
|
||
|
|
methodButtons: {
|
||
|
|
flexDirection: 'row',
|
||
|
|
justifyContent: 'space-between',
|
||
|
|
gap: Spacing.md,
|
||
|
|
marginBottom: Spacing.xl,
|
||
|
|
},
|
||
|
|
methodButton: {
|
||
|
|
flex: 1,
|
||
|
|
padding: Spacing.xl,
|
||
|
|
borderRadius: BorderRadius.xl,
|
||
|
|
alignItems: 'center',
|
||
|
|
shadowColor: theme.primary,
|
||
|
|
shadowOffset: { width: 0, height: 2 },
|
||
|
|
shadowOpacity: 0.15,
|
||
|
|
shadowRadius: 8,
|
||
|
|
elevation: 3,
|
||
|
|
},
|
||
|
|
cameraButton: {
|
||
|
|
backgroundColor: theme.primary,
|
||
|
|
},
|
||
|
|
galleryButton: {
|
||
|
|
backgroundColor: '#10B981',
|
||
|
|
},
|
||
|
|
buttonText: {
|
||
|
|
marginTop: Spacing.sm,
|
||
|
|
},
|
||
|
|
manualSection: {
|
||
|
|
padding: Spacing.xl,
|
||
|
|
borderRadius: BorderRadius.xl,
|
||
|
|
marginBottom: Spacing.xl,
|
||
|
|
},
|
||
|
|
sectionTitle: {
|
||
|
|
marginBottom: Spacing.lg,
|
||
|
|
},
|
||
|
|
inputGroup: {
|
||
|
|
marginBottom: Spacing.lg,
|
||
|
|
},
|
||
|
|
inputRow: {
|
||
|
|
flexDirection: 'row',
|
||
|
|
gap: Spacing.md,
|
||
|
|
},
|
||
|
|
halfInput: {
|
||
|
|
flex: 1,
|
||
|
|
},
|
||
|
|
label: {
|
||
|
|
marginBottom: Spacing.sm,
|
||
|
|
},
|
||
|
|
input: {
|
||
|
|
backgroundColor: theme.backgroundTertiary,
|
||
|
|
borderRadius: BorderRadius.lg,
|
||
|
|
paddingHorizontal: Spacing.lg,
|
||
|
|
paddingVertical: Spacing.md,
|
||
|
|
color: theme.textPrimary,
|
||
|
|
fontSize: 16,
|
||
|
|
},
|
||
|
|
mealTypes: {
|
||
|
|
flexDirection: 'row',
|
||
|
|
gap: Spacing.sm,
|
||
|
|
},
|
||
|
|
mealTypeButton: {
|
||
|
|
flex: 1,
|
||
|
|
paddingVertical: Spacing.md,
|
||
|
|
borderRadius: BorderRadius.lg,
|
||
|
|
backgroundColor: theme.backgroundTertiary,
|
||
|
|
alignItems: 'center',
|
||
|
|
borderWidth: 1,
|
||
|
|
borderColor: theme.border,
|
||
|
|
},
|
||
|
|
mealTypeButtonActive: {
|
||
|
|
backgroundColor: theme.primary,
|
||
|
|
borderColor: theme.primary,
|
||
|
|
},
|
||
|
|
saveButton: {
|
||
|
|
backgroundColor: theme.primary,
|
||
|
|
paddingVertical: Spacing.lg,
|
||
|
|
borderRadius: BorderRadius.lg,
|
||
|
|
alignItems: 'center',
|
||
|
|
marginTop: Spacing.md,
|
||
|
|
shadowColor: theme.primary,
|
||
|
|
shadowOffset: { width: 0, height: 2 },
|
||
|
|
shadowOpacity: 0.2,
|
||
|
|
shadowRadius: 8,
|
||
|
|
elevation: 3,
|
||
|
|
},
|
||
|
|
modalContainer: {
|
||
|
|
flex: 1,
|
||
|
|
backgroundColor: 'rgba(0, 0, 0, 0.5)',
|
||
|
|
justifyContent: 'flex-end',
|
||
|
|
},
|
||
|
|
modalContent: {
|
||
|
|
borderTopLeftRadius: BorderRadius["2xl"],
|
||
|
|
borderTopRightRadius: BorderRadius["2xl"],
|
||
|
|
maxHeight: '80%',
|
||
|
|
},
|
||
|
|
modalHeader: {
|
||
|
|
flexDirection: 'row',
|
||
|
|
justifyContent: 'space-between',
|
||
|
|
alignItems: 'center',
|
||
|
|
padding: Spacing.xl,
|
||
|
|
borderBottomWidth: 1,
|
||
|
|
borderBottomColor: theme.border,
|
||
|
|
},
|
||
|
|
modalBody: {
|
||
|
|
padding: Spacing.xl,
|
||
|
|
},
|
||
|
|
previewImage: {
|
||
|
|
width: '100%',
|
||
|
|
height: 200,
|
||
|
|
borderRadius: BorderRadius.lg,
|
||
|
|
marginBottom: Spacing.lg,
|
||
|
|
},
|
||
|
|
resultItem: {
|
||
|
|
marginBottom: Spacing.lg,
|
||
|
|
},
|
||
|
|
resultInput: {
|
||
|
|
backgroundColor: theme.backgroundTertiary,
|
||
|
|
borderRadius: BorderRadius.lg,
|
||
|
|
paddingHorizontal: Spacing.lg,
|
||
|
|
paddingVertical: Spacing.md,
|
||
|
|
color: theme.textPrimary,
|
||
|
|
fontSize: 16,
|
||
|
|
marginTop: Spacing.sm,
|
||
|
|
},
|
||
|
|
modalFooter: {
|
||
|
|
flexDirection: 'row',
|
||
|
|
gap: Spacing.md,
|
||
|
|
padding: Spacing.xl,
|
||
|
|
borderTopWidth: 1,
|
||
|
|
borderTopColor: theme.border,
|
||
|
|
},
|
||
|
|
modalButton: {
|
||
|
|
flex: 1,
|
||
|
|
paddingVertical: Spacing.lg,
|
||
|
|
borderRadius: BorderRadius.lg,
|
||
|
|
alignItems: 'center',
|
||
|
|
},
|
||
|
|
cancelButton: {
|
||
|
|
backgroundColor: theme.backgroundTertiary,
|
||
|
|
},
|
||
|
|
confirmButton: {
|
||
|
|
backgroundColor: theme.primary,
|
||
|
|
shadowColor: theme.primary,
|
||
|
|
shadowOffset: { width: 0, height: 2 },
|
||
|
|
shadowOpacity: 0.2,
|
||
|
|
shadowRadius: 8,
|
||
|
|
elevation: 3,
|
||
|
|
},
|
||
|
|
});
|
||
|
|
};
|