@umituz/react-native-ai-generation-content 1.12.14 → 1.12.15

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.12.14",
3
+ "version": "1.12.15",
4
4
  "description": "Provider-agnostic AI generation orchestration for React Native",
5
5
  "main": "src/index.ts",
6
6
  "types": "src/index.ts",
@@ -91,17 +91,7 @@ export function CreationCard({
91
91
  width: 100,
92
92
  height: 100,
93
93
  },
94
- favoriteBtn: {
95
- position: "absolute",
96
- top: 4,
97
- right: 4,
98
- width: 28,
99
- height: 28,
100
- borderRadius: 14,
101
- backgroundColor: "rgba(255,255,255,0.7)",
102
- justifyContent: "center",
103
- alignItems: "center",
104
- },
94
+
105
95
  selectionOverlay: {
106
96
  position: "absolute",
107
97
  top: 4,
@@ -167,15 +157,6 @@ export function CreationCard({
167
157
  {isSelected && <AtomicIcon name="checkmark-circle" size="xs" color="white" />}
168
158
  </View>
169
159
  )}
170
- {!isSelectionMode && onToggleFavorite && (
171
- <TouchableOpacity style={styles.favoriteBtn} onPress={handleToggleFavorite}>
172
- <AtomicIcon
173
- name={creation.isFavorite ? "heart" : "heart-outline"}
174
- size="xs"
175
- color={creation.isFavorite ? "error" : "secondary"}
176
- />
177
- </TouchableOpacity>
178
- )}
179
160
  </View>
180
161
  <View style={styles.content}>
181
162
  <View>
@@ -187,6 +168,20 @@ export function CreationCard({
187
168
  </View>
188
169
  {!isSelectionMode && (
189
170
  <View style={styles.actions}>
171
+ {onView && (
172
+ <TouchableOpacity style={styles.actionBtn} onPress={handleView}>
173
+ <AtomicIcon name="eye" size="sm" color="primary" />
174
+ </TouchableOpacity>
175
+ )}
176
+ {onToggleFavorite && (
177
+ <TouchableOpacity style={styles.actionBtn} onPress={handleToggleFavorite}>
178
+ <AtomicIcon
179
+ name={creation.isFavorite ? "heart" : "heart-outline"}
180
+ size="sm"
181
+ color={creation.isFavorite ? "error" : "primary"}
182
+ />
183
+ </TouchableOpacity>
184
+ )}
190
185
  <TouchableOpacity style={styles.actionBtn} onPress={handleShare}>
191
186
  <AtomicIcon name="share-social" size="sm" color="primary" />
192
187
  </TouchableOpacity>
@@ -40,6 +40,8 @@ interface CreationsGalleryScreenProps {
40
40
  readonly onBackPress?: () => void;
41
41
  readonly headerTitle?: string;
42
42
  readonly showCount?: boolean;
43
+ readonly enableSearch?: boolean;
44
+ readonly showGalleryHeader?: boolean;
43
45
  }
44
46
 
45
47
  export function CreationsGalleryScreen({
@@ -54,6 +56,8 @@ export function CreationsGalleryScreen({
54
56
  onBackPress,
55
57
  headerTitle,
56
58
  showCount = true,
59
+ enableSearch = true,
60
+ showGalleryHeader = true,
57
61
  }: CreationsGalleryScreenProps) {
58
62
  const tokens = useAppDesignTokens();
59
63
  const { share } = useSharing();
@@ -186,7 +190,7 @@ export function CreationsGalleryScreen({
186
190
  } : undefined}
187
191
  />
188
192
  )}
189
- {!isSelectionMode && (
193
+ {!isSelectionMode && enableSearch && (
190
194
  <View style={{ paddingHorizontal: tokens.spacing.md, paddingBottom: tokens.spacing.xs }}>
191
195
  <SearchBar
192
196
  placeholder={t("common.search") || "Search Prompt..."}
@@ -200,19 +204,21 @@ export function CreationsGalleryScreen({
200
204
  contentContainerStyle={{ paddingHorizontal: 0 }}
201
205
  >
202
206
  {(!creations || creations?.length === 0) && !isLoading ? null : (
203
- <GalleryHeader
204
- title={showScreenHeader || isSelectionMode ? '' : screenTitle}
205
- count={filtered.length}
206
- countLabel=''
207
- subtitle={showCount ? t(config.translations.photoCount, { count: filtered.length }) : undefined}
208
- isFiltered={isFiltered}
209
- filterLabel={t(config.translations.filterLabel) || 'Filter'}
210
- onFilterPress={() => filterSheetRef.current?.present()}
211
- onFavoritesPress={() => setShowOnlyFavorites(!showOnlyFavorites)}
212
- showOnlyFavorites={showOnlyFavorites}
213
- isFilterEnabled={config.enableFiltering ?? false}
214
- showCount={showCount}
215
- />
207
+ showGalleryHeader ? (
208
+ <GalleryHeader
209
+ title={showScreenHeader || isSelectionMode ? '' : screenTitle}
210
+ count={filtered.length}
211
+ countLabel=''
212
+ subtitle={showCount ? t(config.translations.photoCount, { count: filtered.length }) : undefined}
213
+ isFiltered={isFiltered}
214
+ filterLabel={t(config.translations.filterLabel) || 'Filter'}
215
+ onFilterPress={() => filterSheetRef.current?.present()}
216
+ onFavoritesPress={() => setShowOnlyFavorites(!showOnlyFavorites)}
217
+ showOnlyFavorites={showOnlyFavorites}
218
+ isFilterEnabled={config.enableFiltering ?? false}
219
+ showCount={showCount}
220
+ />
221
+ ) : null
216
222
  )}
217
223
 
218
224
  {/* Main Content Grid - handles empty/loading via ListEmptyComponent */}