diff --git a/src/screens/AlbumViewerScreen/components/AlbumItemsContainer.jsx b/src/screens/AlbumViewerScreen/components/AlbumItemsContainer.jsx
index f6476ef..6829e45 100644
--- a/src/screens/AlbumViewerScreen/components/AlbumItemsContainer.jsx
+++ b/src/screens/AlbumViewerScreen/components/AlbumItemsContainer.jsx
@@ -33,8 +33,8 @@ const AlbumItemsContainer = ({ trackList, playurlOverrider, queue }) => {
style={[
styles.songItem,
item.id === (queue[playingIndex]?.id || undefined)
- ? { fontWeight: "800" }
- : { fontWeight: "500" },
+ ? { fontFamily: "Poppins-Bold" }
+ : { fontFamily: "Poppins-Regular" },
]}
>
{decode(item.songName).length > 30
@@ -45,8 +45,8 @@ const AlbumItemsContainer = ({ trackList, playurlOverrider, queue }) => {
style={[
styles.songItem,
item.id === (queue[playingIndex]?.id || undefined)
- ? { fontWeight: "800" }
- : { fontWeight: "500" },
+ ? { fontFamily: "Poppins-Bold" }
+ : { fontFamily: "Poppins-Regular" },
]}
>
{formatTime(item.duration)}
@@ -76,7 +76,7 @@ const styles = StyleSheet.create({
minWidth: "100%",
alignItems: "center",
justifyContent: "space-between",
- paddingVertical: 10,
+ paddingVertical: 8,
paddingHorizontal: 40,
},
albumItemsContainer: {
@@ -86,6 +86,6 @@ const styles = StyleSheet.create({
},
songItem: {
fontSize: 15,
- fontWeight: "500",
+ fontFamily: "Poppins-Regular"
},
});
diff --git a/src/screens/AlbumViewerScreen/components/DurationText.jsx b/src/screens/AlbumViewerScreen/components/DurationText.jsx
index a8daca1..e49b697 100644
--- a/src/screens/AlbumViewerScreen/components/DurationText.jsx
+++ b/src/screens/AlbumViewerScreen/components/DurationText.jsx
@@ -13,6 +13,7 @@ const styles = StyleSheet.create({
durationText: {
position: "relative",
fontSize: 16,
+ fontFamily: "Poppins-Regular",
color: "black",
marginTop: 70,
marginBottom: 100,
diff --git a/src/screens/AlbumViewerScreen/components/PlayerBanner.jsx b/src/screens/AlbumViewerScreen/components/PlayerBanner.jsx
index 7680b0c..9164f80 100644
--- a/src/screens/AlbumViewerScreen/components/PlayerBanner.jsx
+++ b/src/screens/AlbumViewerScreen/components/PlayerBanner.jsx
@@ -113,12 +113,12 @@ const styles = StyleSheet.create({
fontSize: 18,
bottom: 80,
color: "#fff",
- fontWeight: "500",
+ fontFamily: "Poppins-Bold"
},
subtext: {
bottom: 50,
fontSize: 12,
- fontWeight: "300",
textTransform: "uppercase",
+ fontFamily: "Poppins-Regular"
},
});
diff --git a/src/screens/AlbumsScreen/components/Card.jsx b/src/screens/AlbumsScreen/components/Card.jsx
index 65ba62c..2e77310 100644
--- a/src/screens/AlbumsScreen/components/Card.jsx
+++ b/src/screens/AlbumsScreen/components/Card.jsx
@@ -13,6 +13,7 @@ import { useNavigation } from "@react-navigation/native";
const Card = ({ albumData, index }) => {
const navigation = useNavigation();
albumData.title = albumData.title ? albumData.title : albumData.name;
+
return (
@@ -23,7 +24,11 @@ const Card = ({ albumData, index }) => {
navigation: navigation,
})
}
- style={[styles.card, { height: index % 3 === 0 ? 250 : 180 }]}
+ style={[
+ styles.card,
+ { height: index % 3 === 0 ? 240 : 200 },
+ ]}
+ activeOpacity={0.85}
>
{
{decode(
- albumData.title.length > 15
- ? `${albumData.title.substring(0, 15)}...`
- : albumData.title,
+ albumData.title.length > 20
+ ? `${albumData.title.substring(0, 20)}...`
+ : albumData.title
)}
@@ -51,18 +56,18 @@ export default Card;
const styles = StyleSheet.create({
card: {
- maxWidth: 180,
- minWidth: 165,
+ maxWidth: 190,
+ minWidth: 170,
backgroundColor: "#fff",
- borderRadius: 8,
+ borderRadius: 10,
shadowColor: "#000",
- shadowOpacity: 0.2,
- shadowRadius: 4,
- shadowOffset: { width: 0, height: 2 },
- elevation: 5,
+ shadowOpacity: 0.15,
+ shadowRadius: 6,
+ shadowOffset: { width: 0, height: 3 },
+ elevation: 6,
overflow: "hidden",
- marginHorizontal: 8,
- marginVertical: 10,
+ marginHorizontal: 10,
+ marginVertical: 12,
},
image: {
width: "100%",
@@ -72,19 +77,20 @@ const styles = StyleSheet.create({
overflow: "hidden",
},
imageOverlay: {
- borderRadius: 8,
+ borderRadius: 10,
},
overlay: {
...StyleSheet.absoluteFillObject,
- backgroundColor: "rgba(0, 0, 0, 0.35)",
- borderRadius: 8,
+ backgroundColor: "rgba(0, 0, 0, 0.4)",
+ borderRadius: 10,
},
title: {
position: "absolute",
- bottom: 10,
- left: 10,
- fontSize: 20,
- fontWeight: "800",
+ bottom: 12,
+ left: 12,
+ fontSize: 18,
color: "#fff",
+ letterSpacing: 0.5,
+ fontFamily: 'Poppins-Bold',
},
});
diff --git a/src/screens/AlbumsScreen/components/Category.jsx b/src/screens/AlbumsScreen/components/Category.jsx
index 414cfb1..d8237e9 100644
--- a/src/screens/AlbumsScreen/components/Category.jsx
+++ b/src/screens/AlbumsScreen/components/Category.jsx
@@ -2,6 +2,7 @@ import { StyleSheet, Text, View } from "react-native";
import React from "react";
import MasonryList from "@react-native-seoul/masonry-list";
import Card from "./Card";
+import generateEmoji from "../../../utils/emoticanGenerator";
const Category = ({ categoryName, categoryData }) => {
categoryData = categoryData.map((item, index) => ({
@@ -12,7 +13,7 @@ const Category = ({ categoryName, categoryData }) => {
return (
- {categoryName}
+ {categoryName} {generateEmoji()}
item.id}
@@ -30,12 +31,19 @@ export default Category;
const styles = StyleSheet.create({
container: {
flex: 1,
- padding: 5,
+ paddingHorizontal: 5,
+ overflow: 'hidden',
+ borderBottomWidth: 6,
+ borderBottomColor: 'gray',
+ borderBottomLeftRadius: 10,
+ borderBottomRightRadius: 10,
},
categoryTitle: {
- fontSize: 30,
- fontWeight: "bold",
- marginBottom: 5,
- textAlign: "center",
+ color: "#46494d",
+ fontSize: 26,
+ fontFamily: "Poppins-Regular",
+ textAlign: "left",
+ marginHorizontal: 10,
+ marginTop: 5,
},
});
diff --git a/src/screens/DashboardScreen/DashboardScreen.jsx b/src/screens/DashboardScreen/DashboardScreen.jsx
index 8b6f441..483b8fd 100644
--- a/src/screens/DashboardScreen/DashboardScreen.jsx
+++ b/src/screens/DashboardScreen/DashboardScreen.jsx
@@ -23,13 +23,18 @@ const DashboardScreen = ({ navigation }) => {
RightHeaderButton({ navigation }),
- drawerActiveTintColor: "#6200ee",
- drawerInactiveTintColor: "#000",
+ headerRight: ({color}) => RightHeaderButton({ navigation, color }),
+ drawerActiveTintColor: "#1f1e1e",
+ drawerInactiveTintColor: "#333131",
drawerStyle: {
backgroundColor: "#f5f5f5",
width: 280,
},
+ drawerLabelStyle: {
+ fontFamily: "Poppins-Regular",
+ fontSize: 16,
+ },
+ drawerAllowFontScaling: true,
headerTitleAlign: "left",
}}
drawerContent={(props) => }
diff --git a/src/screens/DashboardScreen/components/CenterHeader.jsx b/src/screens/DashboardScreen/components/CenterHeader.jsx
index 9277ecc..9d89588 100644
--- a/src/screens/DashboardScreen/components/CenterHeader.jsx
+++ b/src/screens/DashboardScreen/components/CenterHeader.jsx
@@ -1,36 +1,15 @@
import { StyleSheet, Text, View, Image } from "react-native";
-import React, { useEffect, useState } from "react";
+import React from "react";
import { expo } from "../../../../app.json";
-import * as Font from "expo-font";
-
-const loadFonts = async () => {
- try {
- await Font.loadAsync({
- MonkeyBold: require("../../../../assets/fonts/MonkyBold.otf"),
- });
- } catch (error) {
- console.error("Error loading font:", error);
- }
-};
const CenterHeader = () => {
- const [fontsLoaded, setFontsLoaded] = useState(false);
-
- useEffect(() => {
- loadFonts().then(() => setFontsLoaded(true));
- }, []);
-
- if (!fontsLoaded) {
- return null;
- }
-
return (
-
+
{expo.displayName}
@@ -53,8 +32,8 @@ const styles = StyleSheet.create({
marginRight: 8,
},
text: {
- fontWeight: "800",
- fontSize: 18,
- textTransform: "capitalize",
+ fontSize: 22,
+ fontFamily: "Poppins-Bold",
+ color: "#46494d"
},
});
diff --git a/src/screens/DashboardScreen/components/RightHeaderButton.jsx b/src/screens/DashboardScreen/components/RightHeaderButton.jsx
index cd1eb77..20da821 100644
--- a/src/screens/DashboardScreen/components/RightHeaderButton.jsx
+++ b/src/screens/DashboardScreen/components/RightHeaderButton.jsx
@@ -2,13 +2,13 @@ import { StyleSheet, TouchableOpacity } from "react-native";
import Feather from "react-native-vector-icons/Feather";
import React from "react";
-const RightHeaderButton = ({ navigation }) => {
+const RightHeaderButton = ({ navigation, color }) => {
return (
navigation.navigate("SearchScreen")}
>
-
+
);
};
diff --git a/src/screens/FloatingPlayerScreen/FloatingPlayerScreen.jsx b/src/screens/FloatingPlayerScreen/FloatingPlayerScreen.jsx
index c7c9003..ae455fe 100644
--- a/src/screens/FloatingPlayerScreen/FloatingPlayerScreen.jsx
+++ b/src/screens/FloatingPlayerScreen/FloatingPlayerScreen.jsx
@@ -1,219 +1,249 @@
import React, { useContext, useEffect, useState } from "react";
import { View, Text, Image, StyleSheet, TouchableOpacity } from "react-native";
import Ionicons from "react-native-vector-icons/Ionicons";
-import TrackPlayer, { Event, State, useTrackPlayerEvents } from "react-native-track-player";
+import TrackPlayer, {
+ Event,
+ State,
+ useTrackPlayerEvents,
+} from "react-native-track-player";
import { PlayerContext } from "../../contexts/PlayerContext";
import { decode } from "html-entities";
import { useNavigation, useNavigationState } from "@react-navigation/native";
import CSlider from "./components/CSlider";
const FloatingPlayerScreen = ({ playerInitialized }) => {
- if (!playerInitialized) return;
- const { playState, playingIndex, albumMode, playurlOverrider, nextActionOverrider, isTrackAddingCompleted } = useContext(PlayerContext);
- const [currentDuration, setCurrentDuration] = useState(0);
- const [totalDuration, setTotalDuration] = useState(0);
- const [queue, setQueue] = useState(null);
- const navigator = useNavigation();
- const [shouldDisplay, setShouldDisplay] = useState(true);
-
- const state = useNavigationState(state => state);
-
- useEffect(() => {
- if (!state) return;
-
- var currentRoute = state.routes[state.index];
-
- if (state.routes.length > 0) {
- if(currentRoute?.name === "DashboardScreen"){
- currentRoute = currentRoute?.state?.routes[currentRoute?.state?.index]
- }
- if (
- currentRoute?.name === "PlayerScreen" ||
- (currentRoute?.name === "AlbumViewerScreen" && !albumMode)
- ) {
- setShouldDisplay(false);
- } else {
- setShouldDisplay(true);
- }
- } else {
- setShouldDisplay(currentRoute?.name !== "PlayerScreen");
- }
- }, [state, albumMode]);
-
- const getDecodedText = (text, maxLength) => {
- const decodedText = decode(text || "None");
- return decodedText.length > maxLength
- ? `${decodedText.substring(0, maxLength)}...`
- : decodedText;
- };
-
- const getImageSource = (imagePath) => {
- if (typeof imagePath === "string" && imagePath.startsWith("http")) {
- return { uri: imagePath };
- } else {
- return imagePath;
- }
- };
-
- useTrackPlayerEvents([Event.PlaybackProgressUpdated], (event) => {
- setTotalDuration(event.duration);
- setCurrentDuration(event.position);
- });
-
- useEffect(() => {
- if (isTrackAddingCompleted) {
- const fetchQueue = async () => {
- const queueres = await TrackPlayer.getQueue();
- setQueue(queueres);
- };
- fetchQueue();
- }
- }, [isTrackAddingCompleted]);
-
- const handlePlayPause = async () => {
- if (playState === State.Playing) {
- await TrackPlayer.pause();
- } else if (playState === State.Paused) {
- await TrackPlayer.play();
- } else if (
- playState === State.Error ||
- playState === State.Ready ||
- playState === State.None
- ) {
- await playurlOverrider(playingIndex);
- }
- };
-
- const handleOnNext = async () => {
- await nextActionOverrider();
- };
-
- return (
- isTrackAddingCompleted && queue && queue[playingIndex] && shouldDisplay && (
- navigator.navigate('PlayerScreen')}>
-
-
-
-
- {getDecodedText(
- queue[playingIndex]?.title || "Unknown Title",
- 25,
- )}
- {getDecodedText(
- queue[playingIndex]?.artist ||
- queue?.items?.[playingIndex]?.artistName ||
- "Unknown Artist",
- 25,
- )}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- )
- );
+ if (!playerInitialized) return;
+ const {
+ playState,
+ playingIndex,
+ albumMode,
+ playurlOverrider,
+ nextActionOverrider,
+ isTrackAddingCompleted,
+ } = useContext(PlayerContext);
+ const [currentDuration, setCurrentDuration] = useState(0);
+ const [totalDuration, setTotalDuration] = useState(0);
+ const [queue, setQueue] = useState(null);
+ const navigator = useNavigation();
+ const [shouldDisplay, setShouldDisplay] = useState(true);
+
+ const state = useNavigationState((state) => state);
+
+ useEffect(() => {
+ if (!state) return;
+
+ var currentRoute = state.routes[state.index];
+
+ if (state.routes.length > 0) {
+ if (currentRoute?.name === "DashboardScreen") {
+ currentRoute = currentRoute?.state?.routes[currentRoute?.state?.index];
+ }
+ if (
+ currentRoute?.name === "PlayerScreen" ||
+ (currentRoute?.name === "AlbumViewerScreen" && !albumMode)
+ ) {
+ setShouldDisplay(false);
+ } else {
+ setShouldDisplay(true);
+ }
+ } else {
+ setShouldDisplay(currentRoute?.name !== "PlayerScreen");
+ }
+ }, [state, albumMode]);
+
+ const getDecodedText = (text, maxLength) => {
+ const decodedText = decode(text || "None");
+ return decodedText.length > maxLength
+ ? `${decodedText.substring(0, maxLength)}...`
+ : decodedText;
+ };
+
+ const getImageSource = (imagePath) => {
+ if (typeof imagePath === "string" && imagePath.startsWith("http")) {
+ return { uri: imagePath };
+ } else {
+ return imagePath;
+ }
+ };
+
+ useTrackPlayerEvents([Event.PlaybackProgressUpdated], (event) => {
+ setTotalDuration(event.duration);
+ setCurrentDuration(event.position);
+ });
+
+ useEffect(() => {
+ if (isTrackAddingCompleted) {
+ const fetchQueue = async () => {
+ const queueres = await TrackPlayer.getQueue();
+ setQueue(queueres);
+ };
+ fetchQueue();
+ }
+ }, [isTrackAddingCompleted]);
+
+ const handlePlayPause = async () => {
+ if (playState === State.Playing) {
+ await TrackPlayer.pause();
+ } else if (playState === State.Paused) {
+ await TrackPlayer.play();
+ } else if (
+ playState === State.Error ||
+ playState === State.Ready ||
+ playState === State.None
+ ) {
+ await playurlOverrider(playingIndex);
+ }
+ };
+
+ const handleOnNext = async () => {
+ await nextActionOverrider();
+ };
+
+
+ return (
+ isTrackAddingCompleted &&
+ queue &&
+ queue[playingIndex] &&
+ shouldDisplay && (
+ navigator.navigate("PlayerScreen")}
+ >
+
+
+
+
+
+ {getDecodedText(
+ queue[playingIndex]?.title || "Unknown Title",
+ 16,
+ )}
+
+
+ {getDecodedText(
+ queue[playingIndex]?.artist ||
+ queue?.items?.[playingIndex]?.artistName ||
+ "Unknown Artist",
+ 16,
+ )}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+ );
};
export default FloatingPlayerScreen;
const styles = StyleSheet.create({
- container: {
- flex: 1,
- position: 'absolute',
- bottom: 2,
- width: '96%',
- marginHorizontal: '2%',
- borderRadius: 8,
- backgroundColor: '#000',
- paddingHorizontal: 8,
- paddingTop: 4,
- elevation: 8,
- shadowColor: '#000',
- shadowOffset: { width: 0, height: 2 },
- shadowOpacity: 0.3,
- shadowRadius: 4,
- overflow: 'hidden'
- },
- nextButton: {
- paddingLeft: 15,
- marginLeft: -5,
- paddingRight: 10,
- borderBottomRightRadius: 25,
- borderTopRightRadius: 25,
- paddingVertical: 8,
- },
- prevNextSongMode: {
- backgroundColor: "#f5f5f4",
- shadowColor: "#010101",
- shadowOffset: {
- width: 0,
- height: 12,
- },
- shadowOpacity: 1.0,
- shadowRadius: 16.0,
- elevation: 24,
- zIndex: -2,
- },
- controls: {
- flexDirection: 'row',
- },
- playerContent: {
- flexDirection: 'row',
- alignItems: 'center',
- },
- albumArt: {
- width: 40,
- height: 40,
- borderRadius: 8,
- marginRight: 12,
- },
- textWrapper: {
- flex: 1,
- justifyContent: 'center',
- },
- songTitle: {
- fontSize: 16,
- fontWeight: '600',
- color: '#FFFFFF',
- },
- artistName: {
- fontSize: 14,
- color: '#B0B0B0',
- },
- playPauseButtonContainer: {
- justifyContent: "center",
- alignItems: "center",
- },
+ container: {
+ flex: 1,
+ position: "absolute",
+ bottom: 5,
+ width: "94%",
+ marginHorizontal: "3%",
+ borderRadius: 10,
+ backgroundColor: "#000",
+ paddingHorizontal: 8,
+ paddingTop: 4,
+ elevation: 8,
+ shadowColor: "#000",
+ shadowOffset: { width: 0, height: 2 },
+ shadowOpacity: 0.3,
+ shadowRadius: 4,
+ overflow: "hidden",
+ },
+ nextButton: {
+ paddingLeft: 15,
+ marginLeft: -5,
+ paddingRight: 10,
+ borderBottomRightRadius: 25,
+ borderTopRightRadius: 25,
+ paddingVertical: 8,
+ },
+ prevNextSongMode: {
+ backgroundColor: "#f5f5f4",
+ shadowColor: "#010101",
+ shadowOffset: {
+ width: 0,
+ height: 12,
+ },
+ shadowOpacity: 1.0,
+ shadowRadius: 16.0,
+ elevation: 24,
+ zIndex: -2,
+ },
+ controls: {
+ flexDirection: "row",
+ },
+ playerContent: {
+ flexDirection: "row",
+ alignItems: "center",
+ },
+ albumArt: {
+ width: 40,
+ height: 40,
+ borderRadius: 8,
+ marginRight: 12,
+ },
+ textWrapper: {
+ flex: 1,
+ justifyContent: "center",
+ },
+ songTitle: {
+ fontSize: 16,
+ color: "#FFFFFF",
+ fontFamily: "Poppins-Bold"
+ },
+ artistName: {
+ fontSize: 14,
+ color: "#B0B0B0",
+ fontFamily: "Poppins-Regular"
+ },
+ playPauseButtonContainer: {
+ justifyContent: "center",
+ alignItems: "center",
+ },
});
diff --git a/src/screens/PlayerScreen/components/AlbumItemsContainer.jsx b/src/screens/PlayerScreen/components/AlbumItemsContainer.jsx
index c9f3cab..97a105e 100644
--- a/src/screens/PlayerScreen/components/AlbumItemsContainer.jsx
+++ b/src/screens/PlayerScreen/components/AlbumItemsContainer.jsx
@@ -29,8 +29,8 @@ const AlbumItemsContainer = ({ playList, playurlOverrider }) => {
style={[
styles.songItem,
item.id === (playList[playingIndex]?.id || undefined)
- ? { fontWeight: "800" }
- : { fontWeight: "500" },
+ ? { fontFamily: "Poppins-Bold" }
+ : { fontFamily: "Poppins-Regular" },
]}
>
{decode(item.title).length > 30
@@ -41,8 +41,8 @@ const AlbumItemsContainer = ({ playList, playurlOverrider }) => {
style={[
styles.songItem,
item.id === (playList[playingIndex]?.id || undefined)
- ? { fontWeight: "800" }
- : { fontWeight: "500" },
+ ? { fontFamily: "Poppins-Bold" }
+ : { fontFamily: "Poppins-Regular" },
]}
>
{formatTime(item.duration)}
@@ -75,6 +75,8 @@ export default AlbumItemsContainer;
const styles = StyleSheet.create({
placeholder: {
height: 300,
+ fontFamily: "Poppins-Regular",
+ fontSize: 16
},
albumItems: {
@@ -92,6 +94,6 @@ const styles = StyleSheet.create({
},
songItem: {
fontSize: 15,
- fontWeight: "500",
+ fontFamily: "Poppins-Regular"
},
});
diff --git a/src/screens/PlayerScreen/components/DurationText.jsx b/src/screens/PlayerScreen/components/DurationText.jsx
index a8daca1..a6a812f 100644
--- a/src/screens/PlayerScreen/components/DurationText.jsx
+++ b/src/screens/PlayerScreen/components/DurationText.jsx
@@ -16,5 +16,6 @@ const styles = StyleSheet.create({
color: "black",
marginTop: 70,
marginBottom: 100,
+ fontFamily: "Poppins-Regular"
},
});
diff --git a/src/screens/PlayerScreen/components/PlayerBanner.jsx b/src/screens/PlayerScreen/components/PlayerBanner.jsx
index 636287a..0923fc1 100644
--- a/src/screens/PlayerScreen/components/PlayerBanner.jsx
+++ b/src/screens/PlayerScreen/components/PlayerBanner.jsx
@@ -115,12 +115,12 @@ const styles = StyleSheet.create({
fontSize: 18,
bottom: 80,
color: "#fff",
- fontWeight: "500",
+ fontFamily: "Poppins-Bold"
},
subtext: {
bottom: 50,
fontSize: 12,
- fontWeight: "300",
textTransform: "uppercase",
+ fontFamily: "Poppins-Regular"
},
});
diff --git a/src/screens/SearchScreen/components/Navbar.jsx b/src/screens/SearchScreen/components/Navbar.jsx
index f4a7074..c6b6cb5 100644
--- a/src/screens/SearchScreen/components/Navbar.jsx
+++ b/src/screens/SearchScreen/components/Navbar.jsx
@@ -15,7 +15,7 @@ const Navbar = ({ setSearchInput }) => {
setSearchInput(input)}
/>
@@ -45,5 +45,6 @@ const styles = StyleSheet.create({
color: "#333",
borderWidth: 1,
borderColor: "#ddd",
+ fontFamily: "Poppins-Regular"
},
});
diff --git a/src/screens/SearchScreen/components/SearchList.jsx b/src/screens/SearchScreen/components/SearchList.jsx
index 52f9f8e..926788b 100644
--- a/src/screens/SearchScreen/components/SearchList.jsx
+++ b/src/screens/SearchScreen/components/SearchList.jsx
@@ -34,7 +34,7 @@ const styles = StyleSheet.create({
},
noResultsText: {
fontSize: 18,
- fontWeight: "500",
color: "#555",
+ fontFamily: "Poppins-Bold"
},
});
diff --git a/src/utils/emoticanGenerator.js b/src/utils/emoticanGenerator.js
new file mode 100644
index 0000000..09c3c04
--- /dev/null
+++ b/src/utils/emoticanGenerator.js
@@ -0,0 +1,6 @@
+export default function generateEmoji() {
+ const emoticonRangeStart = 0x1F600;
+ const emoticonRangeEnd = 0x1F64F;
+ const randomCodePoint = Math.floor(Math.random() * (emoticonRangeEnd - emoticonRangeStart + 1)) + emoticonRangeStart;
+ return String.fromCodePoint(randomCodePoint);
+}
\ No newline at end of file