179 lines
4.1 KiB
TypeScript
179 lines
4.1 KiB
TypeScript
import { StyleSheet } from 'react-native';
|
|
import { typography } from '@theme';
|
|
|
|
export const getStyles = (colors: any) =>
|
|
StyleSheet.create({
|
|
container: {
|
|
flex: 1,
|
|
backgroundColor: colors.background,
|
|
},
|
|
list: {
|
|
padding: 16,
|
|
paddingBottom: 40,
|
|
},
|
|
offerCard: {
|
|
backgroundColor: colors.cardBg,
|
|
borderRadius: 16,
|
|
marginBottom: 16,
|
|
borderWidth: 1,
|
|
borderColor: colors.border,
|
|
overflow: 'hidden',
|
|
elevation: 2,
|
|
shadowColor: '#000',
|
|
shadowOffset: { width: 0, height: 2 },
|
|
shadowOpacity: 0.05,
|
|
shadowRadius: 8,
|
|
},
|
|
cardHeaderRow: {
|
|
flexDirection: 'row',
|
|
padding: 16,
|
|
alignItems: 'flex-start',
|
|
},
|
|
iconWrap: {
|
|
width: 48,
|
|
height: 48,
|
|
borderRadius: 12,
|
|
justifyContent: 'center',
|
|
alignItems: 'center',
|
|
marginRight: 12,
|
|
},
|
|
iconEmoji: {
|
|
fontSize: 22,
|
|
},
|
|
offerInfo: {
|
|
flex: 1,
|
|
paddingRight: 8,
|
|
},
|
|
badgeContainer: {
|
|
alignSelf: 'flex-start',
|
|
paddingHorizontal: 8,
|
|
paddingVertical: 3,
|
|
borderRadius: 6,
|
|
marginBottom: 6,
|
|
},
|
|
badgeText: {
|
|
fontSize: typography.fontSize.xs,
|
|
fontWeight: typography.fontWeight.bold,
|
|
letterSpacing: 0.4,
|
|
textTransform: 'uppercase',
|
|
},
|
|
offerTitle: {
|
|
fontSize: typography.fontSize.md,
|
|
fontWeight: typography.fontWeight.bold,
|
|
color: colors.text,
|
|
marginBottom: 4,
|
|
lineHeight: 22,
|
|
},
|
|
offerDescription: {
|
|
fontSize: typography.fontSize.sm,
|
|
color: colors.textSecondary,
|
|
lineHeight: 18,
|
|
},
|
|
copyButton: {
|
|
paddingHorizontal: 16,
|
|
paddingVertical: 9,
|
|
borderRadius: 8,
|
|
backgroundColor: colors.primary,
|
|
alignSelf: 'flex-start',
|
|
marginTop: 2,
|
|
},
|
|
copyButtonSuccess: {
|
|
backgroundColor: '#2E7D32',
|
|
},
|
|
copyButtonText: {
|
|
fontSize: typography.fontSize.xs,
|
|
fontWeight: typography.fontWeight.bold,
|
|
color: '#FFFFFF',
|
|
},
|
|
cardFooter: {
|
|
flexDirection: 'row',
|
|
flexWrap: 'wrap',
|
|
paddingHorizontal: 16,
|
|
paddingBottom: 12,
|
|
paddingTop: 10,
|
|
borderTopWidth: 1,
|
|
borderTopColor: colors.border,
|
|
backgroundColor: colors.inputBg || '#FAFAFA',
|
|
},
|
|
metaChip: {
|
|
flexDirection: 'row',
|
|
alignItems: 'center',
|
|
backgroundColor: colors.background,
|
|
paddingHorizontal: 10,
|
|
paddingVertical: 4,
|
|
borderRadius: 12,
|
|
borderWidth: 1,
|
|
borderColor: colors.border,
|
|
marginRight: 8,
|
|
marginBottom: 4,
|
|
},
|
|
metaChipText: {
|
|
fontSize: typography.fontSize.xs,
|
|
color: colors.textSecondary,
|
|
fontWeight: typography.fontWeight.medium,
|
|
},
|
|
emptyWrap: {
|
|
alignItems: 'center',
|
|
justifyContent: 'center',
|
|
paddingVertical: 60,
|
|
paddingHorizontal: 24,
|
|
},
|
|
emptyIconWrap: {
|
|
width: 80,
|
|
height: 80,
|
|
borderRadius: 40,
|
|
backgroundColor: colors.inputBg || '#F5F5F5',
|
|
alignItems: 'center',
|
|
justifyContent: 'center',
|
|
marginBottom: 16,
|
|
},
|
|
emptyEmoji: {
|
|
fontSize: 36,
|
|
},
|
|
emptyTitle: {
|
|
fontSize: typography.fontSize.lg,
|
|
fontWeight: typography.fontWeight.bold,
|
|
color: colors.text,
|
|
marginBottom: 8,
|
|
textAlign: 'center',
|
|
},
|
|
emptySubtitle: {
|
|
fontSize: typography.fontSize.sm,
|
|
color: colors.textSecondary,
|
|
textAlign: 'center',
|
|
lineHeight: 20,
|
|
},
|
|
skeletonCard: {
|
|
height: 110,
|
|
backgroundColor: colors.cardBg,
|
|
borderRadius: 16,
|
|
marginBottom: 16,
|
|
padding: 16,
|
|
borderWidth: 1,
|
|
borderColor: colors.border,
|
|
justifyContent: 'space-between',
|
|
},
|
|
skeletonLineShort: {
|
|
height: 16,
|
|
width: '40%',
|
|
backgroundColor: colors.border,
|
|
borderRadius: 8,
|
|
opacity: 0.5,
|
|
},
|
|
skeletonLineLong: {
|
|
height: 14,
|
|
width: '80%',
|
|
backgroundColor: colors.border,
|
|
borderRadius: 7,
|
|
opacity: 0.5,
|
|
},
|
|
skeletonLineSub: {
|
|
height: 12,
|
|
width: '60%',
|
|
backgroundColor: colors.border,
|
|
borderRadius: 6,
|
|
opacity: 0.5,
|
|
},
|
|
});
|
|
|