@umituz/react-native-auth 2.5.6 → 2.5.9
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-auth",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.9",
|
|
4
4
|
"description": "Authentication service for React Native apps - Secure, type-safe, and production-ready. Provider-agnostic design with dependency injection, configurable validation, and comprehensive error handling.",
|
|
5
5
|
"main": "./src/index.ts",
|
|
6
6
|
"types": "./src/index.ts",
|
|
@@ -13,7 +13,6 @@ import {
|
|
|
13
13
|
} from "@gorhom/bottom-sheet";
|
|
14
14
|
import { useAppDesignTokens } from "@umituz/react-native-design-system-theme";
|
|
15
15
|
import { useLocalization } from "@umituz/react-native-localization";
|
|
16
|
-
import { X } from "lucide-react-native";
|
|
17
16
|
import { useAuthModalStore } from "../stores/authModalStore";
|
|
18
17
|
import { useAuth } from "../hooks/useAuth";
|
|
19
18
|
import { LoginForm } from "./LoginForm";
|
|
@@ -105,7 +104,9 @@ export const AuthBottomSheet: React.FC<AuthBottomSheetProps> = ({
|
|
|
105
104
|
onPress={handleClose}
|
|
106
105
|
hitSlop={{ top: 10, bottom: 10, left: 10, right: 10 }}
|
|
107
106
|
>
|
|
108
|
-
<
|
|
107
|
+
<Text style={[styles.closeIcon, { color: tokens.colors.textSecondary }]}>
|
|
108
|
+
✕
|
|
109
|
+
</Text>
|
|
109
110
|
</TouchableOpacity>
|
|
110
111
|
|
|
111
112
|
<View style={styles.header}>
|
|
@@ -156,6 +157,10 @@ const styles = StyleSheet.create({
|
|
|
156
157
|
padding: 8,
|
|
157
158
|
zIndex: 10,
|
|
158
159
|
},
|
|
160
|
+
closeIcon: {
|
|
161
|
+
fontSize: 24,
|
|
162
|
+
fontWeight: "400",
|
|
163
|
+
},
|
|
159
164
|
header: {
|
|
160
165
|
alignItems: "center",
|
|
161
166
|
marginBottom: 24,
|
|
@@ -14,6 +14,7 @@ export interface ProfileSectionConfig {
|
|
|
14
14
|
isAnonymous: boolean;
|
|
15
15
|
avatarUrl?: string;
|
|
16
16
|
accountSettingsRoute?: string;
|
|
17
|
+
benefits?: string[]; // App-specific benefits for anonymous users to encourage sign-in
|
|
17
18
|
}
|
|
18
19
|
|
|
19
20
|
export interface ProfileSectionProps {
|
|
@@ -111,6 +112,22 @@ export const ProfileSection: React.FC<ProfileSectionProps> = ({
|
|
|
111
112
|
{ borderTopColor: tokens.colors.border },
|
|
112
113
|
]}
|
|
113
114
|
>
|
|
115
|
+
{/* Benefits List */}
|
|
116
|
+
{profile.benefits && profile.benefits.length > 0 && (
|
|
117
|
+
<View style={styles.benefitsContainer}>
|
|
118
|
+
{profile.benefits.map((benefit, index) => (
|
|
119
|
+
<View key={index} style={styles.benefitItem}>
|
|
120
|
+
<Text style={[styles.benefitBullet, { color: tokens.colors.primary }]}>
|
|
121
|
+
✓
|
|
122
|
+
</Text>
|
|
123
|
+
<Text style={[styles.benefitText, { color: tokens.colors.textSecondary }]}>
|
|
124
|
+
{benefit}
|
|
125
|
+
</Text>
|
|
126
|
+
</View>
|
|
127
|
+
))}
|
|
128
|
+
</View>
|
|
129
|
+
)}
|
|
130
|
+
|
|
114
131
|
<TouchableOpacity
|
|
115
132
|
style={[
|
|
116
133
|
styles.ctaButton,
|
|
@@ -176,6 +193,25 @@ const styles = StyleSheet.create({
|
|
|
176
193
|
paddingTop: 12,
|
|
177
194
|
borderTopWidth: 1,
|
|
178
195
|
},
|
|
196
|
+
benefitsContainer: {
|
|
197
|
+
marginBottom: 16,
|
|
198
|
+
gap: 8,
|
|
199
|
+
},
|
|
200
|
+
benefitItem: {
|
|
201
|
+
flexDirection: "row",
|
|
202
|
+
alignItems: "flex-start",
|
|
203
|
+
gap: 8,
|
|
204
|
+
},
|
|
205
|
+
benefitBullet: {
|
|
206
|
+
fontSize: 16,
|
|
207
|
+
fontWeight: "600",
|
|
208
|
+
marginTop: 2,
|
|
209
|
+
},
|
|
210
|
+
benefitText: {
|
|
211
|
+
flex: 1,
|
|
212
|
+
fontSize: 14,
|
|
213
|
+
lineHeight: 20,
|
|
214
|
+
},
|
|
179
215
|
ctaButton: {
|
|
180
216
|
paddingVertical: 12,
|
|
181
217
|
borderRadius: 8,
|
|
@@ -12,7 +12,8 @@ import { AccountActions, type AccountActionsConfig } from "../components/Account
|
|
|
12
12
|
|
|
13
13
|
export interface AccountScreenConfig {
|
|
14
14
|
profile: ProfileSectionConfig;
|
|
15
|
-
accountActions
|
|
15
|
+
accountActions?: AccountActionsConfig;
|
|
16
|
+
isAnonymous: boolean;
|
|
16
17
|
}
|
|
17
18
|
|
|
18
19
|
export interface AccountScreenProps {
|
|
@@ -27,9 +28,17 @@ export const AccountScreen: React.FC<AccountScreenProps> = ({ config }) => {
|
|
|
27
28
|
style={[styles.container, { backgroundColor: tokens.colors.backgroundPrimary }]}
|
|
28
29
|
contentContainerStyle={styles.content}
|
|
29
30
|
>
|
|
30
|
-
<ProfileSection
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
<ProfileSection
|
|
32
|
+
profile={config.profile}
|
|
33
|
+
onSignIn={config.profile.isAnonymous ? config.accountActions?.onLogout : undefined}
|
|
34
|
+
/>
|
|
35
|
+
|
|
36
|
+
{!config.isAnonymous && config.accountActions && (
|
|
37
|
+
<>
|
|
38
|
+
<View style={styles.divider} />
|
|
39
|
+
<AccountActions config={config.accountActions} />
|
|
40
|
+
</>
|
|
41
|
+
)}
|
|
33
42
|
</ScrollView>
|
|
34
43
|
);
|
|
35
44
|
};
|