@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.249",
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, ScrollView } from "react-native";
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
- style={[
62
- styles.container,
63
- { backgroundColor: tokens.colors.backgroundPrimary },
64
- ]}
65
- >
66
- <View style={styles.header}>
67
- <AtomicText
68
- type="headlineMedium"
69
- style={{ color: tokens.colors.textPrimary }}
70
- >
71
- {t(`${config.translationPrefix}.title`)}
72
- </AtomicText>
73
- </View>
74
-
75
- <ScrollView style={styles.content} showsVerticalScrollIndicator={false}>
76
- <FeatureComponent {...selectorProps} />
77
- </ScrollView>
78
-
79
- <View
80
- style={[
81
- styles.footer,
82
- { borderTopColor: tokens.colors.borderLight },
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
- <AtomicButton
86
- title={t("common.back")}
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
- flex: 1,
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
  });