Compare commits
2 Commits
luggage-li
...
luggage-li
| Author | SHA1 | Date | |
|---|---|---|---|
| bd500674a0 | |||
| ef7e0ba7a1 |
2
TODO.md
2
TODO.md
@@ -37,3 +37,5 @@ Improving & Fixing Bugs (V3)
|
|||||||
- [x] Increased safe top inset to avoid status-bar overlap
|
- [x] Increased safe top inset to avoid status-bar overlap
|
||||||
- [x] Added check-up stats (correct/bad/pending) and persisted per snapshot
|
- [x] Added check-up stats (correct/bad/pending) and persisted per snapshot
|
||||||
- [x] Extra UI polish pass (spacing, cards, hierarchy)
|
- [x] Extra UI polish pass (spacing, cards, hierarchy)
|
||||||
|
- [x] Centered and enlarged edit/check-up modals to fully overlay nav
|
||||||
|
- [x] Fixed modal keyboard glitching (stable centered keyboard-aware layout)
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ export default function CheckupFixModal({
|
|||||||
return (
|
return (
|
||||||
<Modal visible={visible} animationType="slide" transparent>
|
<Modal visible={visible} animationType="slide" transparent>
|
||||||
<View style={styles.modalBackdrop}>
|
<View style={styles.modalBackdrop}>
|
||||||
<KeyboardAvoidingView behavior={Platform.OS === 'ios' ? 'padding' : 'height'} style={styles.modalKeyboardWrap}>
|
<KeyboardAvoidingView behavior={Platform.OS === 'ios' ? 'padding' : undefined} style={styles.modalKeyboardWrap}>
|
||||||
<View style={styles.modalCard}>
|
<View style={styles.modalCard}>
|
||||||
<View style={styles.sectionRow}>
|
<View style={styles.sectionRow}>
|
||||||
<Text style={styles.sectionTitle}>Update for this Check-Up</Text>
|
<Text style={styles.sectionTitle}>Update for this Check-Up</Text>
|
||||||
@@ -24,7 +24,12 @@ export default function CheckupFixModal({
|
|||||||
</Pressable>
|
</Pressable>
|
||||||
</View>
|
</View>
|
||||||
|
|
||||||
<ScrollView keyboardShouldPersistTaps="handled" showsVerticalScrollIndicator={false}>
|
<ScrollView
|
||||||
|
keyboardShouldPersistTaps="handled"
|
||||||
|
keyboardDismissMode="interactive"
|
||||||
|
contentContainerStyle={{ paddingBottom: 12 }}
|
||||||
|
showsVerticalScrollIndicator={false}
|
||||||
|
>
|
||||||
<Field label="Status">
|
<Field label="Status">
|
||||||
<ChipGroup
|
<ChipGroup
|
||||||
options={ITEM_STATUSES}
|
options={ITEM_STATUSES}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ export default function ItemModal({
|
|||||||
return (
|
return (
|
||||||
<Modal visible={visible} animationType="slide" transparent>
|
<Modal visible={visible} animationType="slide" transparent>
|
||||||
<View style={styles.modalBackdrop}>
|
<View style={styles.modalBackdrop}>
|
||||||
<KeyboardAvoidingView behavior={Platform.OS === 'ios' ? 'padding' : 'height'} style={styles.modalKeyboardWrap}>
|
<KeyboardAvoidingView behavior={Platform.OS === 'ios' ? 'padding' : undefined} style={styles.modalKeyboardWrap}>
|
||||||
<View style={styles.modalCard}>
|
<View style={styles.modalCard}>
|
||||||
<View style={styles.sectionRow}>
|
<View style={styles.sectionRow}>
|
||||||
<Text style={styles.sectionTitle}>{itemForm.id ? 'Update Item' : 'Add Item'}</Text>
|
<Text style={styles.sectionTitle}>{itemForm.id ? 'Update Item' : 'Add Item'}</Text>
|
||||||
@@ -25,7 +25,12 @@ export default function ItemModal({
|
|||||||
</Pressable>
|
</Pressable>
|
||||||
</View>
|
</View>
|
||||||
|
|
||||||
<ScrollView keyboardShouldPersistTaps="handled" showsVerticalScrollIndicator={false}>
|
<ScrollView
|
||||||
|
keyboardShouldPersistTaps="handled"
|
||||||
|
keyboardDismissMode="interactive"
|
||||||
|
contentContainerStyle={{ paddingBottom: 12 }}
|
||||||
|
showsVerticalScrollIndicator={false}
|
||||||
|
>
|
||||||
<Field label="Name">
|
<Field label="Name">
|
||||||
<TextInput
|
<TextInput
|
||||||
style={styles.input}
|
style={styles.input}
|
||||||
|
|||||||
@@ -400,20 +400,23 @@ export const styles = StyleSheet.create({
|
|||||||
modalBackdrop: {
|
modalBackdrop: {
|
||||||
flex: 1,
|
flex: 1,
|
||||||
backgroundColor: 'rgba(2,6,23,0.72)',
|
backgroundColor: 'rgba(2,6,23,0.72)',
|
||||||
justifyContent: 'flex-end',
|
paddingHorizontal: 12,
|
||||||
},
|
},
|
||||||
modalKeyboardWrap: {
|
modalKeyboardWrap: {
|
||||||
|
flex: 1,
|
||||||
width: '100%',
|
width: '100%',
|
||||||
|
alignItems: 'center',
|
||||||
|
justifyContent: 'center',
|
||||||
},
|
},
|
||||||
modalCard: {
|
modalCard: {
|
||||||
maxHeight: '87%',
|
width: '96%',
|
||||||
|
maxHeight: '90%',
|
||||||
backgroundColor: '#0f172a',
|
backgroundColor: '#0f172a',
|
||||||
borderTopLeftRadius: 18,
|
borderRadius: 20,
|
||||||
borderTopRightRadius: 18,
|
|
||||||
borderWidth: 1,
|
borderWidth: 1,
|
||||||
borderColor: '#1e293b',
|
borderColor: '#1e293b',
|
||||||
padding: 14,
|
padding: 16,
|
||||||
gap: 8,
|
gap: 10,
|
||||||
},
|
},
|
||||||
closeText: {
|
closeText: {
|
||||||
color: '#93c5fd',
|
color: '#93c5fd',
|
||||||
|
|||||||
Reference in New Issue
Block a user