feat: add trip deletion and adjust CI/CD workflows for luggage-list
Some checks failed
Luggage List Build / release (push) Has been cancelled
Luggage List Build / build-android (push) Has started running
Luggage List Build / build-web (push) Has been cancelled

This commit is contained in:
2026-04-18 11:54:03 +02:00
parent 7de77d2878
commit 3de75b2f4d
5 changed files with 62 additions and 24 deletions

38
App.js
View File

@@ -292,6 +292,33 @@ export default function App() {
setData((prev) => ({ ...prev, defaultTemplateTripId: tripId }));
}
function deleteTrip(tripId) {
Alert.alert('Delete trip?', 'This removes the trip, its items, and its check-up history.', [
{ text: 'Cancel', style: 'cancel' },
{
text: 'Delete',
style: 'destructive',
onPress: () => {
setData((prev) => {
const nextTrips = prev.trips.filter((trip) => trip.id !== tripId);
const nextItemsByTrip = { ...prev.itemsByTrip };
const nextCheckupsByTrip = { ...prev.checkupsByTrip };
delete nextItemsByTrip[tripId];
delete nextCheckupsByTrip[tripId];
return {
...prev,
trips: nextTrips,
itemsByTrip: nextItemsByTrip,
checkupsByTrip: nextCheckupsByTrip,
defaultTemplateTripId: prev.defaultTemplateTripId === tripId ? null : prev.defaultTemplateTripId,
};
});
},
},
]);
}
function saveItem() {
if (!selectedTripId) {
Alert.alert('No trip', 'Create or select a trip first.');
@@ -629,9 +656,14 @@ export default function App() {
{data.defaultTemplateTripId === trip.id ? ' • Template' : ''}
</Text>
</Pressable>
<Pressable style={styles.smallActionBtn} onPress={() => setTripAsTemplate(trip.id)}>
<Text style={styles.smallActionBtnText}>Template</Text>
</Pressable>
<View style={styles.itemActionsColumn}>
<Pressable style={styles.smallActionBtn} onPress={() => setTripAsTemplate(trip.id)}>
<Text style={styles.smallActionBtnText}>Template</Text>
</Pressable>
<Pressable style={styles.smallActionBtn} onPress={() => deleteTrip(trip.id)}>
<Text style={styles.smallActionBtnText}>Delete</Text>
</Pressable>
</View>
</View>
))}
</Card>