@umituz/react-native-ai-generation-content 1.17.15 → 1.17.17

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.
Files changed (30) hide show
  1. package/package.json +2 -1
  2. package/src/domains/creations/presentation/components/CreationCard.tsx +2 -1
  3. package/src/domains/creations/presentation/components/CreationDetail/DetailVideo.tsx +123 -0
  4. package/src/domains/creations/presentation/components/CreationDetail/index.ts +1 -0
  5. package/src/domains/creations/presentation/screens/CreationDetailScreen.tsx +24 -4
  6. package/src/domains/creations/presentation/screens/CreationsGalleryScreen.tsx +89 -57
  7. package/src/features/text-to-image/domain/constants/index.ts +14 -0
  8. package/src/features/text-to-image/domain/constants/options.constants.ts +42 -0
  9. package/src/features/text-to-image/domain/constants/styles.constants.ts +34 -0
  10. package/src/features/text-to-image/domain/index.ts +6 -0
  11. package/src/features/text-to-image/domain/types/config.types.ts +71 -0
  12. package/src/features/text-to-image/domain/types/form.types.ts +58 -0
  13. package/src/features/text-to-image/domain/types/index.ts +29 -1
  14. package/src/features/text-to-image/domain/types/text-to-image.types.ts +0 -8
  15. package/src/features/text-to-image/index.ts +92 -4
  16. package/src/features/text-to-image/presentation/components/AspectRatioSelector.tsx +98 -0
  17. package/src/features/text-to-image/presentation/components/ExamplePrompts.tsx +88 -0
  18. package/src/features/text-to-image/presentation/components/ImageSizeSelector.tsx +98 -0
  19. package/src/features/text-to-image/presentation/components/NumImagesSelector.tsx +93 -0
  20. package/src/features/text-to-image/presentation/components/OutputFormatSelector.tsx +98 -0
  21. package/src/features/text-to-image/presentation/components/PromptInput.tsx +90 -0
  22. package/src/features/text-to-image/presentation/components/SettingsSheet.tsx +139 -0
  23. package/src/features/text-to-image/presentation/components/StyleSelector.tsx +110 -0
  24. package/src/features/text-to-image/presentation/components/TextToImageGenerateButton.tsx +84 -0
  25. package/src/features/text-to-image/presentation/components/index.ts +41 -0
  26. package/src/features/text-to-image/presentation/hooks/index.ts +25 -0
  27. package/src/features/text-to-image/presentation/hooks/useFormState.ts +103 -0
  28. package/src/features/text-to-image/presentation/hooks/useGeneration.ts +99 -0
  29. package/src/features/text-to-image/presentation/hooks/useTextToImageForm.ts +58 -0
  30. package/src/features/text-to-image/presentation/index.ts +6 -0
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Text-to-Image Form Hook
3
+ * Composes form state and generation for complete form management
4
+ */
5
+
6
+ import { useMemo } from "react";
7
+ import { useFormState, type UseFormStateOptions } from "./useFormState";
8
+ import { useGeneration, type GenerationState } from "./useGeneration";
9
+ import type {
10
+ TextToImageFormState,
11
+ TextToImageFormActions,
12
+ TextToImageCallbacks,
13
+ } from "../../domain/types";
14
+
15
+ export interface UseTextToImageFormOptions extends UseFormStateOptions {
16
+ callbacks: TextToImageCallbacks;
17
+ }
18
+
19
+ export interface UseTextToImageFormReturn {
20
+ state: TextToImageFormState;
21
+ actions: TextToImageFormActions;
22
+ generationState: GenerationState;
23
+ totalCost: number;
24
+ handleGenerate: () => Promise<void>;
25
+ isReady: boolean;
26
+ }
27
+
28
+ export function useTextToImageForm(
29
+ options: UseTextToImageFormOptions
30
+ ): UseTextToImageFormReturn {
31
+ const { callbacks, defaults } = options;
32
+
33
+ const { state, actions } = useFormState({ defaults });
34
+
35
+ const { generationState, totalCost, handleGenerate } = useGeneration({
36
+ formState: state,
37
+ callbacks,
38
+ onPromptCleared: actions.reset,
39
+ });
40
+
41
+ const isReady = useMemo(
42
+ () => state.prompt.trim().length > 0 && !generationState.isGenerating,
43
+ [state.prompt, generationState.isGenerating]
44
+ );
45
+
46
+ const wrappedHandleGenerate = async () => {
47
+ await handleGenerate();
48
+ };
49
+
50
+ return {
51
+ state,
52
+ actions,
53
+ generationState,
54
+ totalCost,
55
+ handleGenerate: wrappedHandleGenerate,
56
+ isReady,
57
+ };
58
+ }
@@ -1 +1,7 @@
1
+ /**
2
+ * Text-to-Image Presentation Layer
3
+ * Hooks and components exports
4
+ */
5
+
1
6
  export * from "./hooks";
7
+ export * from "./components";