@umituz/react-native-firebase 2.2.1 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@umituz/react-native-firebase",
3
- "version": "2.2.1",
3
+ "version": "2.3.0",
4
4
  "description": "Unified Firebase package for React Native apps - Auth and Firestore services using Firebase JS SDK (no native modules).",
5
5
  "main": "./src/index.ts",
6
6
  "types": "./src/index.ts",
@@ -40,7 +40,8 @@
40
40
  "expo-web-browser": ">=12.0.0",
41
41
  "firebase": ">=10.0.0",
42
42
  "react": ">=19.0.0",
43
- "react-native": "0.81.4"
43
+ "react-native": "0.81.4",
44
+ "react-native-safe-area-context": ">=4.0.0"
44
45
  },
45
46
  "peerDependenciesMeta": {
46
47
  "expo-apple-authentication": {
@@ -4,12 +4,13 @@
4
4
  */
5
5
 
6
6
  import React, { useState } from 'react';
7
- import { View, StyleSheet, SafeAreaView, KeyboardAvoidingView, Platform } from 'react-native';
7
+ import { View, StyleSheet, Modal, KeyboardAvoidingView, Platform, TouchableOpacity } from 'react-native';
8
+ import { SafeAreaView } from 'react-native-safe-area-context';
8
9
  import {
9
- BaseModal,
10
10
  AtomicInput,
11
11
  AtomicButton,
12
12
  AtomicText,
13
+ AtomicIcon,
13
14
  useAppDesignTokens
14
15
  } from '@umituz/react-native-design-system';
15
16
 
@@ -53,22 +54,29 @@ export const PasswordPromptScreen: React.FC<PasswordPromptScreenProps> = ({
53
54
  };
54
55
 
55
56
  return (
56
- <BaseModal
57
+ <Modal
57
58
  visible={visible}
58
- onClose={handleCancel}
59
- dismissOnBackdrop={false}
60
- presentationStyle="fullScreen"
59
+ animationType="slide"
60
+ presentationStyle="pageSheet"
61
+ onRequestClose={handleCancel}
61
62
  >
62
- <SafeAreaView style={[styles.safeArea, { backgroundColor: tokens.colors.background }]}>
63
+ <SafeAreaView style={[styles.safeArea, { backgroundColor: tokens.colors.background }]} edges={['top', 'bottom']}>
64
+ <View style={[styles.headerBar, { borderBottomColor: tokens.colors.border }]}>
65
+ <TouchableOpacity onPress={handleCancel} style={styles.closeButton}>
66
+ <AtomicIcon name="close" size="lg" color="textSecondary" />
67
+ </TouchableOpacity>
68
+ <AtomicText variant="h3" weight="semibold" color="textPrimary">
69
+ {title}
70
+ </AtomicText>
71
+ <View style={styles.placeholder} />
72
+ </View>
73
+
63
74
  <KeyboardAvoidingView
64
75
  behavior={Platform.OS === 'ios' ? 'padding' : 'height'}
65
76
  style={styles.keyboardView}
66
77
  >
67
78
  <View style={[styles.container, { padding: tokens.spacing.xl }]}>
68
- <View style={styles.header}>
69
- <AtomicText variant="h2" weight="bold" color="textPrimary" style={styles.title}>
70
- {title}
71
- </AtomicText>
79
+ <View style={styles.messageContainer}>
72
80
  <AtomicText variant="body" color="textSecondary" style={styles.message}>
73
81
  {message}
74
82
  </AtomicText>
@@ -107,7 +115,7 @@ export const PasswordPromptScreen: React.FC<PasswordPromptScreenProps> = ({
107
115
  </View>
108
116
  </KeyboardAvoidingView>
109
117
  </SafeAreaView>
110
- </BaseModal>
118
+ </Modal>
111
119
  );
112
120
  };
113
121
 
@@ -115,6 +123,21 @@ const styles = StyleSheet.create({
115
123
  safeArea: {
116
124
  flex: 1,
117
125
  },
126
+ headerBar: {
127
+ flexDirection: 'row',
128
+ alignItems: 'center',
129
+ justifyContent: 'space-between',
130
+ paddingHorizontal: 16,
131
+ paddingVertical: 12,
132
+ borderBottomWidth: 1,
133
+ },
134
+ closeButton: {
135
+ padding: 4,
136
+ width: 40,
137
+ },
138
+ placeholder: {
139
+ width: 40,
140
+ },
118
141
  keyboardView: {
119
142
  flex: 1,
120
143
  },
@@ -122,15 +145,12 @@ const styles = StyleSheet.create({
122
145
  flex: 1,
123
146
  justifyContent: 'center',
124
147
  },
125
- header: {
126
- marginBottom: 32,
127
- },
128
- title: {
129
- marginBottom: 8,
130
- textAlign: 'center',
148
+ messageContainer: {
149
+ marginBottom: 24,
131
150
  },
132
151
  message: {
133
152
  textAlign: 'center',
153
+ lineHeight: 22,
134
154
  },
135
155
  content: {
136
156
  flex: 1,