130 lines
3.8 KiB
TypeScript

import { StyleSheet } from 'react-native';
import { typography, spacing, borderRadius, shadow } from '@theme';
const TIMER_SIZE = 56;
export const getStyles = (colors: any) =>
StyleSheet.create({
container: {
flex: 1,
backgroundColor: 'rgba(0, 0, 0, 0.65)',
justifyContent: 'flex-end',
},
modalContent: {
backgroundColor: colors.cardBg,
borderTopLeftRadius: borderRadius.xl,
borderTopRightRadius: borderRadius.xl,
padding: spacing.xl,
paddingBottom: spacing.huge,
...shadow.lg,
},
headerRow: {
flexDirection: 'row',
alignItems: 'center',
justifyContent: 'space-between',
marginBottom: spacing.lg,
},
modalTitle: {
fontSize: typography.fontSize.lg,
fontWeight: typography.fontWeight.bold,
color: colors.text,
},
// ── Circular Timer (border-based) ─────────────────────────────────────
timerWrapper: {
width: TIMER_SIZE,
height: TIMER_SIZE,
borderRadius: TIMER_SIZE / 2,
borderWidth: 3,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: colors.primaryLight,
},
timerText: {
fontSize: typography.fontSize.md,
fontWeight: typography.fontWeight.bold,
},
// ── Earnings Badge ────────────────────────────────────────────────────
earningsBadge: {
borderRadius: borderRadius.md,
paddingVertical: spacing.md,
paddingHorizontal: spacing.lg,
marginBottom: spacing.lg,
alignItems: 'center',
overflow: 'hidden',
},
earningsBadgeLabel: {
fontSize: 10,
fontWeight: 'bold' as const,
textTransform: 'uppercase' as const,
color: 'rgba(255,255,255,0.75)',
marginBottom: 2,
},
earningsBadgeValue: {
fontSize: 28,
fontWeight: typography.fontWeight.bold,
color: '#fff',
},
// ── Route Card ────────────────────────────────────────────────────────
routeContainer: {
backgroundColor: colors.inputBg,
borderRadius: borderRadius.md,
padding: spacing.md,
marginBottom: spacing.lg,
borderWidth: 1,
borderColor: colors.border,
},
spacer: {
height: spacing.md,
},
// ── Details Row ───────────────────────────────────────────────────────
detailsRow: {
flexDirection: 'row',
justifyContent: 'space-between',
marginBottom: spacing.xl,
backgroundColor: colors.inputBg,
padding: spacing.md,
borderRadius: borderRadius.md,
borderWidth: 1,
borderColor: colors.border,
},
detailBox: {
flex: 1,
alignItems: 'center',
},
detailLabel: {
fontSize: 10,
color: colors.textSecondary,
fontWeight: 'bold',
textTransform: 'uppercase',
marginBottom: 4,
},
detailValue: {
fontSize: typography.fontSize.lg,
fontWeight: typography.fontWeight.bold,
color: colors.text,
},
divider: {
width: 1,
height: 28,
backgroundColor: colors.border,
},
// ── Buttons ───────────────────────────────────────────────────────────
btnRow: {
flexDirection: 'row',
gap: 12,
},
rejectBtn: {
flex: 1,
backgroundColor: colors.border,
},
acceptBtn: {
flex: 2,
backgroundColor: colors.primary,
},
});