@umituz/react-native-ai-generation-content 1.17.149 → 1.17.151
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
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
import React, { useCallback } from "react";
|
|
8
8
|
import { View, ScrollView, StyleSheet } from "react-native";
|
|
9
|
-
import { useAppDesignTokens
|
|
9
|
+
import { useAppDesignTokens } from "@umituz/react-native-design-system";
|
|
10
10
|
import { DualImagePicker } from "../../../../presentation/components/image-picker/DualImagePicker";
|
|
11
11
|
import { AIGenerationForm } from "../../../../presentation/components/AIGenerationForm";
|
|
12
12
|
import { AIGenerationResult } from "../../../../presentation/components/display/AIGenerationResult";
|
|
@@ -27,8 +27,6 @@ export interface AIHugFeatureProps {
|
|
|
27
27
|
onSelectTargetImage: () => Promise<string | null>;
|
|
28
28
|
/** Save video callback */
|
|
29
29
|
onSaveVideo: (videoUrl: string) => Promise<void>;
|
|
30
|
-
/** Custom video player renderer - required for video playback */
|
|
31
|
-
renderVideoPlayer: (props: { videoUrl: string; size: number }) => React.ReactNode;
|
|
32
30
|
/** Called before processing starts. Return false to cancel. */
|
|
33
31
|
onBeforeProcess?: () => Promise<boolean>;
|
|
34
32
|
/** Optional custom processing modal renderer */
|
|
@@ -44,13 +42,10 @@ export const AIHugFeature: React.FC<AIHugFeatureProps> = ({
|
|
|
44
42
|
onSelectSourceImage,
|
|
45
43
|
onSelectTargetImage,
|
|
46
44
|
onSaveVideo,
|
|
47
|
-
renderVideoPlayer,
|
|
48
45
|
onBeforeProcess,
|
|
49
46
|
renderProcessingModal,
|
|
50
47
|
}) => {
|
|
51
48
|
const tokens = useAppDesignTokens();
|
|
52
|
-
const { width: screenWidth, horizontalPadding } = useResponsive();
|
|
53
|
-
const videoSize = screenWidth - horizontalPadding * 2;
|
|
54
49
|
|
|
55
50
|
const feature = useAIHugFeature({
|
|
56
51
|
config,
|
|
@@ -93,9 +88,7 @@ export const AIHugFeature: React.FC<AIHugFeatureProps> = ({
|
|
|
93
88
|
label: translations.tryAnotherText,
|
|
94
89
|
onPress: feature.reset,
|
|
95
90
|
}}
|
|
96
|
-
|
|
97
|
-
{renderVideoPlayer({ videoUrl: feature.processedVideoUrl, size: videoSize })}
|
|
98
|
-
</AIGenerationResult>
|
|
91
|
+
/>
|
|
99
92
|
</ScrollView>
|
|
100
93
|
);
|
|
101
94
|
}
|
|
@@ -142,31 +135,8 @@ const styles = StyleSheet.create({
|
|
|
142
135
|
content: {
|
|
143
136
|
paddingVertical: 16,
|
|
144
137
|
},
|
|
145
|
-
description: {
|
|
146
|
-
textAlign: "center",
|
|
147
|
-
marginHorizontal: 24,
|
|
148
|
-
marginBottom: 24,
|
|
149
|
-
lineHeight: 24,
|
|
150
|
-
},
|
|
151
138
|
pickerContainer: {
|
|
152
139
|
marginHorizontal: 16,
|
|
153
140
|
marginBottom: 16,
|
|
154
141
|
},
|
|
155
|
-
successText: {
|
|
156
|
-
textAlign: "center",
|
|
157
|
-
marginBottom: 24,
|
|
158
|
-
},
|
|
159
|
-
resultVideoContainer: {
|
|
160
|
-
alignItems: "center",
|
|
161
|
-
marginHorizontal: 24,
|
|
162
|
-
marginBottom: 24,
|
|
163
|
-
},
|
|
164
|
-
resultActions: {
|
|
165
|
-
marginHorizontal: 24,
|
|
166
|
-
gap: 12,
|
|
167
|
-
},
|
|
168
|
-
buttonContainer: {
|
|
169
|
-
marginHorizontal: 24,
|
|
170
|
-
marginTop: 8,
|
|
171
|
-
},
|
|
172
142
|
});
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
import React, { useCallback } from "react";
|
|
8
8
|
import { View, ScrollView, StyleSheet } from "react-native";
|
|
9
|
-
import { useAppDesignTokens
|
|
9
|
+
import { useAppDesignTokens } from "@umituz/react-native-design-system";
|
|
10
10
|
import { DualImagePicker } from "../../../../presentation/components/image-picker/DualImagePicker";
|
|
11
11
|
import { AIGenerationForm } from "../../../../presentation/components/AIGenerationForm";
|
|
12
12
|
import { AIGenerationResult } from "../../../../presentation/components/display/AIGenerationResult";
|
|
@@ -22,8 +22,6 @@ export interface AIKissFeatureProps {
|
|
|
22
22
|
onSelectSourceImage: () => Promise<string | null>;
|
|
23
23
|
onSelectTargetImage: () => Promise<string | null>;
|
|
24
24
|
onSaveVideo: (videoUrl: string) => Promise<void>;
|
|
25
|
-
/** Custom video player renderer - required for video playback */
|
|
26
|
-
renderVideoPlayer: (props: { videoUrl: string; size: number }) => React.ReactNode;
|
|
27
25
|
/** Called before processing starts. Return false to cancel. */
|
|
28
26
|
onBeforeProcess?: () => Promise<boolean>;
|
|
29
27
|
renderProcessingModal?: (props: {
|
|
@@ -38,13 +36,10 @@ export const AIKissFeature: React.FC<AIKissFeatureProps> = ({
|
|
|
38
36
|
onSelectSourceImage,
|
|
39
37
|
onSelectTargetImage,
|
|
40
38
|
onSaveVideo,
|
|
41
|
-
renderVideoPlayer,
|
|
42
39
|
onBeforeProcess,
|
|
43
40
|
renderProcessingModal,
|
|
44
41
|
}) => {
|
|
45
42
|
const tokens = useAppDesignTokens();
|
|
46
|
-
const { width: screenWidth, horizontalPadding } = useResponsive();
|
|
47
|
-
const videoSize = screenWidth - horizontalPadding * 2;
|
|
48
43
|
|
|
49
44
|
const feature = useAIKissFeature({
|
|
50
45
|
config,
|
|
@@ -87,9 +82,7 @@ export const AIKissFeature: React.FC<AIKissFeatureProps> = ({
|
|
|
87
82
|
label: translations.tryAnotherText,
|
|
88
83
|
onPress: feature.reset,
|
|
89
84
|
}}
|
|
90
|
-
|
|
91
|
-
{renderVideoPlayer({ videoUrl: feature.processedVideoUrl, size: videoSize })}
|
|
92
|
-
</AIGenerationResult>
|
|
85
|
+
/>
|
|
93
86
|
</ScrollView>
|
|
94
87
|
);
|
|
95
88
|
}
|
|
@@ -136,31 +129,8 @@ const styles = StyleSheet.create({
|
|
|
136
129
|
content: {
|
|
137
130
|
paddingVertical: 16,
|
|
138
131
|
},
|
|
139
|
-
description: {
|
|
140
|
-
textAlign: "center",
|
|
141
|
-
marginHorizontal: 24,
|
|
142
|
-
marginBottom: 24,
|
|
143
|
-
lineHeight: 24,
|
|
144
|
-
},
|
|
145
132
|
pickerContainer: {
|
|
146
133
|
marginHorizontal: 16,
|
|
147
134
|
marginBottom: 16,
|
|
148
135
|
},
|
|
149
|
-
successText: {
|
|
150
|
-
textAlign: "center",
|
|
151
|
-
marginBottom: 24,
|
|
152
|
-
},
|
|
153
|
-
resultVideoContainer: {
|
|
154
|
-
alignItems: "center",
|
|
155
|
-
marginHorizontal: 24,
|
|
156
|
-
marginBottom: 24,
|
|
157
|
-
},
|
|
158
|
-
resultActions: {
|
|
159
|
-
marginHorizontal: 24,
|
|
160
|
-
gap: 12,
|
|
161
|
-
},
|
|
162
|
-
buttonContainer: {
|
|
163
|
-
marginHorizontal: 24,
|
|
164
|
-
marginTop: 8,
|
|
165
|
-
},
|
|
166
136
|
});
|