Fixes from user testing on a real device: - Feed: replaced an invisible spacing-only separator with an actual hairline divider between posts. - Android launcher icon showed Expo's default placeholder (a blue arrow) because the app icon and the Android adaptive-icon layers (foreground/background/monochrome) are two separate asset sets — only icon.png/favicon.png had been replaced. Added scripts/derive-adaptive- icon.js to crop the paw glyph out of icon.png (detected by its marigold color) and generate all three adaptive-icon layers plus the splash icon; this is an explicit placeholder per user's own call, not final art. New: full pet profile (app/(app)/pets/[petId]/), matching web's src/app/(app)/pets/[petId]/page.tsx: - View: identity, species, bio/adoption story, follower/following counts (tappable → list screens), the pet's own posts below. - Follow/unfollow with real initial state (follows.isFollowing) and optimistic toggle — unlike feed reactions, this endpoint actually exists, so no need to fake an initial state. - Edit screen (name/nickname/bio/adoption story via pets.update) for the owner's own pets. - Tapping a pet (feed header, Explore card, Pets-tab row) now opens this profile instead of nowhere; the Pets tab's active-pet switch is now a separate checkmark control instead of overloading the whole row tap. PostCard's post-shape prop is now structural rather than tied to feed.getFeed's output type, since posts.byPetId selects `pet` via the narrower petIdentitySelect (no isVerified/owner) — both need to satisfy the same component. Verified end-to-end on-device: feed separator visible, own-pet profile shows a working Bearbeiten button whose form is correctly prefilled (a stray edit was made to Bianca's nickname field by mistake during testing and was discarded via back-navigation without saving — never sent to the server), someone else's pet profile shows a working Follow/Unfollow toggle, followers list navigates correctly, and the home-screen launcher icon now shows the paw instead of the default Expo icon.
38 lines
936 B
JSON
38 lines
936 B
JSON
{
|
|
"expo": {
|
|
"name": "PawFeed",
|
|
"slug": "pawfeed-mobile",
|
|
"scheme": "pawfeed",
|
|
"version": "1.0.0",
|
|
"orientation": "portrait",
|
|
"icon": "./assets/icon.png",
|
|
"userInterfaceStyle": "light",
|
|
"newArchEnabled": true,
|
|
"ios": {
|
|
"supportsTablet": true,
|
|
"bundleIdentifier": "org.pawfeed.app"
|
|
},
|
|
"android": {
|
|
"package": "org.pawfeed.app",
|
|
"adaptiveIcon": {
|
|
"backgroundColor": "#fafafa",
|
|
"foregroundImage": "./assets/android-icon-foreground.png",
|
|
"backgroundImage": "./assets/android-icon-background.png",
|
|
"monochromeImage": "./assets/android-icon-monochrome.png"
|
|
},
|
|
"predictiveBackGestureEnabled": false
|
|
},
|
|
"web": {
|
|
"favicon": "./assets/favicon.png"
|
|
},
|
|
"plugins": [
|
|
"expo-router",
|
|
"expo-secure-store",
|
|
"expo-font",
|
|
"expo-dev-client",
|
|
"expo-image",
|
|
"expo-system-ui"
|
|
]
|
|
}
|
|
}
|