Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions stickersmash/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@

# @generated expo-cli sync-2b81b286409207a5da26e14c78851eb30d8ccbdb
# The following patterns were generated by expo-cli

expo-env.d.ts
# @end expo-cli
19 changes: 9 additions & 10 deletions stickersmash/app.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
},
Expand All @@ -31,12 +31,11 @@
"resizeMode": "contain",
"backgroundColor": "#25292e"
}
],
"expo-font",
"expo-web-browser"
]
],
"experiments": {
"typedRoutes": true
"typedRoutes": true,
"reactCompiler": true
}
}
}
}
67 changes: 29 additions & 38 deletions stickersmash/package.json
Original file line number Diff line number Diff line change
@@ -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
}
Original file line number Diff line number Diff line change
Expand Up @@ -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");

Expand All @@ -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<View>(null);

Expand All @@ -38,7 +39,6 @@ export default function Index() {
const pickImageAsync = async () => {
let result = await ImagePicker.launchImageLibraryAsync({
mediaTypes: ["images"],
allowsEditing: true,
quality: 1,
});

Expand Down
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@ type Props = {

export default function EmojiList({ onSelect, onCloseModal }: Props) {
const [emoji] = useState<ImageSourcePropType[]>([
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 (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,17 @@ type Props = PropsWithChildren<{

export default function EmojiPicker({ isVisible, children, onClose }: Props) {
return (
<View>
<Modal animationType="slide" transparent={true} visible={isVisible}>
<View style={styles.modalContent}>
<View style={styles.titleContainer}>
<Text style={styles.title}>Choose a sticker</Text>
<Pressable onPress={onClose}>
<MaterialIcons name="close" color="#fff" size={22} />
</Pressable>
</View>
{children}
<Modal animationType="slide" transparent={true} visible={isVisible}>
<View style={styles.modalContent}>
<View style={styles.titleContainer}>
<Text style={styles.title}>Choose a sticker</Text>
<Pressable onPress={onClose}>
<MaterialIcons name="close" color="#fff" size={22} />
</Pressable>
</View>
</Modal>
</View>
{children}
</View>
</Modal>
);
}

Expand Down
9 changes: 6 additions & 3 deletions stickersmash/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@
"strict": true,
"paths": {
"@/*": [
"./*"
"./src/*"
],
"@/assets/*": [
"./assets/*"
]
}
},
Expand All @@ -13,5 +16,5 @@
"**/*.tsx",
".expo/types/**/*.ts",
"expo-env.d.ts"
]
}
],
}