Skip to content

Commit 1b142c1

Browse files
committed
feat: Enhance image handling in group settings and home screen
1 parent bcd7fe7 commit 1b142c1

File tree

2 files changed

+26
-6
lines changed

2 files changed

+26
-6
lines changed

frontend/screens/GroupSettingsScreen.js

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,10 +84,22 @@ const GroupSettingsScreen = ({ route, navigation }) => {
8484
if (!isAdmin) return;
8585
const updates = {};
8686
if (name && name !== group?.name) updates.name = name;
87-
// Prefer picked image (base64 -> data URL). If none, ignore unless we had previous URL change via choices.
87+
88+
// Handle different icon types
8889
if (pickedImage?.base64) {
90+
// If user picked an image, use it as imageUrl
8991
updates.imageUrl = `data:image/jpeg;base64,${pickedImage.base64}`;
92+
} else if (icon && icon !== (group?.imageUrl || group?.icon || "")) {
93+
// If user selected an emoji and it's different from current
94+
// Check if it's an emoji (not a URL)
95+
const isEmoji = ICON_CHOICES.includes(icon);
96+
if (isEmoji) {
97+
updates.imageUrl = icon; // Store emoji as imageUrl for now
98+
} else {
99+
updates.imageUrl = icon; // Store other text/URL as imageUrl
100+
}
90101
}
102+
91103
if (Object.keys(updates).length === 0)
92104
return Alert.alert("Nothing to update");
93105
try {
@@ -320,12 +332,20 @@ const GroupSettingsScreen = ({ route, navigation }) => {
320332
>
321333
{pickedImage ? "Change Image" : "Upload Image"}
322334
</Button>
323-
{(pickedImage?.uri || group?.imageUrl) && (
335+
{pickedImage?.uri ? (
324336
<Image
325-
source={{ uri: pickedImage?.uri || group?.imageUrl }}
337+
source={{ uri: pickedImage.uri }}
326338
style={{ width: 48, height: 48, borderRadius: 24 }}
327339
/>
328-
)}
340+
) : group?.imageUrl &&
341+
/^(https?:|data:image)/.test(group.imageUrl) ? (
342+
<Image
343+
source={{ uri: group.imageUrl }}
344+
style={{ width: 48, height: 48, borderRadius: 24 }}
345+
/>
346+
) : group?.imageUrl ? (
347+
<Text style={{ fontSize: 32 }}>{group.imageUrl}</Text>
348+
) : null}
329349
</View>
330350
{isAdmin && (
331351
<Button

frontend/screens/HomeScreen.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,8 @@ const HomeScreen = ({ navigation }) => {
156156
return "#4CAF50"; // Default green
157157
};
158158

159-
const isImage = item.imageUrl && /^(https?:)/.test(item.imageUrl);
159+
const isImage =
160+
item.imageUrl && /^(https?:|data:image)/.test(item.imageUrl);
160161
const groupIcon = item.imageUrl || item.name?.charAt(0) || "?";
161162
return (
162163
<Card
@@ -180,7 +181,6 @@ const HomeScreen = ({ navigation }) => {
180181
}
181182
/>
182183
<Card.Content>
183-
<Text>Join Code: {item.joinCode}</Text>
184184
<Text style={[styles.settlementStatus, { color: getStatusColor() }]}>
185185
{getSettlementStatusText()}
186186
</Text>

0 commit comments

Comments
 (0)