From 326c64323db62a61162d25be55a29c4de9d0c520 Mon Sep 17 00:00:00 2001 From: Aman Mittal Date: Fri, 30 Jan 2026 22:41:33 +0530 Subject: [PATCH 1/5] [stickersmash] Update example app for SDK 55 --- stickersmash/app.json | 17 +++-- stickersmash/package.json | 67 ++++++++----------- stickersmash/{ => src}/app/(tabs)/_layout.tsx | 0 stickersmash/{ => src}/app/(tabs)/about.tsx | 0 stickersmash/{ => src}/app/(tabs)/index.tsx | 0 stickersmash/{ => src}/app/+not-found.tsx | 0 stickersmash/{ => src}/app/_layout.tsx | 0 stickersmash/{ => src}/components/Button.tsx | 0 .../{ => src}/components/CircleButton.tsx | 0 .../{ => src}/components/EmojiList.tsx | 12 ++-- .../{ => src}/components/EmojiPicker.tsx | 22 +++--- .../{ => src}/components/EmojiSticker.tsx | 0 .../{ => src}/components/IconButton.tsx | 0 .../{ => src}/components/ImageViewer.tsx | 0 stickersmash/tsconfig.json | 9 ++- 15 files changed, 59 insertions(+), 68 deletions(-) rename stickersmash/{ => src}/app/(tabs)/_layout.tsx (100%) rename stickersmash/{ => src}/app/(tabs)/about.tsx (100%) rename stickersmash/{ => src}/app/(tabs)/index.tsx (100%) rename stickersmash/{ => src}/app/+not-found.tsx (100%) rename stickersmash/{ => src}/app/_layout.tsx (100%) rename stickersmash/{ => src}/components/Button.tsx (100%) rename stickersmash/{ => src}/components/CircleButton.tsx (100%) rename stickersmash/{ => src}/components/EmojiList.tsx (81%) rename stickersmash/{ => src}/components/EmojiPicker.tsx (67%) rename stickersmash/{ => src}/components/EmojiSticker.tsx (100%) rename stickersmash/{ => src}/components/IconButton.tsx (100%) rename stickersmash/{ => src}/components/ImageViewer.tsx (100%) diff --git a/stickersmash/app.json b/stickersmash/app.json index 9274581d..be6eb38b 100644 --- a/stickersmash/app.json +++ b/stickersmash/app.json @@ -5,19 +5,19 @@ "version": "1.0.0", "orientation": "portrait", "icon": "./assets/images/icon.png", - "scheme": "myapp", + "scheme": "stickersmash", "userInterfaceStyle": "automatic", "ios": { - "supportsTablet": true, + "supportsTablet": true }, "android": { "adaptiveIcon": { "foregroundImage": "./assets/images/adaptive-icon.png", - "backgroundColor": "#ffffff" - } + "backgroundColor": "#25292e" + }, + "edgeToEdgeEnabled": true }, "web": { - "bundler": "metro", "output": "static", "favicon": "./assets/images/favicon.png" }, @@ -31,12 +31,11 @@ "resizeMode": "contain", "backgroundColor": "#25292e" } - ], - "expo-font", - "expo-web-browser" + ] ], "experiments": { - "typedRoutes": true + "typedRoutes": true, + "reactCompiler": true } } } diff --git a/stickersmash/package.json b/stickersmash/package.json index e23dc9a7..040be8d3 100644 --- a/stickersmash/package.json +++ b/stickersmash/package.json @@ -1,57 +1,48 @@ { "name": "stickersmash", "main": "expo-router/entry", + "version": "1.0.0", "scripts": { "start": "expo start", "reset-project": "node ./scripts/reset-project.js", "android": "expo start --android", "ios": "expo start --ios", "web": "expo start --web", - "test": "jest --watchAll", - "lint": "expo lint", - "deploy": "npx expo export -p web && npx eas-cli@latest deploy" - }, - "jest": { - "preset": "jest-expo" + "lint": "expo lint" }, "dependencies": { "@expo/vector-icons": "^15.0.2", - "@react-navigation/bottom-tabs": "^7.0.0", - "@react-navigation/native": "^7.0.0", + "@react-navigation/bottom-tabs": "^7.7.3", + "@react-navigation/native": "^7.1.28", "dom-to-image": "^2.6.0", - "expo": "^54.0.1", - "expo-blur": "~15.0.6", - "expo-constants": "~18.0.8", - "expo-font": "~14.0.7", - "expo-haptics": "~15.0.6", - "expo-image": "~3.0.7", - "expo-image-picker": "~17.0.7", - "expo-linking": "~8.0.7", - "expo-media-library": "~18.1.1", - "expo-router": "~6.0.0", - "expo-splash-screen": "~31.0.8", - "expo-status-bar": "~3.0.7", - "expo-symbols": "~1.0.6", - "expo-system-ui": "~6.0.7", - "expo-web-browser": "~15.0.6", - "react": "19.1.0", - "react-dom": "19.1.0", - "react-native": "0.81.4", - "react-native-gesture-handler": "~2.28.0", - "react-native-reanimated": "~4.1.0", - "react-native-safe-area-context": "~5.6.0", - "react-native-screens": "~4.16.0", + "expo": "~55.0.0-preview.7", + "expo-constants": "~55.0.2", + "expo-font": "~55.0.3", + "expo-image": "~55.0.3", + "expo-image-picker": "~55.0.2", + "expo-linking": "~55.0.3", + "expo-media-library": "~55.0.2", + "expo-router": "~55.0.0-beta.4", + "expo-splash-screen": "~55.0.3", + "expo-status-bar": "~55.0.2", + "expo-system-ui": "~55.0.3", + "react": "19.2.0", + "react-dom": "19.2.0", + "react-native": "0.83.1", + "react-native-gesture-handler": "~2.30.0", + "react-native-reanimated": "~4.2.1", + "react-native-safe-area-context": "~5.6.2", + "react-native-screens": "~4.20.0", "react-native-view-shot": "4.0.3", - "react-native-web": "^0.21.0", - "react-native-webview": "13.15.0" + "react-native-web": "~0.21.0", + "react-native-worklets": "0.7.2" }, "devDependencies": { - "@types/jest": "^29.5.12", - "@types/react": "~19.1.10", - "jest": "^29.2.1", - "jest-expo": "~54.0.10", - "react-test-renderer": "19.1.0", - "typescript": "^5.3.3" + "@types/dom-to-image": "^2.6.7", + "@types/react": "~19.2.2", + "eslint": "^9.25.0", + "eslint-config-expo": "~55.0.0", + "typescript": "~5.9.2" }, "private": true } diff --git a/stickersmash/app/(tabs)/_layout.tsx b/stickersmash/src/app/(tabs)/_layout.tsx similarity index 100% rename from stickersmash/app/(tabs)/_layout.tsx rename to stickersmash/src/app/(tabs)/_layout.tsx diff --git a/stickersmash/app/(tabs)/about.tsx b/stickersmash/src/app/(tabs)/about.tsx similarity index 100% rename from stickersmash/app/(tabs)/about.tsx rename to stickersmash/src/app/(tabs)/about.tsx diff --git a/stickersmash/app/(tabs)/index.tsx b/stickersmash/src/app/(tabs)/index.tsx similarity index 100% rename from stickersmash/app/(tabs)/index.tsx rename to stickersmash/src/app/(tabs)/index.tsx diff --git a/stickersmash/app/+not-found.tsx b/stickersmash/src/app/+not-found.tsx similarity index 100% rename from stickersmash/app/+not-found.tsx rename to stickersmash/src/app/+not-found.tsx diff --git a/stickersmash/app/_layout.tsx b/stickersmash/src/app/_layout.tsx similarity index 100% rename from stickersmash/app/_layout.tsx rename to stickersmash/src/app/_layout.tsx diff --git a/stickersmash/components/Button.tsx b/stickersmash/src/components/Button.tsx similarity index 100% rename from stickersmash/components/Button.tsx rename to stickersmash/src/components/Button.tsx diff --git a/stickersmash/components/CircleButton.tsx b/stickersmash/src/components/CircleButton.tsx similarity index 100% rename from stickersmash/components/CircleButton.tsx rename to stickersmash/src/components/CircleButton.tsx diff --git a/stickersmash/components/EmojiList.tsx b/stickersmash/src/components/EmojiList.tsx similarity index 81% rename from stickersmash/components/EmojiList.tsx rename to stickersmash/src/components/EmojiList.tsx index aa6f112b..66bfb58d 100644 --- a/stickersmash/components/EmojiList.tsx +++ b/stickersmash/src/components/EmojiList.tsx @@ -15,12 +15,12 @@ type Props = { export default function EmojiList({ onSelect, onCloseModal }: Props) { const [emoji] = useState([ - require("../assets/images/emoji1.png"), - require("../assets/images/emoji2.png"), - require("../assets/images/emoji3.png"), - require("../assets/images/emoji4.png"), - require("../assets/images/emoji5.png"), - require("../assets/images/emoji6.png"), + require("@/assets/images/emoji1.png"), + require("@/assets/images/emoji2.png"), + require("@/assets/images/emoji3.png"), + require("@/assets/images/emoji4.png"), + require("@/assets/images/emoji5.png"), + require("@/assets/images/emoji6.png"), ]); return ( diff --git a/stickersmash/components/EmojiPicker.tsx b/stickersmash/src/components/EmojiPicker.tsx similarity index 67% rename from stickersmash/components/EmojiPicker.tsx rename to stickersmash/src/components/EmojiPicker.tsx index a023b93b..893cb8cb 100644 --- a/stickersmash/components/EmojiPicker.tsx +++ b/stickersmash/src/components/EmojiPicker.tsx @@ -9,19 +9,17 @@ type Props = PropsWithChildren<{ export default function EmojiPicker({ isVisible, children, onClose }: Props) { return ( - - - - - Choose a sticker - - - - - {children} + + + + Choose a sticker + + + - - + {children} + + ); } diff --git a/stickersmash/components/EmojiSticker.tsx b/stickersmash/src/components/EmojiSticker.tsx similarity index 100% rename from stickersmash/components/EmojiSticker.tsx rename to stickersmash/src/components/EmojiSticker.tsx diff --git a/stickersmash/components/IconButton.tsx b/stickersmash/src/components/IconButton.tsx similarity index 100% rename from stickersmash/components/IconButton.tsx rename to stickersmash/src/components/IconButton.tsx diff --git a/stickersmash/components/ImageViewer.tsx b/stickersmash/src/components/ImageViewer.tsx similarity index 100% rename from stickersmash/components/ImageViewer.tsx rename to stickersmash/src/components/ImageViewer.tsx diff --git a/stickersmash/tsconfig.json b/stickersmash/tsconfig.json index 909e9010..f905fab5 100644 --- a/stickersmash/tsconfig.json +++ b/stickersmash/tsconfig.json @@ -4,7 +4,10 @@ "strict": true, "paths": { "@/*": [ - "./*" + "./src/*" + ], + "@/assets/*": [ + "./assets/*" ] } }, @@ -13,5 +16,5 @@ "**/*.tsx", ".expo/types/**/*.ts", "expo-env.d.ts" - ] -} + ], +} \ No newline at end of file From 78b08817d5d5ab5a6925896dba6dcdacd69d7d5e Mon Sep 17 00:00:00 2001 From: Aman Mittal Date: Fri, 30 Jan 2026 22:43:05 +0530 Subject: [PATCH 2/5] Update app.json --- stickersmash/app.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stickersmash/app.json b/stickersmash/app.json index be6eb38b..d3503496 100644 --- a/stickersmash/app.json +++ b/stickersmash/app.json @@ -38,4 +38,4 @@ "reactCompiler": true } } -} +} \ No newline at end of file From 3501ba8c446e9abe44265cad631b575dbbbaf081 Mon Sep 17 00:00:00 2001 From: Aman Mittal Date: Fri, 30 Jan 2026 23:03:57 +0530 Subject: [PATCH 3/5] Create .gitignore --- stickersmash/.gitignore | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 stickersmash/.gitignore diff --git a/stickersmash/.gitignore b/stickersmash/.gitignore new file mode 100644 index 00000000..5873d9ab --- /dev/null +++ b/stickersmash/.gitignore @@ -0,0 +1,6 @@ + +# @generated expo-cli sync-2b81b286409207a5da26e14c78851eb30d8ccbdb +# The following patterns were generated by expo-cli + +expo-env.d.ts +# @end expo-cli \ No newline at end of file From 805a51f9cf056cc03c0674dade2a1a2190f03ac0 Mon Sep 17 00:00:00 2001 From: Aman Mittal Date: Fri, 30 Jan 2026 23:03:59 +0530 Subject: [PATCH 4/5] Update index.tsx --- stickersmash/src/app/(tabs)/index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stickersmash/src/app/(tabs)/index.tsx b/stickersmash/src/app/(tabs)/index.tsx index fa0a2a80..ae4b27e6 100644 --- a/stickersmash/src/app/(tabs)/index.tsx +++ b/stickersmash/src/app/(tabs)/index.tsx @@ -25,7 +25,8 @@ export default function Index() { const [pickedEmoji, setPickedEmoji] = useState< ImageSourcePropType | undefined >(undefined); - const [permissionResponse, requestPermission] = MediaLibrary.usePermissions(); + const [permissionResponse, requestPermission] = + ImagePicker.useMediaLibraryPermissions(); const imageRef = useRef(null); @@ -38,7 +39,6 @@ export default function Index() { const pickImageAsync = async () => { let result = await ImagePicker.launchImageLibraryAsync({ mediaTypes: ["images"], - allowsEditing: true, quality: 1, }); From edbffd13bcb5c755a800c8d958a3f1e15f6728f5 Mon Sep 17 00:00:00 2001 From: Aman Mittal Date: Mon, 2 Feb 2026 23:04:34 +0530 Subject: [PATCH 5/5] Update component file names --- stickersmash/src/app/(tabs)/index.tsx | 14 +++++++------- .../src/components/{Button.tsx => button.tsx} | 0 .../{CircleButton.tsx => circle-button.tsx} | 0 .../components/{EmojiList.tsx => emoji-list.tsx} | 0 .../{EmojiPicker.tsx => emoji-picker.tsx} | 0 .../{EmojiSticker.tsx => emoji-sticker.tsx} | 0 .../components/{IconButton.tsx => icon-button.tsx} | 0 .../{ImageViewer.tsx => image-viewer.tsx} | 0 8 files changed, 7 insertions(+), 7 deletions(-) rename stickersmash/src/components/{Button.tsx => button.tsx} (100%) rename stickersmash/src/components/{CircleButton.tsx => circle-button.tsx} (100%) rename stickersmash/src/components/{EmojiList.tsx => emoji-list.tsx} (100%) rename stickersmash/src/components/{EmojiPicker.tsx => emoji-picker.tsx} (100%) rename stickersmash/src/components/{EmojiSticker.tsx => emoji-sticker.tsx} (100%) rename stickersmash/src/components/{IconButton.tsx => icon-button.tsx} (100%) rename stickersmash/src/components/{ImageViewer.tsx => image-viewer.tsx} (100%) diff --git a/stickersmash/src/app/(tabs)/index.tsx b/stickersmash/src/app/(tabs)/index.tsx index ae4b27e6..c1e35dd3 100644 --- a/stickersmash/src/app/(tabs)/index.tsx +++ b/stickersmash/src/app/(tabs)/index.tsx @@ -6,13 +6,13 @@ import { ImageSourcePropType, Platform, StyleSheet, View } from "react-native"; import { GestureHandlerRootView } from "react-native-gesture-handler"; import { captureRef } from "react-native-view-shot"; -import Button from "@/components/Button"; -import CircleButton from "@/components/CircleButton"; -import EmojiList from "@/components/EmojiList"; -import EmojiPicker from "@/components/EmojiPicker"; -import EmojiSticker from "@/components/EmojiSticker"; -import IconButton from "@/components/IconButton"; -import ImageViewer from "@/components/ImageViewer"; +import Button from "@/components/button"; +import CircleButton from "@/components/circle-button"; +import EmojiList from "@/components/emoji-list"; +import EmojiPicker from "@/components/emoji-picker"; +import EmojiSticker from "@/components/emoji-sticker"; +import IconButton from "@/components/icon-button"; +import ImageViewer from "@/components/image-viewer"; const PlaceholderImage = require("@/assets/images/background-image.png"); diff --git a/stickersmash/src/components/Button.tsx b/stickersmash/src/components/button.tsx similarity index 100% rename from stickersmash/src/components/Button.tsx rename to stickersmash/src/components/button.tsx diff --git a/stickersmash/src/components/CircleButton.tsx b/stickersmash/src/components/circle-button.tsx similarity index 100% rename from stickersmash/src/components/CircleButton.tsx rename to stickersmash/src/components/circle-button.tsx diff --git a/stickersmash/src/components/EmojiList.tsx b/stickersmash/src/components/emoji-list.tsx similarity index 100% rename from stickersmash/src/components/EmojiList.tsx rename to stickersmash/src/components/emoji-list.tsx diff --git a/stickersmash/src/components/EmojiPicker.tsx b/stickersmash/src/components/emoji-picker.tsx similarity index 100% rename from stickersmash/src/components/EmojiPicker.tsx rename to stickersmash/src/components/emoji-picker.tsx diff --git a/stickersmash/src/components/EmojiSticker.tsx b/stickersmash/src/components/emoji-sticker.tsx similarity index 100% rename from stickersmash/src/components/EmojiSticker.tsx rename to stickersmash/src/components/emoji-sticker.tsx diff --git a/stickersmash/src/components/IconButton.tsx b/stickersmash/src/components/icon-button.tsx similarity index 100% rename from stickersmash/src/components/IconButton.tsx rename to stickersmash/src/components/icon-button.tsx diff --git a/stickersmash/src/components/ImageViewer.tsx b/stickersmash/src/components/image-viewer.tsx similarity index 100% rename from stickersmash/src/components/ImageViewer.tsx rename to stickersmash/src/components/image-viewer.tsx