@umituz/react-native-ai-generation-content 1.17.101 → 1.17.103

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.101",
3
+ "version": "1.17.103",
4
4
  "description": "Provider-agnostic AI generation orchestration for React Native",
5
5
  "main": "src/index.ts",
6
6
  "types": "src/index.ts",
@@ -44,35 +44,56 @@ export function useGeneration(options: UseGenerationOptions): UseGenerationRetur
44
44
  const totalCost = callbacks.calculateCost(formState.numImages, formState.selectedModel);
45
45
 
46
46
  const handleGenerate = useCallback(async (): Promise<TextToImageGenerationResult | null> => {
47
- if (__DEV__) console.log("[TextToImage] handleGenerate called");
47
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
48
+ // eslint-disable-next-line no-console
49
+ console.log("[TextToImage] handleGenerate called");
50
+ }
48
51
 
49
52
  const trimmedPrompt = formState.prompt.trim();
50
53
 
51
54
  if (!trimmedPrompt) {
52
- if (__DEV__) console.log("[TextToImage] No prompt provided");
55
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
56
+ // eslint-disable-next-line no-console
57
+ console.log("[TextToImage] No prompt provided");
58
+ }
53
59
  setGenerationState((prev) => ({ ...prev, error: "Prompt is required" }));
54
60
  return null;
55
61
  }
56
62
 
57
63
  const isAuth = callbacks.isAuthenticated();
58
- if (__DEV__) console.log("[TextToImage] isAuthenticated:", isAuth);
64
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
65
+ // eslint-disable-next-line no-console
66
+ console.log("[TextToImage] isAuthenticated:", isAuth);
67
+ }
59
68
 
60
69
  if (!isAuth) {
61
- if (__DEV__) console.log("[TextToImage] Auth required - calling onAuthRequired");
70
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
71
+ // eslint-disable-next-line no-console
72
+ console.log("[TextToImage] Auth required - calling onAuthRequired");
73
+ }
62
74
  callbacks.onAuthRequired?.();
63
75
  return null;
64
76
  }
65
77
 
66
78
  const affordable = callbacks.canAfford(totalCost);
67
- if (__DEV__) console.log("[TextToImage] canAfford:", affordable, "totalCost:", totalCost);
79
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
80
+ // eslint-disable-next-line no-console
81
+ console.log("[TextToImage] canAfford:", affordable, "totalCost:", totalCost);
82
+ }
68
83
 
69
84
  if (!affordable) {
70
- if (__DEV__) console.log("[TextToImage] Credits required - calling onCreditsRequired");
85
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
86
+ // eslint-disable-next-line no-console
87
+ console.log("[TextToImage] Credits required - calling onCreditsRequired");
88
+ }
71
89
  callbacks.onCreditsRequired?.(totalCost);
72
90
  return null;
73
91
  }
74
92
 
75
- if (__DEV__) console.log("[TextToImage] Starting generation...");
93
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
94
+ // eslint-disable-next-line no-console
95
+ console.log("[TextToImage] Starting generation...");
96
+ }
76
97
  setGenerationState({ isGenerating: true, progress: 0, error: null });
77
98
 
78
99
  const request: TextToImageGenerationRequest = {
@@ -87,19 +108,36 @@ export function useGeneration(options: UseGenerationOptions): UseGenerationRetur
87
108
  outputFormat: formState.outputFormat,
88
109
  };
89
110
 
90
- if (__DEV__) console.log("[TextToImage] Request:", JSON.stringify(request, null, 2));
111
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
112
+ // eslint-disable-next-line no-console
113
+ console.log("[TextToImage] Request:", JSON.stringify(request, null, 2));
114
+ }
91
115
 
92
116
  try {
93
117
  const result = await callbacks.executeGeneration(request);
94
- if (__DEV__) console.log("[TextToImage] Result:", JSON.stringify(result, null, 2));
118
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
119
+ const logResult = {
120
+ success: result.success,
121
+ imageCount: result.success ? result.imageUrls?.length : 0,
122
+ error: !result.success ? result.error : undefined,
123
+ };
124
+ // eslint-disable-next-line no-console
125
+ console.log("[TextToImage] Result:", JSON.stringify(logResult));
126
+ }
95
127
 
96
128
  if (result.success === true) {
97
- if (__DEV__) console.log("[TextToImage] Success! Image URLs:", result.imageUrls);
129
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
130
+ // eslint-disable-next-line no-console
131
+ console.log("[TextToImage] Success! Generated", result.imageUrls?.length, "image(s)");
132
+ }
98
133
  callbacks.onSuccess?.(result.imageUrls);
99
134
  onPromptCleared?.();
100
135
  setGenerationState({ isGenerating: false, progress: 100, error: null });
101
136
  } else {
102
- if (__DEV__) console.log("[TextToImage] Generation failed:", result.error);
137
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
138
+ // eslint-disable-next-line no-console
139
+ console.log("[TextToImage] Generation failed:", result.error);
140
+ }
103
141
  setGenerationState({ isGenerating: false, progress: 0, error: result.error });
104
142
  callbacks.onError?.(result.error);
105
143
  }
@@ -107,7 +145,10 @@ export function useGeneration(options: UseGenerationOptions): UseGenerationRetur
107
145
  return result;
108
146
  } catch (error) {
109
147
  const message = error instanceof Error ? error.message : String(error);
110
- if (__DEV__) console.error("[TextToImage] Exception:", message);
148
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
149
+ // eslint-disable-next-line no-console
150
+ console.error("[TextToImage] Exception:", message);
151
+ }
111
152
  setGenerationState({ isGenerating: false, progress: 0, error: message });
112
153
  callbacks.onError?.(message);
113
154
  return null;
@@ -24,6 +24,14 @@ const defaultAnalytics = {
24
24
  * @param services - App-specific service implementations
25
25
  */
26
26
  export function configureAppServices(services: IAppServices): void {
27
+ if (appServices !== null) {
28
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
29
+ // eslint-disable-next-line no-console
30
+ console.log("[AppServices] Already configured, skipping");
31
+ }
32
+ return;
33
+ }
34
+
27
35
  if (typeof __DEV__ !== "undefined" && __DEV__) {
28
36
  // eslint-disable-next-line no-console
29
37
  console.log("[AppServices] Configuring app services");
@@ -23,10 +23,16 @@ export async function prepareImage(uri: string): Promise<string> {
23
23
  export function createDevCallbacks(featureName: string) {
24
24
  return {
25
25
  onSuccess: (result: unknown) => {
26
- if (__DEV__) console.log(`[${featureName}] Success:`, result);
26
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
27
+ // eslint-disable-next-line no-console
28
+ console.log(`[${featureName}] Success:`, result);
29
+ }
27
30
  },
28
31
  onError: (error: unknown) => {
29
- if (__DEV__) console.error(`[${featureName}] Error:`, error);
32
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
33
+ // eslint-disable-next-line no-console
34
+ console.error(`[${featureName}] Error:`, error);
35
+ }
30
36
  },
31
37
  };
32
38
  }
@@ -44,7 +50,10 @@ async function checkCreditGuard(cost: number, featureName: string): Promise<bool
44
50
  const paywallService = getPaywallService();
45
51
 
46
52
  if (!authService.isAuthenticated()) {
47
- if (__DEV__) console.log(`[${featureName}] Auth required`);
53
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
54
+ // eslint-disable-next-line no-console
55
+ console.log(`[${featureName}] Auth required`);
56
+ }
48
57
  try {
49
58
  authService.requireAuth();
50
59
  } catch {
@@ -55,7 +64,10 @@ async function checkCreditGuard(cost: number, featureName: string): Promise<bool
55
64
 
56
65
  const hasCredits = await creditService.checkCredits(cost);
57
66
  if (!hasCredits) {
58
- if (__DEV__) console.log(`[${featureName}] Insufficient credits`);
67
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
68
+ // eslint-disable-next-line no-console
69
+ console.log(`[${featureName}] Insufficient credits`);
70
+ }
59
71
  paywallService.showPaywall(cost);
60
72
  return false;
61
73
  }
@@ -44,15 +44,18 @@ export const AIGenerationForm: React.FC<AIGenerationFormProps> = ({
44
44
  translations,
45
45
  children,
46
46
  }) => {
47
- // Log immediately on every render
48
- if (__DEV__) console.log("[AIGenerationForm] RENDERING NOW - hideGenerateButton:", hideGenerateButton);
47
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
48
+ // eslint-disable-next-line no-console
49
+ console.log("[AIGenerationForm] RENDERING NOW - hideGenerateButton:", hideGenerateButton);
50
+ }
49
51
 
50
52
  const tokens = useAppDesignTokens();
51
53
  const isAdvancedVisible = showAdvanced !== undefined ? showAdvanced : true;
52
54
  const buttonIsDisabled = onPromptChange ? !prompt?.trim() : false;
53
55
 
54
56
  useEffect(() => {
55
- if (__DEV__) {
57
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
58
+ // eslint-disable-next-line no-console
56
59
  console.log("[AIGenerationForm] MOUNTED/UPDATED - prompt:", prompt, "isGenerating:", isGenerating, "buttonIsDisabled:", buttonIsDisabled, "hideGenerateButton:", hideGenerateButton);
57
60
  }
58
61
  }, [prompt, isGenerating, buttonIsDisabled, hideGenerateButton]);
@@ -42,8 +42,10 @@ export const GenerateButton: React.FC<GenerateButtonProps> = ({
42
42
  onAccessoryRightPress,
43
43
  style,
44
44
  }) => {
45
- // Log immediately on every render
46
- if (__DEV__) console.log("[GenerateButton] RENDERING NOW");
45
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
46
+ // eslint-disable-next-line no-console
47
+ console.log("[GenerateButton] RENDERING NOW");
48
+ }
47
49
 
48
50
  const tokens = useAppDesignTokens();
49
51
  const disabled = isDisabled || isProcessing;
@@ -51,13 +53,17 @@ export const GenerateButton: React.FC<GenerateButtonProps> = ({
51
53
  const finalDisplayText = costLabel ? `${displayText} (${costLabel})` : displayText;
52
54
 
53
55
  useEffect(() => {
54
- if (__DEV__) {
56
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
57
+ // eslint-disable-next-line no-console
55
58
  console.log("[GenerateButton] MOUNTED/UPDATED - isDisabled:", isDisabled, "isProcessing:", isProcessing, "disabled:", disabled, "text:", text);
56
59
  }
57
60
  }, [isDisabled, isProcessing, disabled, text]);
58
61
 
59
62
  const handlePress = () => {
60
- if (__DEV__) console.log("[GenerateButton] PRESSED - disabled:", disabled, "isDisabled:", isDisabled, "isProcessing:", isProcessing);
63
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
64
+ // eslint-disable-next-line no-console
65
+ console.log("[GenerateButton] PRESSED - disabled:", disabled, "isDisabled:", isDisabled, "isProcessing:", isProcessing);
66
+ }
61
67
  if (!disabled) {
62
68
  onPress();
63
69
  }
@@ -39,7 +39,11 @@ export function useGenerationCallbacksBuilder<TRequest, TResult>(
39
39
  );
40
40
 
41
41
  const onAuthRequired = useCallback(() => {
42
- config.showAuthModal ? config.showAuthModal() : config.openPaywall();
42
+ if (config.showAuthModal) {
43
+ config.showAuthModal();
44
+ } else {
45
+ config.openPaywall();
46
+ }
43
47
  }, [config]);
44
48
 
45
49
  const onCreditsRequired = useCallback(() => {
@@ -59,6 +63,7 @@ export function useGenerationCallbacksBuilder<TRequest, TResult>(
59
63
 
60
64
  if (!canAfford()) {
61
65
  if (typeof __DEV__ !== "undefined" && __DEV__) {
66
+ // eslint-disable-next-line no-console
62
67
  console.log("[Generation] Insufficient credits", {
63
68
  balance: config.creditBalance,
64
69
  cost: config.creditCost,