255 lines
6.5 KiB
TypeScript
255 lines
6.5 KiB
TypeScript
import { StyleSheet, Dimensions } from 'react-native';
|
|
import { typography, spacing, borderRadius, shadow } from '@theme';
|
|
|
|
const { width, height } = Dimensions.get('window');
|
|
|
|
export const getStyles = (colors: any) =>
|
|
StyleSheet.create({
|
|
container: {
|
|
flex: 1,
|
|
backgroundColor: colors.background,
|
|
},
|
|
scrollContainer: {
|
|
paddingHorizontal: spacing.lg,
|
|
paddingTop: spacing.md,
|
|
paddingBottom: spacing.xxl,
|
|
},
|
|
summaryCard: {
|
|
backgroundColor: colors.primaryLight,
|
|
borderRadius: borderRadius.lg,
|
|
padding: spacing.lg,
|
|
marginBottom: spacing.lg,
|
|
borderWidth: 1,
|
|
borderColor: colors.border,
|
|
flexDirection: 'row',
|
|
alignItems: 'center',
|
|
justifyContent: 'space-between',
|
|
},
|
|
summaryLeft: {
|
|
flex: 1,
|
|
},
|
|
summaryTitle: {
|
|
fontSize: typography.fontSize.lg,
|
|
fontWeight: typography.fontWeight.bold,
|
|
color: colors.primaryDark || colors.primary,
|
|
marginBottom: spacing.xs,
|
|
},
|
|
summarySub: {
|
|
fontSize: typography.fontSize.sm,
|
|
color: colors.textSecondary,
|
|
},
|
|
summaryBadge: {
|
|
backgroundColor: colors.primary,
|
|
paddingHorizontal: spacing.md,
|
|
paddingVertical: spacing.xs,
|
|
borderRadius: borderRadius.full,
|
|
},
|
|
summaryBadgeText: {
|
|
fontSize: typography.fontSize.xs,
|
|
fontWeight: typography.fontWeight.bold,
|
|
color: colors.white,
|
|
},
|
|
sectionTitle: {
|
|
fontSize: typography.fontSize.md,
|
|
fontWeight: typography.fontWeight.bold,
|
|
color: colors.text,
|
|
marginBottom: spacing.md,
|
|
},
|
|
docCard: {
|
|
backgroundColor: colors.cardBg,
|
|
borderRadius: borderRadius.lg,
|
|
padding: spacing.lg,
|
|
marginBottom: spacing.md,
|
|
borderWidth: 1,
|
|
borderColor: colors.border,
|
|
...shadow.sm,
|
|
},
|
|
cardHeader: {
|
|
flexDirection: 'row',
|
|
alignItems: 'center',
|
|
justifyContent: 'space-between',
|
|
marginBottom: spacing.md,
|
|
},
|
|
cardHeaderLeft: {
|
|
flexDirection: 'row',
|
|
alignItems: 'center',
|
|
flex: 1,
|
|
marginRight: spacing.sm,
|
|
},
|
|
iconContainer: {
|
|
width: 44,
|
|
height: 44,
|
|
borderRadius: borderRadius.md,
|
|
backgroundColor: colors.primaryLight,
|
|
justifyContent: 'center',
|
|
alignItems: 'center',
|
|
marginRight: spacing.md,
|
|
},
|
|
docTypeContainer: {
|
|
flex: 1,
|
|
},
|
|
docTitle: {
|
|
fontSize: typography.fontSize.md,
|
|
fontWeight: typography.fontWeight.bold,
|
|
color: colors.text,
|
|
marginBottom: 2,
|
|
},
|
|
docNumber: {
|
|
fontSize: typography.fontSize.xs,
|
|
color: colors.textSecondary,
|
|
fontWeight: typography.fontWeight.medium,
|
|
},
|
|
statusBadge: {
|
|
paddingHorizontal: spacing.sm,
|
|
paddingVertical: 4,
|
|
borderRadius: borderRadius.sm,
|
|
alignSelf: 'flex-start',
|
|
},
|
|
statusText: {
|
|
fontSize: typography.fontSize.xs - 2,
|
|
fontWeight: typography.fontWeight.bold,
|
|
letterSpacing: 0.5,
|
|
},
|
|
divider: {
|
|
height: 1,
|
|
backgroundColor: colors.divider,
|
|
marginVertical: spacing.md,
|
|
},
|
|
detailsRow: {
|
|
flexDirection: 'row',
|
|
justifyContent: 'space-between',
|
|
alignItems: 'center',
|
|
marginBottom: spacing.md,
|
|
},
|
|
detailItem: {
|
|
flex: 1,
|
|
},
|
|
detailLabel: {
|
|
fontSize: typography.fontSize.xs - 1,
|
|
color: colors.textSecondary,
|
|
marginBottom: 2,
|
|
},
|
|
detailValue: {
|
|
fontSize: typography.fontSize.xs,
|
|
color: colors.text,
|
|
fontWeight: typography.fontWeight.semibold,
|
|
},
|
|
viewButton: {
|
|
backgroundColor: colors.inputBg,
|
|
borderWidth: 1,
|
|
borderColor: colors.border,
|
|
borderRadius: borderRadius.md,
|
|
paddingVertical: spacing.sm,
|
|
paddingHorizontal: spacing.md,
|
|
flexDirection: 'row',
|
|
alignItems: 'center',
|
|
justifyContent: 'center',
|
|
},
|
|
viewButtonText: {
|
|
fontSize: typography.fontSize.sm,
|
|
fontWeight: typography.fontWeight.semibold,
|
|
color: colors.primary,
|
|
marginRight: spacing.xs,
|
|
},
|
|
filePill: {
|
|
flexDirection: 'row',
|
|
alignItems: 'center',
|
|
backgroundColor: colors.inputBg,
|
|
paddingHorizontal: spacing.md,
|
|
paddingVertical: spacing.xs + 2,
|
|
borderRadius: borderRadius.sm,
|
|
maxWidth: '70%',
|
|
},
|
|
fileNameText: {
|
|
fontSize: typography.fontSize.xs,
|
|
color: colors.textSecondary,
|
|
marginLeft: spacing.xs,
|
|
},
|
|
// Full Screen Modal Styles
|
|
modalContainer: {
|
|
flex: 1,
|
|
backgroundColor: colors.background,
|
|
},
|
|
modalHeader: {
|
|
flexDirection: 'row',
|
|
alignItems: 'center',
|
|
justifyContent: 'space-between',
|
|
paddingHorizontal: spacing.lg,
|
|
paddingTop: spacing.xl,
|
|
paddingBottom: spacing.md,
|
|
backgroundColor: colors.cardBg,
|
|
borderBottomWidth: 1,
|
|
borderBottomColor: colors.border,
|
|
...shadow.sm,
|
|
},
|
|
modalHeaderInfo: {
|
|
flex: 1,
|
|
marginRight: spacing.md,
|
|
},
|
|
modalTitle: {
|
|
fontSize: typography.fontSize.lg,
|
|
fontWeight: typography.fontWeight.bold,
|
|
color: colors.text,
|
|
},
|
|
modalSubtitle: {
|
|
fontSize: typography.fontSize.xs,
|
|
color: colors.textSecondary,
|
|
marginTop: 2,
|
|
},
|
|
closeButton: {
|
|
width: 38,
|
|
height: 38,
|
|
borderRadius: borderRadius.full,
|
|
backgroundColor: colors.inputBg,
|
|
justifyContent: 'center',
|
|
alignItems: 'center',
|
|
},
|
|
viewerContainer: {
|
|
flex: 1,
|
|
backgroundColor: '#121212',
|
|
justifyContent: 'center',
|
|
alignItems: 'center',
|
|
},
|
|
pdfViewer: {
|
|
flex: 1,
|
|
width: width,
|
|
height: height,
|
|
backgroundColor: '#121212',
|
|
},
|
|
imageViewer: {
|
|
width: '100%',
|
|
height: '100%',
|
|
},
|
|
loadingContainer: {
|
|
position: 'absolute',
|
|
zIndex: 10,
|
|
justifyContent: 'center',
|
|
alignItems: 'center',
|
|
backgroundColor: 'rgba(0,0,0,0.4)',
|
|
padding: spacing.xl,
|
|
borderRadius: borderRadius.lg,
|
|
},
|
|
loadingText: {
|
|
color: colors.white,
|
|
marginTop: spacing.md,
|
|
fontSize: typography.fontSize.sm,
|
|
fontWeight: typography.fontWeight.medium,
|
|
},
|
|
emptyContainer: {
|
|
alignItems: 'center',
|
|
justifyContent: 'center',
|
|
paddingVertical: spacing.huge,
|
|
},
|
|
emptyTitle: {
|
|
fontSize: typography.fontSize.lg,
|
|
fontWeight: typography.fontWeight.bold,
|
|
color: colors.text,
|
|
marginTop: spacing.md,
|
|
},
|
|
emptySub: {
|
|
fontSize: typography.fontSize.sm,
|
|
color: colors.textSecondary,
|
|
marginTop: spacing.xs,
|
|
},
|
|
});
|