@umituz/react-native-ai-generation-content 1.17.249 → 1.17.251
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-ai-generation-content",
|
|
3
|
-
"version": "1.17.
|
|
3
|
+
"version": "1.17.251",
|
|
4
4
|
"description": "Provider-agnostic AI generation orchestration for React Native with result preview components",
|
|
5
5
|
"main": "src/index.ts",
|
|
6
6
|
"types": "src/index.ts",
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Couple Feature Screen
|
|
3
|
-
* Generic screen for couple feature selection
|
|
3
|
+
* Generic screen for couple feature selection with NavigationHeader pattern
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import React from "react";
|
|
7
|
-
import { View, StyleSheet,
|
|
7
|
+
import { View, StyleSheet, TouchableOpacity } from "react-native";
|
|
8
8
|
import {
|
|
9
|
-
AtomicButton,
|
|
10
9
|
AtomicText,
|
|
10
|
+
AtomicIcon,
|
|
11
|
+
NavigationHeader,
|
|
12
|
+
ScreenLayout,
|
|
11
13
|
useAppDesignTokens,
|
|
12
14
|
} from "@umituz/react-native-design-system";
|
|
13
15
|
import type { CoupleFeatureId, CoupleFeatureSelection } from "../../domain/types";
|
|
@@ -44,6 +46,14 @@ export const CoupleFeatureScreen: React.FC<CoupleFeatureScreenProps> = ({
|
|
|
44
46
|
const tokens = useAppDesignTokens();
|
|
45
47
|
const config = COUPLE_FEATURE_CONFIGS[featureId];
|
|
46
48
|
|
|
49
|
+
if (__DEV__) {
|
|
50
|
+
console.log("[CoupleFeatureScreen] Render:", {
|
|
51
|
+
featureId,
|
|
52
|
+
hasConfig: !!config,
|
|
53
|
+
hasComponent: !!FeatureComponentMap[featureId],
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
|
|
47
57
|
if (!config) return null;
|
|
48
58
|
|
|
49
59
|
const FeatureComponent = FeatureComponentMap[featureId];
|
|
@@ -57,69 +67,47 @@ export const CoupleFeatureScreen: React.FC<CoupleFeatureScreenProps> = ({
|
|
|
57
67
|
};
|
|
58
68
|
|
|
59
69
|
return (
|
|
60
|
-
<View
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
{
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
70
|
+
<View style={[styles.container, { backgroundColor: tokens.colors.backgroundPrimary }]}>
|
|
71
|
+
<NavigationHeader
|
|
72
|
+
title={t(`${config.translationPrefix}.title`)}
|
|
73
|
+
onBackPress={onBack}
|
|
74
|
+
rightElement={
|
|
75
|
+
<TouchableOpacity
|
|
76
|
+
onPress={onContinue}
|
|
77
|
+
activeOpacity={0.7}
|
|
78
|
+
style={{
|
|
79
|
+
flexDirection: "row",
|
|
80
|
+
alignItems: "center",
|
|
81
|
+
backgroundColor: tokens.colors.primary,
|
|
82
|
+
paddingHorizontal: tokens.spacing.md,
|
|
83
|
+
paddingVertical: tokens.spacing.xs,
|
|
84
|
+
borderRadius: tokens.borders.radius.full,
|
|
85
|
+
}}
|
|
86
|
+
>
|
|
87
|
+
<AtomicText
|
|
88
|
+
type="bodyMedium"
|
|
89
|
+
style={{ fontWeight: "800", color: tokens.colors.onPrimary, marginRight: 4 }}
|
|
90
|
+
>
|
|
91
|
+
{t("common.continue")}
|
|
92
|
+
</AtomicText>
|
|
93
|
+
<AtomicIcon name="arrow-forward" size="sm" color="onPrimary" />
|
|
94
|
+
</TouchableOpacity>
|
|
95
|
+
}
|
|
96
|
+
/>
|
|
97
|
+
<ScreenLayout
|
|
98
|
+
edges={["left", "right"]}
|
|
99
|
+
backgroundColor="transparent"
|
|
100
|
+
scrollable={true}
|
|
101
|
+
contentContainerStyle={styles.scrollContent}
|
|
102
|
+
hideScrollIndicator={true}
|
|
84
103
|
>
|
|
85
|
-
<
|
|
86
|
-
|
|
87
|
-
onPress={onBack}
|
|
88
|
-
variant="secondary"
|
|
89
|
-
style={styles.backButton}
|
|
90
|
-
/>
|
|
91
|
-
<AtomicButton
|
|
92
|
-
title={t("common.continue")}
|
|
93
|
-
onPress={onContinue}
|
|
94
|
-
variant="primary"
|
|
95
|
-
style={styles.continueButton}
|
|
96
|
-
/>
|
|
97
|
-
</View>
|
|
104
|
+
<FeatureComponent {...selectorProps} />
|
|
105
|
+
</ScreenLayout>
|
|
98
106
|
</View>
|
|
99
107
|
);
|
|
100
108
|
};
|
|
101
109
|
|
|
102
110
|
const styles = StyleSheet.create({
|
|
103
|
-
container: {
|
|
104
|
-
|
|
105
|
-
},
|
|
106
|
-
header: {
|
|
107
|
-
padding: 16,
|
|
108
|
-
paddingTop: 20,
|
|
109
|
-
},
|
|
110
|
-
content: {
|
|
111
|
-
flex: 1,
|
|
112
|
-
},
|
|
113
|
-
footer: {
|
|
114
|
-
flexDirection: "row",
|
|
115
|
-
padding: 16,
|
|
116
|
-
borderTopWidth: 1,
|
|
117
|
-
gap: 12,
|
|
118
|
-
},
|
|
119
|
-
backButton: {
|
|
120
|
-
flex: 1,
|
|
121
|
-
},
|
|
122
|
-
continueButton: {
|
|
123
|
-
flex: 2,
|
|
124
|
-
},
|
|
111
|
+
container: { flex: 1 },
|
|
112
|
+
scrollContent: { paddingBottom: 24 },
|
|
125
113
|
});
|