Full UI 180 & Overall improvements
Some checks failed
Luggage List Build / build-web (push) Successful in 31s
Luggage List Build / build-android (push) Failing after 1m24s
Luggage List Build / release (push) Has been skipped

This commit is contained in:
Space-Banane
2026-04-19 00:12:16 +02:00
parent 0057290055
commit 0a8444700e
45 changed files with 9468 additions and 1390 deletions

View File

@@ -1,6 +1,8 @@
import React, { useMemo, useState } from 'react';
import { Modal, Pressable, Text, View } from 'react-native';
import Ionicons from '@expo/vector-icons/Ionicons';
import { styles } from '../styles';
import { cn } from '../utils/cn';
import { todayYMD } from '../utils/date';
const WEEKDAYS = ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'];
@@ -48,40 +50,48 @@ export default function DatePickerModal({ visible, value, onClose, onSelect, tit
};
return (
<Modal visible={visible} transparent animationType="fade" onRequestClose={onClose}>
<View style={styles.dateModalBackdrop}>
<View style={styles.dateModalCard}>
<View style={styles.sectionRow}>
<Text style={styles.sectionTitle}>{title}</Text>
<Pressable onPress={onClose}>
<Text style={styles.closeText}>Close</Text>
<Modal visible={visible} transparent animationType="none" onRequestClose={onClose}>
<View className={styles.dateModalBackdrop}>
<View className={styles.dateModalCard}>
<View className={styles.sectionHeader}>
<View className={styles.sectionHeaderLeft}>
<View className={styles.sectionHeaderIconWrap}>
<Ionicons name="calendar-outline" size={16} color="#d4d4d8" />
</View>
<Text className={styles.cardTitle}>{title}</Text>
</View>
<Pressable className={styles.secondaryBtnTight} onPress={onClose}>
<View className={styles.buttonContent}>
<Ionicons name="close" size={14} color="#f4f4f5" />
<Text className={styles.secondaryBtnText}>Close</Text>
</View>
</Pressable>
</View>
<View style={styles.calendarHeader}>
<Pressable style={styles.calendarNavBtn} onPress={() => goMonth(-1)}>
<Text style={styles.calendarNavText}></Text>
<View className={styles.calendarHeader}>
<Pressable className={styles.calendarNavBtn} onPress={() => goMonth(-1)}>
<Ionicons name="chevron-back" size={18} color="#e4e4e7" />
</Pressable>
<Text style={styles.calendarMonthText}>{monthLabel(viewDate)}</Text>
<Pressable style={styles.calendarNavBtn} onPress={() => goMonth(1)}>
<Text style={styles.calendarNavText}></Text>
<Text className={styles.calendarMonthText}>{monthLabel(viewDate)}</Text>
<Pressable className={styles.calendarNavBtn} onPress={() => goMonth(1)}>
<Ionicons name="chevron-forward" size={18} color="#e4e4e7" />
</Pressable>
</View>
<View style={styles.calendarWeekRow}>
<View className={styles.calendarWeekRow}>
{WEEKDAYS.map((w) => (
<Text key={w} style={styles.calendarWeekday}>{w}</Text>
<Text key={w} className={styles.calendarWeekday}>{w}</Text>
))}
</View>
<View style={styles.calendarGrid}>
<View className={styles.calendarGrid}>
{grid.map((cell, idx) => {
if (!cell) return <View key={`empty-${idx}`} style={styles.calendarCell} />;
if (!cell) return <View key={`empty-${idx}`} className={styles.calendarCell} />;
const ymd = toYMD(cell);
const isSelected = ymd === selected;
return (
<Pressable key={ymd} style={[styles.calendarCell, isSelected && styles.calendarCellActive]} onPress={() => onSelect(ymd)}>
<Text style={[styles.calendarCellText, isSelected && styles.calendarCellTextActive]}>{cell.getDate()}</Text>
<Pressable key={ymd} className={cn(styles.calendarCell, isSelected && styles.calendarCellActive)} onPress={() => onSelect(ymd)}>
<Text className={cn(styles.calendarCellText, isSelected && styles.calendarCellTextActive)}>{cell.getDate()}</Text>
</Pressable>
);
})}