Skip to content

Commit

Permalink
first commit
Browse files Browse the repository at this point in the history
  • Loading branch information
proalaa committed Mar 22, 2024
1 parent 171c05a commit e154ac2
Show file tree
Hide file tree
Showing 62 changed files with 985 additions and 1 deletion.
25 changes: 25 additions & 0 deletions app/_layout.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import { Stack } from "expo-router";
import { useCallback } from "react";
import { useFonts } from "expo-font";

import * as SplashScreen from "expo-splash-screen";

SplashScreen.preventAutoHideAsync();
const Layout = () => {
const [fontsLoaded] = useFonts({
DMBold: require("../assets/fonts/DMSans-Bold.ttf"),
DMMedium: require("../assets/fonts/DMSans-Medium.ttf"),
DMRegular: require("../assets/fonts/DMSans-Regular.ttf"),
});

const onLayoutRootView = useCallback(async () => {
if (fontsLoaded) {
await SplashScreen.hideAsync();
}
}, [fontsLoaded]);

if (!fontsLoaded) return null;
return <Stack onLayout={onLayoutRootView} />;
};

export default Layout;
40 changes: 40 additions & 0 deletions app/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import { Stack, useRouter } from "expo-router";
import { SafeAreaView, ScrollView, View } from "react-native";
import { COLORS, SIZES, icons, images } from "../constants";
import {
Nearbyjobs,
Popularjobs,
ScreenHeaderBtn,
Welcome,
} from "../components";
export default function Page() {
return (
<SafeAreaView style={{ flex: 1, backgroundColor: COLORS.lightWhite }}>
<Stack.Screen
options={{
headerStyle: { backgroundColor: COLORS.lightWhite },
headerShadowVisible: false,
headerLeft: () => (
<ScreenHeaderBtn
iconUrl={icons.menu}
dimension="60%"
handlePress={() => {}}
/>
),
headerRight: () => (
<ScreenHeaderBtn iconUrl={images.profile} dimension={"69%"} />
),
headerTitle: "",
}}
/>

<ScrollView>
<View style={{ flex: 1, padding: SIZES.medium }}>
<Welcome />
<Popularjobs />
<Nearbyjobs />
</View>
</ScrollView>
</SafeAreaView>
);
}
Binary file added assets/adaptive-icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/favicon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/fonts/DMSans-Bold.ttf
Binary file not shown.
Binary file added assets/fonts/DMSans-Medium.ttf
Binary file not shown.
Binary file added assets/fonts/DMSans-Regular.ttf
Binary file not shown.
Binary file added assets/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/icons/amazon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/icons/apple.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/icons/chevron-left.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/icons/chevron-right.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/icons/figma.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/icons/filter.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/icons/google.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/icons/heart-ol.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/icons/heart.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/icons/left.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/icons/linkedin.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/icons/location.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/icons/menu.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/icons/microsoft.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/icons/search.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/icons/share.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/icons/slack.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/icons/spotify.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/icons/twitch.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/icons/twitter.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/icons/wattpad.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/kemal.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/splash.png
1 change: 0 additions & 1 deletion babel.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,5 @@ module.exports = function (api) {
api.cache(true);
return {
presets: ["babel-preset-expo"],
plugins: ["expo-router/babel"],
};
};
14 changes: 14 additions & 0 deletions components/common/cards/nearby/NearbyJobCard.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import React from 'react'
import { View, Text } from 'react-native'

import styles from './nearbyjobcard.style'

const NearbyJobCard = () => {
return (
<View>
<Text>NearbyJobCard</Text>
</View>
)
}

export default NearbyJobCard
47 changes: 47 additions & 0 deletions components/common/cards/nearby/nearbyjobcard.style.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
import { StyleSheet } from "react-native";

import { COLORS, SHADOWS, SIZES } from "../../../../constants";

const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: "space-between",
alignItems: "center",
flexDirection: "row",
padding: SIZES.medium,
borderRadius: SIZES.small,
backgroundColor: "#FFF",
...SHADOWS.medium,
shadowColor: COLORS.white,
},
logoContainer: {
width: 50,
height: 50,
backgroundColor: COLORS.white,
borderRadius: SIZES.medium,
justifyContent: "center",
alignItems: "center",
},
logImage: {
width: "70%",
height: "70%",
},
textContainer: {
flex: 1,
marginHorizontal: SIZES.medium,
},
jobName: {
fontSize: SIZES.medium,
fontFamily: "DMBold",
color: COLORS.primary,
},
jobType: {
fontSize: SIZES.small + 2,
fontFamily: "DMRegular",
color: COLORS.gray,
marginTop: 3,
textTransform: "capitalize",
},
});

export default styles;
14 changes: 14 additions & 0 deletions components/common/cards/popular/PopularJobCard.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import React from 'react'
import { View, Text } from 'react-native'

import styles from './popularjobcard.style'

const PopularJobCard = () => {
return (
<View>
<Text>PopularJobCard</Text>
</View>
)
}

export default PopularJobCard
59 changes: 59 additions & 0 deletions components/common/cards/popular/popularjobcard.style.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
import { StyleSheet } from "react-native";

import { COLORS, FONT, SHADOWS, SIZES } from "../../../../constants";

const styles = StyleSheet.create({
container: (selectedJob, item) => ({
width: 250,
padding: SIZES.xLarge,
backgroundColor: selectedJob === item.job_id ? COLORS.primary : "#FFF",
borderRadius: SIZES.medium,
justifyContent: "space-between",
...SHADOWS.medium,
shadowColor: COLORS.white,
}),
logoContainer: (selectedJob, item) => ({
width: 50,
height: 50,
backgroundColor: selectedJob === item.job_id ? "#FFF" : COLORS.white,
borderRadius: SIZES.medium,
justifyContent: "center",
alignItems: "center",
}),
logoImage: {
width: "70%",
height: "70%",
},
companyName: {
fontSize: SIZES.medium,
fontFamily: FONT.regular,
color: "#B3AEC6",
marginTop: SIZES.small / 1.5,
},
infoContainer: {
marginTop: SIZES.large,
},
jobName: (selectedJob, item) => ({
fontSize: SIZES.large,
fontFamily: FONT.medium,
color: selectedJob === item.job_id ? COLORS.white : COLORS.primary,
}),
infoWrapper: {
flexDirection: "row",
marginTop: 5,
justifyContent: "flex-start",
alignItems: "center",
},
publisher: (selectedJob) => ({
fontSize: SIZES.medium - 2,
fontFamily: FONT.bold,
color: selectedJob === item.job_id ? COLORS.white : COLORS.primary,
}),
location: {
fontSize: SIZES.medium - 2,
fontFamily: FONT.regular,
color: "#B3AEC6",
},
});

export default styles;
18 changes: 18 additions & 0 deletions components/common/header/ScreenHeaderBtn.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import React from "react";
import { TouchableOpacity, Image } from "react-native";

import styles from "./screenheader.style";

const ScreenHeaderBtn = ({ iconUrl, handlePress, dimension }) => {
return (
<TouchableOpacity style={styles.btnContainer} onPress={handlePress}>
<Image
source={iconUrl}
resizeMode="cover"
style={styles.btnImg(dimension)}
/>
</TouchableOpacity>
);
};

export default ScreenHeaderBtn;
21 changes: 21 additions & 0 deletions components/common/header/screenheader.style.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import { StyleSheet } from "react-native";

import { COLORS, SIZES } from "../../../constants";

const styles = StyleSheet.create({
btnContainer: {
width: 40,
height: 40,
backgroundColor: COLORS.white,
borderRadius: SIZES.small / 1.25,
justifyContent: "center",
alignItems: "center",
},
btnImg: (dimension) => ({
width: dimension,
height: dimension,
borderRadius: SIZES.small / 1.25,
}),
});

export default styles;
14 changes: 14 additions & 0 deletions components/home/nearby/Nearbyjobs.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import React from 'react'
import { View, Text } from 'react-native'

import styles from './nearbyjobs.style'

const Nearbyjobs = () => {
return (
<View>
<Text>Nearbyjobs</Text>
</View>
)
}

export default Nearbyjobs
31 changes: 31 additions & 0 deletions components/home/nearby/nearbyjobs.style.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import { StyleSheet } from "react-native";

import { COLORS, FONT, SIZES } from "../../../constants";

const styles = StyleSheet.create({
container: {
marginTop: SIZES.xLarge,
},
header: {
flexDirection: "row",
justifyContent: "space-between",
alignItems: "center",
marginTop: SIZES.small,
},
headerTitle: {
fontSize: SIZES.large,
fontFamily: FONT.medium,
color: COLORS.primary,
},
headerBtn: {
fontSize: SIZES.medium,
fontFamily: FONT.medium,
color: COLORS.gray,
},
cardsContainer: {
marginTop: SIZES.medium,
gap: SIZES.small,
},
});

export default styles;
14 changes: 14 additions & 0 deletions components/home/popular/Popularjobs.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import React from "react";
import { View, Text } from "react-native";

import styles from "./popularjobs.style";

const Popularjobs = () => {
return (
<View>
<Text></Text>
</View>
);
};

export default Popularjobs;
29 changes: 29 additions & 0 deletions components/home/popular/popularjobs.style.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import { StyleSheet } from "react-native";

import { FONT, SIZES, COLORS } from "../../../constants";

const styles = StyleSheet.create({
container: {
marginTop: SIZES.xLarge,
},
header: {
flexDirection: "row",
justifyContent: "space-between",
alignItems: "center",
},
headerTitle: {
fontSize: SIZES.large,
fontFamily: FONT.medium,
color: COLORS.primary,
},
headerBtn: {
fontSize: SIZES.medium,
fontFamily: FONT.medium,
color: COLORS.gray,
},
cardsContainer: {
marginTop: SIZES.medium,
},
});

export default styles;
Loading

0 comments on commit e154ac2

Please sign in to comment.