222 lines
5.6 KiB
TypeScript
222 lines
5.6 KiB
TypeScript
import { StyleSheet } from 'react-native';
|
|
import { typography, spacing, borderRadius, shadow } from '@theme';
|
|
|
|
export const getStyles = (colors: any) =>
|
|
StyleSheet.create({
|
|
container: {
|
|
flex: 1,
|
|
backgroundColor: colors.background,
|
|
},
|
|
scrollContainer: {
|
|
paddingHorizontal: spacing.lg,
|
|
paddingTop: spacing.md,
|
|
paddingBottom: spacing.xxl + 40,
|
|
},
|
|
infoBanner: {
|
|
backgroundColor: colors.primaryLight,
|
|
borderRadius: borderRadius.lg,
|
|
padding: spacing.lg,
|
|
marginBottom: spacing.lg,
|
|
borderWidth: 1,
|
|
borderColor: colors.border,
|
|
flexDirection: 'row',
|
|
alignItems: 'center',
|
|
},
|
|
infoIconContainer: {
|
|
width: 44,
|
|
height: 44,
|
|
borderRadius: borderRadius.full,
|
|
backgroundColor: colors.primary,
|
|
justifyContent: 'center',
|
|
alignItems: 'center',
|
|
marginRight: spacing.md,
|
|
},
|
|
infoTextContainer: {
|
|
flex: 1,
|
|
},
|
|
infoTitle: {
|
|
fontSize: typography.fontSize.md,
|
|
fontWeight: typography.fontWeight.bold,
|
|
color: colors.primaryDark || colors.primary,
|
|
marginBottom: 2,
|
|
},
|
|
infoSub: {
|
|
fontSize: typography.fontSize.xs,
|
|
color: colors.textSecondary,
|
|
lineHeight: 18,
|
|
},
|
|
formCard: {
|
|
backgroundColor: colors.cardBg,
|
|
borderRadius: borderRadius.lg,
|
|
padding: spacing.lg,
|
|
borderWidth: 1,
|
|
borderColor: colors.border,
|
|
...shadow.sm,
|
|
},
|
|
fieldContainer: {
|
|
marginBottom: spacing.lg,
|
|
},
|
|
labelRow: {
|
|
flexDirection: 'row',
|
|
alignItems: 'center',
|
|
marginBottom: spacing.xs + 2,
|
|
},
|
|
label: {
|
|
fontSize: typography.fontSize.sm,
|
|
fontWeight: typography.fontWeight.semibold,
|
|
color: colors.text,
|
|
},
|
|
requiredStar: {
|
|
color: colors.error,
|
|
marginLeft: 4,
|
|
fontSize: typography.fontSize.sm,
|
|
fontWeight: typography.fontWeight.bold,
|
|
},
|
|
input: {
|
|
backgroundColor: colors.inputBg,
|
|
borderWidth: 1,
|
|
borderColor: colors.border,
|
|
borderRadius: borderRadius.md,
|
|
paddingHorizontal: spacing.md,
|
|
paddingVertical: spacing.md - 2,
|
|
fontSize: typography.fontSize.md,
|
|
color: colors.text,
|
|
},
|
|
inputError: {
|
|
borderColor: colors.error,
|
|
},
|
|
errorText: {
|
|
fontSize: typography.fontSize.xs,
|
|
color: colors.error,
|
|
marginTop: 4,
|
|
},
|
|
toggleRow: {
|
|
flexDirection: 'row',
|
|
alignItems: 'center',
|
|
justifyContent: 'space-between',
|
|
backgroundColor: colors.inputBg,
|
|
padding: spacing.md,
|
|
borderRadius: borderRadius.md,
|
|
borderWidth: 1,
|
|
borderColor: colors.border,
|
|
marginBottom: spacing.lg,
|
|
},
|
|
toggleTextContainer: {
|
|
flex: 1,
|
|
marginRight: spacing.md,
|
|
},
|
|
toggleTitle: {
|
|
fontSize: typography.fontSize.sm,
|
|
fontWeight: typography.fontWeight.bold,
|
|
color: colors.text,
|
|
marginBottom: 2,
|
|
},
|
|
toggleSub: {
|
|
fontSize: typography.fontSize.xs,
|
|
color: colors.textSecondary,
|
|
},
|
|
uploadBox: {
|
|
backgroundColor: colors.inputBg,
|
|
borderWidth: 1.5,
|
|
borderStyle: 'dashed',
|
|
borderColor: colors.border,
|
|
borderRadius: borderRadius.md,
|
|
padding: spacing.lg,
|
|
alignItems: 'center',
|
|
justifyContent: 'center',
|
|
},
|
|
uploadBoxActive: {
|
|
borderColor: colors.primary,
|
|
borderStyle: 'solid',
|
|
backgroundColor: colors.primaryLight,
|
|
},
|
|
uploadIconCircle: {
|
|
width: 42,
|
|
height: 42,
|
|
borderRadius: borderRadius.full,
|
|
backgroundColor: colors.cardBg,
|
|
justifyContent: 'center',
|
|
alignItems: 'center',
|
|
marginBottom: spacing.xs,
|
|
},
|
|
uploadTitle: {
|
|
fontSize: typography.fontSize.sm,
|
|
fontWeight: typography.fontWeight.bold,
|
|
color: colors.primary,
|
|
marginBottom: 2,
|
|
},
|
|
uploadSub: {
|
|
fontSize: typography.fontSize.xs,
|
|
color: colors.textSecondary,
|
|
},
|
|
filePreviewRow: {
|
|
flexDirection: 'row',
|
|
alignItems: 'center',
|
|
justifyContent: 'space-between',
|
|
width: '100%',
|
|
},
|
|
fileInfo: {
|
|
flexDirection: 'row',
|
|
alignItems: 'center',
|
|
flex: 1,
|
|
marginRight: spacing.sm,
|
|
},
|
|
fileThumbnail: {
|
|
width: 40,
|
|
height: 40,
|
|
borderRadius: borderRadius.sm,
|
|
marginRight: spacing.sm,
|
|
},
|
|
fileName: {
|
|
fontSize: typography.fontSize.sm,
|
|
fontWeight: typography.fontWeight.semibold,
|
|
color: colors.text,
|
|
},
|
|
fileSize: {
|
|
fontSize: typography.fontSize.xs,
|
|
color: colors.textSecondary,
|
|
marginTop: 2,
|
|
},
|
|
removeBtn: {
|
|
paddingHorizontal: spacing.sm,
|
|
paddingVertical: spacing.xs,
|
|
borderRadius: borderRadius.sm,
|
|
backgroundColor: colors.errorLight,
|
|
},
|
|
removeBtnText: {
|
|
fontSize: typography.fontSize.xs,
|
|
color: colors.error,
|
|
fontWeight: typography.fontWeight.bold,
|
|
},
|
|
errorBanner: {
|
|
backgroundColor: colors.errorLight,
|
|
borderRadius: borderRadius.md,
|
|
padding: spacing.md,
|
|
marginBottom: spacing.lg,
|
|
borderWidth: 1,
|
|
borderColor: colors.error,
|
|
},
|
|
errorBannerText: {
|
|
fontSize: typography.fontSize.sm,
|
|
color: colors.error,
|
|
fontWeight: typography.fontWeight.medium,
|
|
},
|
|
submitBtn: {
|
|
backgroundColor: colors.primary,
|
|
borderRadius: borderRadius.md,
|
|
paddingVertical: spacing.md + 2,
|
|
alignItems: 'center',
|
|
justifyContent: 'center',
|
|
marginTop: spacing.sm,
|
|
...shadow.md,
|
|
},
|
|
submitBtnDisabled: {
|
|
opacity: 0.6,
|
|
},
|
|
submitBtnText: {
|
|
fontSize: typography.fontSize.md,
|
|
fontWeight: typography.fontWeight.bold,
|
|
color: colors.white,
|
|
},
|
|
});
|