Merge branch 'DevFrits' of https://github.com/Xandra10101/AlfaPrentice into DevFrits
13
.gitignore
vendored
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
node_modules/**/*
|
||||||
|
expo/*
|
||||||
|
npm-debug.*
|
||||||
|
*.jks
|
||||||
|
*.p8
|
||||||
|
*.p12
|
||||||
|
*.key
|
||||||
|
*.mobileprovision
|
||||||
|
*.orig.*
|
||||||
|
web-build/
|
||||||
|
|
||||||
|
# macOS
|
||||||
|
.DS_Store
|
||||||
4
ReactJS/Native/AlfaPrentice/.expo-shared/assets.json
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"12bb71342c6255bbf50437ec8f4441c083f47cdb74bd89160c15e4f43e52a1cb": true,
|
||||||
|
"40b842e832070c58deac6aa9e08fa459302ee3f9da492c7e77d93d2fbf4a56fd": true
|
||||||
|
}
|
||||||
13
ReactJS/Native/AlfaPrentice/.gitignore
vendored
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
node_modules/**/*
|
||||||
|
.expo/*
|
||||||
|
npm-debug.*
|
||||||
|
*.jks
|
||||||
|
*.p8
|
||||||
|
*.p12
|
||||||
|
*.key
|
||||||
|
*.mobileprovision
|
||||||
|
*.orig.*
|
||||||
|
web-build/
|
||||||
|
|
||||||
|
# macOS
|
||||||
|
.DS_Store
|
||||||
10
ReactJS/Native/AlfaPrentice/App.js
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
import { StatusBar } from 'expo-status-bar';
|
||||||
|
import React from 'react';
|
||||||
|
import { StyleSheet, Text, View } from 'react-native';
|
||||||
|
import Routes from "./App/index";
|
||||||
|
|
||||||
|
export default function App() {
|
||||||
|
return (
|
||||||
|
<Routes />
|
||||||
|
);
|
||||||
|
}
|
||||||
100
ReactJS/Native/AlfaPrentice/App/Cards/CompanyResultCard.js
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
//Modules
|
||||||
|
import React from 'react';
|
||||||
|
import { View, Text, StyleSheet, TouchableOpacity, ScrollView, Component, Button } from 'react-native';
|
||||||
|
import { useNavigation } from '@react-navigation/native';
|
||||||
|
//Components
|
||||||
|
|
||||||
|
function Navigate(props) {
|
||||||
|
const navigation = useNavigation();
|
||||||
|
return(
|
||||||
|
<TouchableOpacity style={Styles.Btn} onPress = {() => navigation.navigate('Companyprofile', { CompanyDetails: props.Details })}>
|
||||||
|
<Text style={Styles.white}>Bekijk bedrijf</Text>
|
||||||
|
</TouchableOpacity>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
class CompanyResultCard extends React.Component{
|
||||||
|
constructor (props) {
|
||||||
|
super(props);
|
||||||
|
this.state = {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
render() {
|
||||||
|
|
||||||
|
return (
|
||||||
|
<ScrollView>
|
||||||
|
<View style={Styles.ResultCard}>
|
||||||
|
<View style={Styles.Row}>
|
||||||
|
<Text style={Styles.HeroHeading}>Bedrijfsnaam 1</Text>
|
||||||
|
<Navigate Details = {this.props.details}/>
|
||||||
|
</View>
|
||||||
|
<View style={Styles.ContentRow}>
|
||||||
|
<Text>Locatie: Groningen</Text>
|
||||||
|
<Text>Opleding: AO</Text>
|
||||||
|
</View>
|
||||||
|
<View style={Styles.ContentRowRa}>
|
||||||
|
<Text>Beschikbaarheid: 2 plekken over</Text>
|
||||||
|
</View>
|
||||||
|
|
||||||
|
</View>
|
||||||
|
<View style={Styles.HR}/>
|
||||||
|
</ScrollView>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const Styles = StyleSheet.create ({
|
||||||
|
ResultCard: {
|
||||||
|
padding: 30,
|
||||||
|
},
|
||||||
|
HeroHeading: {
|
||||||
|
color: "#DE0000",
|
||||||
|
fontSize: 20,
|
||||||
|
},
|
||||||
|
Btn: {
|
||||||
|
backgroundColor: '#DE0000',
|
||||||
|
paddingVertical: 10,
|
||||||
|
paddingHorizontal: 15,
|
||||||
|
borderRadius: 5,
|
||||||
|
|
||||||
|
},
|
||||||
|
white: {
|
||||||
|
color: '#ffffff',
|
||||||
|
},
|
||||||
|
Row: {
|
||||||
|
display: 'flex',
|
||||||
|
flexDirection: 'row',
|
||||||
|
width: '100%',
|
||||||
|
flexWrap: 'wrap',
|
||||||
|
justifyContent: 'space-between'
|
||||||
|
},
|
||||||
|
ContentRow: {
|
||||||
|
display: 'flex',
|
||||||
|
flexDirection: 'row',
|
||||||
|
width: '100%',
|
||||||
|
flexWrap: 'wrap',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
marginTop: 15,
|
||||||
|
},
|
||||||
|
ContentRowRa: {
|
||||||
|
display: 'flex',
|
||||||
|
flexDirection: 'row',
|
||||||
|
width: '100%',
|
||||||
|
flexWrap: 'wrap',
|
||||||
|
justifyContent: 'flex-end',
|
||||||
|
marginTop: 15,
|
||||||
|
},
|
||||||
|
HR: {
|
||||||
|
height: 2,
|
||||||
|
backgroundColor: '#DE0000',
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
export default CompanyResultCard;
|
||||||
57
ReactJS/Native/AlfaPrentice/App/Cards/ProfileLinks.js
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
//Modules
|
||||||
|
import React from 'react';
|
||||||
|
import {View, Text, StyleSheet, TouchableOpacity} from 'react-native';
|
||||||
|
import { useNavigation } from '@react-navigation/native';
|
||||||
|
|
||||||
|
function Navigate(props) {
|
||||||
|
const navigation = useNavigation();
|
||||||
|
return(
|
||||||
|
<View>
|
||||||
|
<TouchableOpacity onPress = {() => navigation.navigate(props.Page)}>
|
||||||
|
<Text style={Styles.ProfileText}>{props.Title}</Text>
|
||||||
|
</TouchableOpacity>
|
||||||
|
</View>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
function HrCheck(props) {
|
||||||
|
var x = props.hr;
|
||||||
|
if (x == "false"){
|
||||||
|
return <View></View>
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return(
|
||||||
|
<View style={Styles.HR}/>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const ProfileLink = (props) => {
|
||||||
|
|
||||||
|
return (
|
||||||
|
<View>
|
||||||
|
<View style={Styles.Profilelink}>
|
||||||
|
<Navigate Page={props.Page} Title={props.Title}/>
|
||||||
|
</View>
|
||||||
|
<HrCheck hr = {props.hr}/>
|
||||||
|
</View>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
const Styles = StyleSheet.create ({
|
||||||
|
Profilelink: {
|
||||||
|
paddingVertical: 30,
|
||||||
|
paddingHorizontal: 60,
|
||||||
|
width: '100%'
|
||||||
|
},
|
||||||
|
ProfileText:{
|
||||||
|
color: '#DE0000',
|
||||||
|
},
|
||||||
|
HR: {
|
||||||
|
height: 2,
|
||||||
|
backgroundColor: '#DE0000',
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
export default ProfileLink;
|
||||||
64
ReactJS/Native/AlfaPrentice/App/Footer/Footer.js
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import { View, Text, StyleSheet, TouchableOpacity } from 'react-native';
|
||||||
|
import { Icon } from 'react-native-elements'
|
||||||
|
import { useNavigation } from '@react-navigation/native';
|
||||||
|
|
||||||
|
function Navigate(props) {
|
||||||
|
const navigation = useNavigation();
|
||||||
|
return(
|
||||||
|
<View style={Styles.IconRow}>
|
||||||
|
<TouchableOpacity onPress = {() => navigation.navigate('Home')}>
|
||||||
|
<Icon
|
||||||
|
name='home'
|
||||||
|
color='#fff' />
|
||||||
|
</TouchableOpacity>
|
||||||
|
<TouchableOpacity onPress = {() => navigation.navigate('Search')}>
|
||||||
|
<Icon
|
||||||
|
name='search'
|
||||||
|
color='#fff' />
|
||||||
|
</TouchableOpacity>
|
||||||
|
<TouchableOpacity onPress = {() => navigation.navigate('Userprofile')}>
|
||||||
|
<Icon
|
||||||
|
name='mail'
|
||||||
|
color='#fff' />
|
||||||
|
</TouchableOpacity>
|
||||||
|
<TouchableOpacity onPress = {() => navigation.navigate('Userprofile')}>
|
||||||
|
<Icon
|
||||||
|
name='person'
|
||||||
|
color='#fff' />
|
||||||
|
</TouchableOpacity>
|
||||||
|
|
||||||
|
</View>
|
||||||
|
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
const Footer = () => {
|
||||||
|
return (
|
||||||
|
<View style={Styles.MainFooter}>
|
||||||
|
<Navigate/>
|
||||||
|
|
||||||
|
</View>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
const Styles = StyleSheet.create({
|
||||||
|
MainFooter: {
|
||||||
|
width: '100%',
|
||||||
|
height: 50,
|
||||||
|
color: '#ffffff',
|
||||||
|
backgroundColor: '#003581',
|
||||||
|
justifyContent: 'center',
|
||||||
|
alignItems: 'center',
|
||||||
|
position: 'absolute', //Here is the trick
|
||||||
|
bottom: 0, //Here is the trick
|
||||||
|
},
|
||||||
|
IconRow: {
|
||||||
|
display: 'flex',
|
||||||
|
flexDirection: 'row',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
width: '80%',
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
export default Footer;
|
||||||
34
ReactJS/Native/AlfaPrentice/App/Header/Header.js
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import { StyleSheet, Text, View, Image} from 'react-native';
|
||||||
|
import { block } from 'react-native-reanimated';
|
||||||
|
|
||||||
|
class Header extends React.Component {
|
||||||
|
render() {
|
||||||
|
return(
|
||||||
|
<View style={Styles.Header}>
|
||||||
|
<Image style={Styles.HeaderLogo} source={require('../Images/logo.png')} />
|
||||||
|
</View>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const Styles = StyleSheet.create({
|
||||||
|
Header: {
|
||||||
|
color: '#ffffff',
|
||||||
|
textAlign: 'center',
|
||||||
|
display: 'flex',
|
||||||
|
alignItems: 'center',
|
||||||
|
paddingVertical: 15,
|
||||||
|
paddingHorizontal: 10,
|
||||||
|
marginTop: 10,
|
||||||
|
height: 60,
|
||||||
|
|
||||||
|
},
|
||||||
|
HeaderLogo: {
|
||||||
|
width: '40%',
|
||||||
|
height: '100%',
|
||||||
|
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
export default Header;
|
||||||
81
ReactJS/Native/AlfaPrentice/App/Hero/Hero.js
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
//Modules
|
||||||
|
import React from 'react';
|
||||||
|
import { View, Text, StyleSheet, ImageBackground, Image, TextInput } from 'react-native';
|
||||||
|
const image = { uri: "https://reactjs.org/logo-og.png" };
|
||||||
|
|
||||||
|
class Hero extends React.Component {
|
||||||
|
constructor (props) {
|
||||||
|
super(props);
|
||||||
|
}
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<View>
|
||||||
|
<ImageBackground style={Styles.image} source={require('../Images/Stock.png')}>
|
||||||
|
<View>
|
||||||
|
<Text style={Styles.HeroHeading}>{this.props.HeroHeading}</Text>
|
||||||
|
<Text style={Styles.HeroText}>{this.props.HeroText}</Text>
|
||||||
|
</View>
|
||||||
|
</ImageBackground>
|
||||||
|
</View>
|
||||||
|
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const HeroSearch = (props) => {
|
||||||
|
const [SearchBar, onChangeSearch] = React.useState('');
|
||||||
|
return (
|
||||||
|
<View>
|
||||||
|
<ImageBackground style={Styles.image} source={require('../Images/Stock.png')}>
|
||||||
|
<View style={Styles.InputContainer}>
|
||||||
|
<TextInput
|
||||||
|
style={Styles.Input}
|
||||||
|
onChangeText={text => onChangeSearch(text)}
|
||||||
|
placeholder="Zoek"
|
||||||
|
placeholderTextColor="#DE0000"
|
||||||
|
value={SearchBar}
|
||||||
|
/>
|
||||||
|
</View>
|
||||||
|
</ImageBackground>
|
||||||
|
</View>
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
const Styles = StyleSheet.create ({
|
||||||
|
image: {
|
||||||
|
resizeMode: "cover",
|
||||||
|
width: '100%',
|
||||||
|
backgroundColor: "#DE0000a0",
|
||||||
|
},
|
||||||
|
HeroHeading: {
|
||||||
|
color: "white",
|
||||||
|
fontSize: 30,
|
||||||
|
textAlign: "center",
|
||||||
|
backgroundColor: "#DE0000a0",
|
||||||
|
paddingTop: 10,
|
||||||
|
},
|
||||||
|
HeroText: {
|
||||||
|
color: "white",
|
||||||
|
backgroundColor: "#DE0000a0",
|
||||||
|
textAlign: "center",
|
||||||
|
height: 55,
|
||||||
|
},
|
||||||
|
InputContainer: {
|
||||||
|
height: 100,
|
||||||
|
backgroundColor: "#DE0000a0",
|
||||||
|
display: 'flex',
|
||||||
|
alignItems: 'center',
|
||||||
|
justifyContent: 'center',
|
||||||
|
},
|
||||||
|
Input: {
|
||||||
|
height: 40,
|
||||||
|
backgroundColor: '#ffffff',
|
||||||
|
width: '60%',
|
||||||
|
paddingHorizontal: 10,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
export {HeroSearch};
|
||||||
|
export default Hero;
|
||||||
BIN
ReactJS/Native/AlfaPrentice/App/Images/Stock.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
ReactJS/Native/AlfaPrentice/App/Images/logo-licht.png
Normal file
|
After Width: | Height: | Size: 126 KiB |
BIN
ReactJS/Native/AlfaPrentice/App/Images/logo.png
Normal file
|
After Width: | Height: | Size: 150 KiB |
BIN
ReactJS/Native/AlfaPrentice/App/Images/stock2.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
26
ReactJS/Native/AlfaPrentice/App/Layouts/DefaultLayout.js
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
//Mopdules
|
||||||
|
import React from 'react';
|
||||||
|
import {View, Text, ScrollView} from 'react-native';
|
||||||
|
|
||||||
|
//Components
|
||||||
|
import {Header, Footer} from '../index';
|
||||||
|
|
||||||
|
class DefaultLayout extends React.Component {
|
||||||
|
constructor(props){
|
||||||
|
super(props);
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<View>
|
||||||
|
<ScrollView>
|
||||||
|
<Header/>
|
||||||
|
{this.props.children}
|
||||||
|
</ScrollView>
|
||||||
|
<Footer/>
|
||||||
|
</View>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default DefaultLayout;
|
||||||
52
ReactJS/Native/AlfaPrentice/App/Router/Router.js
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
//Modules
|
||||||
|
import 'react-native-gesture-handler';
|
||||||
|
import * as React from 'react';
|
||||||
|
import { NavigationContainer } from '@react-navigation/native';
|
||||||
|
import { createStackNavigator } from '@react-navigation/stack';
|
||||||
|
|
||||||
|
//Pages
|
||||||
|
import { Home, SearchPage, Login, CompanyProfile, UserProfile} from '../index';
|
||||||
|
|
||||||
|
const Stack = createStackNavigator();
|
||||||
|
|
||||||
|
class Routes extends React.Component {
|
||||||
|
constructor(props){
|
||||||
|
super(props);
|
||||||
|
this.state = {
|
||||||
|
items: this.props.item,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<NavigationContainer>
|
||||||
|
<Stack.Navigator screenOptions={{
|
||||||
|
headerShown: false
|
||||||
|
}}>
|
||||||
|
<Stack.Screen
|
||||||
|
name="Login"
|
||||||
|
component={Login}
|
||||||
|
/>
|
||||||
|
<Stack.Screen
|
||||||
|
name="Home"
|
||||||
|
component={Home}
|
||||||
|
/>
|
||||||
|
<Stack.Screen
|
||||||
|
name="Search"
|
||||||
|
component={SearchPage}
|
||||||
|
/>
|
||||||
|
<Stack.Screen
|
||||||
|
name="Companyprofile"
|
||||||
|
component={CompanyProfile}
|
||||||
|
/>
|
||||||
|
<Stack.Screen
|
||||||
|
name="Userprofile"
|
||||||
|
component={UserProfile}
|
||||||
|
/>
|
||||||
|
</Stack.Navigator>
|
||||||
|
</NavigationContainer>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
export default Routes;
|
||||||
19
ReactJS/Native/AlfaPrentice/App/Views/Home.js
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
//Modules
|
||||||
|
import React from 'react'
|
||||||
|
import { TouchableOpacity, Text } from 'react-native';
|
||||||
|
import { Actions } from 'react-native-router-flux';
|
||||||
|
|
||||||
|
//Components
|
||||||
|
import { DefaultLayout, Hero } from '../index';
|
||||||
|
|
||||||
|
const Home = ({ navigation }) => {
|
||||||
|
return (
|
||||||
|
<DefaultLayout>
|
||||||
|
<Hero HeroHeading="AlfaPrentice" HeroText="De plek ow je ideale stageplek te vinden"/>
|
||||||
|
<TouchableOpacity style = {{ margin: 128 }} >
|
||||||
|
<Text>Terug naar login</Text>
|
||||||
|
</TouchableOpacity>
|
||||||
|
</DefaultLayout>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
export default Home
|
||||||
87
ReactJS/Native/AlfaPrentice/App/Views/Login.js
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
//Modules
|
||||||
|
import React from 'react';
|
||||||
|
import {View, Text, TextInput, StyleSheet, TouchableOpacity } from 'react-native';
|
||||||
|
|
||||||
|
|
||||||
|
//Components
|
||||||
|
import {Header} from '../index';
|
||||||
|
|
||||||
|
const Login = ({ navigation }) => {
|
||||||
|
const [UserName, onChangeUserName] = React.useState('');
|
||||||
|
const [PassWord, onChangePassWord] = React.useState('');
|
||||||
|
|
||||||
|
return (
|
||||||
|
<View>
|
||||||
|
<Header/>
|
||||||
|
<View style={Styles.Container}>
|
||||||
|
<TextInput
|
||||||
|
style={Styles.Input}
|
||||||
|
onChangeText={text => onChangeUserName(text)}
|
||||||
|
placeholder="Gebruikersnaam"
|
||||||
|
value={UserName}
|
||||||
|
/>
|
||||||
|
<TextInput
|
||||||
|
style={Styles.Input}
|
||||||
|
onChangeText={text => onChangePassWord(text)}
|
||||||
|
placeholder="Wachtwoord"
|
||||||
|
value={PassWord}
|
||||||
|
secureTextEntry={true}
|
||||||
|
/>
|
||||||
|
<View style={Styles.BtnWrapper}>
|
||||||
|
<TouchableOpacity style={Styles.BtnOutline}>
|
||||||
|
<Text>Annuleren</Text>
|
||||||
|
</TouchableOpacity>
|
||||||
|
<TouchableOpacity style={Styles.Btn}>
|
||||||
|
<Text style={Styles.white} onPress={() =>
|
||||||
|
navigation.navigate('Home')
|
||||||
|
}>Login</Text>
|
||||||
|
</TouchableOpacity>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
const Styles = StyleSheet.create ({
|
||||||
|
Container: {
|
||||||
|
marginTop: '50%',
|
||||||
|
display: 'flex',
|
||||||
|
alignItems: 'center',
|
||||||
|
|
||||||
|
},
|
||||||
|
Input: {
|
||||||
|
height: 40,
|
||||||
|
borderColor: '#DE0000',
|
||||||
|
borderRadius: 5,
|
||||||
|
borderWidth: 1,
|
||||||
|
width: '60%',
|
||||||
|
marginTop: 30,
|
||||||
|
padding: 10.
|
||||||
|
},
|
||||||
|
Btn: {
|
||||||
|
backgroundColor: '#DE0000',
|
||||||
|
paddingVertical: 10,
|
||||||
|
paddingHorizontal: 15,
|
||||||
|
borderRadius: 5,
|
||||||
|
marginLeft: 50,
|
||||||
|
},
|
||||||
|
BtnOutline: {
|
||||||
|
borderColor: '#DE0000',
|
||||||
|
borderRadius: 5,
|
||||||
|
borderWidth: 1,
|
||||||
|
paddingVertical: 10,
|
||||||
|
paddingHorizontal: 15,
|
||||||
|
borderRadius: 5,
|
||||||
|
},
|
||||||
|
white: {
|
||||||
|
color: '#ffffff',
|
||||||
|
},
|
||||||
|
BtnWrapper: {
|
||||||
|
display: 'flex',
|
||||||
|
flexDirection: 'row',
|
||||||
|
marginTop: 30,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
export default Login;
|
||||||
@ -0,0 +1,17 @@
|
|||||||
|
//Modules
|
||||||
|
import React from 'react';
|
||||||
|
import {View, Text} from 'react-native';
|
||||||
|
|
||||||
|
const CompanyProfile = ({navigation, route}) => {
|
||||||
|
|
||||||
|
return(
|
||||||
|
<View>
|
||||||
|
<Text>
|
||||||
|
{route.params.CompanyDetails}
|
||||||
|
</Text>
|
||||||
|
</View>
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
export default CompanyProfile;
|
||||||
@ -0,0 +1,40 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import { View, Text,TouchableOpacity, StyleSheet} from 'react-native';
|
||||||
|
|
||||||
|
//Components
|
||||||
|
import { DefaultLayout, Hero, ProfileLink } from '../../index';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class UserProfile extends React.Component {
|
||||||
|
constructor(props){
|
||||||
|
super(props);
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<DefaultLayout>
|
||||||
|
<View style={Styles.UserProfilePage}>
|
||||||
|
<Hero HeroHeading="Frits Haringa" HeroText="Student Applicatie en Mediaontwikkeling jaar 3"/>
|
||||||
|
<ProfileLink Page="Home" Title="Status van je stageplek zien"/>
|
||||||
|
<ProfileLink Page="Home" Title="Uitgaande solicitaites bekijken"/>
|
||||||
|
<ProfileLink Page="Home" Title="Account instellingen"/>
|
||||||
|
<ProfileLink Page="Home" Title="Suggesties"/>
|
||||||
|
<ProfileLink Page="Home" Title="Weekstaten"/>
|
||||||
|
<ProfileLink Page="Home" Title="Agenda"/>
|
||||||
|
<ProfileLink Page="Home" Title="Contact opnemen"/>
|
||||||
|
<ProfileLink Page="Home" Title="Uitloggen" hr="false"/>
|
||||||
|
</View>
|
||||||
|
|
||||||
|
</DefaultLayout>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const Styles = StyleSheet.create ({
|
||||||
|
UserProfilePage: {
|
||||||
|
marginBottom: 50,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
export default UserProfile;
|
||||||
40
ReactJS/Native/AlfaPrentice/App/Views/SearchPage.js
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
//Modules
|
||||||
|
import React from 'react'
|
||||||
|
import { TouchableOpacity, Text } from 'react-native'
|
||||||
|
import { Actions } from 'react-native-router-flux'
|
||||||
|
import { Router, Scene } from 'react-native-router-flux';
|
||||||
|
import { useNavigation } from '@react-navigation/native';
|
||||||
|
|
||||||
|
//Components
|
||||||
|
import { DefaultLayout, HeroSearch, CompanyResultcard } from '../index';
|
||||||
|
|
||||||
|
//Pages
|
||||||
|
import { CompanyProfile} from '../index';
|
||||||
|
|
||||||
|
|
||||||
|
class SearchPage extends React.Component {
|
||||||
|
constructor(props){
|
||||||
|
super(props);
|
||||||
|
this.state = {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
render(){
|
||||||
|
|
||||||
|
return (
|
||||||
|
<DefaultLayout>
|
||||||
|
<HeroSearch/>
|
||||||
|
<CompanyResultcard details = "Bedrijf 1"/>
|
||||||
|
<CompanyResultcard details = "Bedrijf 2"/>
|
||||||
|
<CompanyResultcard details = "Bedrijf 3"/>
|
||||||
|
<CompanyResultcard details = "Bedrijf 4"/>
|
||||||
|
</DefaultLayout>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
export default SearchPage;
|
||||||
38
ReactJS/Native/AlfaPrentice/App/index.js
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
//Components
|
||||||
|
import Header from './Header/Header';
|
||||||
|
import Routes from './Router/Router';
|
||||||
|
import DefaultLayout from './Layouts/DefaultLayout';
|
||||||
|
import Hero from './Hero/Hero';
|
||||||
|
import {HeroSearch} from './Hero/Hero';
|
||||||
|
import CompanyResultcard from './Cards/CompanyResultCard';
|
||||||
|
import Footer from './Footer/Footer';
|
||||||
|
import ProfileLink from './Cards/ProfileLinks';
|
||||||
|
|
||||||
|
//Pages
|
||||||
|
import Home from "./Views/Home";
|
||||||
|
import SearchPage from './Views/SearchPage';
|
||||||
|
import Login from './Views/Login';
|
||||||
|
import CompanyProfile from './Views/Profiles/CompanyProfile';
|
||||||
|
import UserProfile from './Views/Profiles/UserProfile';
|
||||||
|
|
||||||
|
//Components export
|
||||||
|
export {
|
||||||
|
Header,
|
||||||
|
DefaultLayout,
|
||||||
|
Hero,
|
||||||
|
HeroSearch,
|
||||||
|
CompanyResultcard,
|
||||||
|
Footer,
|
||||||
|
ProfileLink,
|
||||||
|
}
|
||||||
|
|
||||||
|
//Pages export
|
||||||
|
export {
|
||||||
|
Home,
|
||||||
|
SearchPage,
|
||||||
|
Login,
|
||||||
|
CompanyProfile,
|
||||||
|
UserProfile,
|
||||||
|
}
|
||||||
|
|
||||||
|
export default Routes;
|
||||||
32
ReactJS/Native/AlfaPrentice/app.json
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"expo": {
|
||||||
|
"name": "AlfaPrentice",
|
||||||
|
"slug": "AlfaPrentice",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"orientation": "portrait",
|
||||||
|
"icon": "./assets/icon.png",
|
||||||
|
"splash": {
|
||||||
|
"image": "./assets/splash.png",
|
||||||
|
"resizeMode": "contain",
|
||||||
|
"backgroundColor": "#ffffff"
|
||||||
|
},
|
||||||
|
"updates": {
|
||||||
|
"fallbackToCacheTimeout": 0
|
||||||
|
},
|
||||||
|
"assetBundlePatterns": [
|
||||||
|
"**/*"
|
||||||
|
],
|
||||||
|
"ios": {
|
||||||
|
"supportsTablet": true
|
||||||
|
},
|
||||||
|
"android": {
|
||||||
|
"adaptiveIcon": {
|
||||||
|
"foregroundImage": "./assets/adaptive-icon.png",
|
||||||
|
"backgroundColor": "#FFFFFF"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"web": {
|
||||||
|
"favicon": "./assets/favicon.png"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
ReactJS/Native/AlfaPrentice/assets/adaptive-icon.png
Normal file
|
After Width: | Height: | Size: 150 KiB |
BIN
ReactJS/Native/AlfaPrentice/assets/favicon.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
ReactJS/Native/AlfaPrentice/assets/icon.png
Normal file
|
After Width: | Height: | Size: 150 KiB |
BIN
ReactJS/Native/AlfaPrentice/assets/splash.png
Normal file
|
After Width: | Height: | Size: 150 KiB |
6
ReactJS/Native/AlfaPrentice/babel.config.js
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
module.exports = function(api) {
|
||||||
|
api.cache(true);
|
||||||
|
return {
|
||||||
|
presets: ['babel-preset-expo'],
|
||||||
|
};
|
||||||
|
};
|
||||||
8364
ReactJS/Native/AlfaPrentice/package-lock.json
generated
Normal file
31
ReactJS/Native/AlfaPrentice/package.json
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"main": "node_modules/expo/AppEntry.js",
|
||||||
|
"scripts": {
|
||||||
|
"start": "expo start",
|
||||||
|
"android": "expo start --android",
|
||||||
|
"ios": "expo start --ios",
|
||||||
|
"web": "expo start --web",
|
||||||
|
"eject": "expo eject"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@react-native-community/masked-view": "^0.1.10",
|
||||||
|
"@react-navigation/native": "^5.8.10",
|
||||||
|
"@react-navigation/stack": "^5.12.8",
|
||||||
|
"expo": "~39.0.2",
|
||||||
|
"expo-status-bar": "~1.0.2",
|
||||||
|
"react": "16.13.1",
|
||||||
|
"react-dom": "16.13.1",
|
||||||
|
"react-native": "https://github.com/expo/react-native/archive/sdk-39.0.4.tar.gz",
|
||||||
|
"react-native-elements": "^3.0.0-alpha.1",
|
||||||
|
"react-native-gesture-handler": "^1.7.0",
|
||||||
|
"react-native-reanimated": "^1.13.2",
|
||||||
|
"react-native-router-flux": "^4.2.0",
|
||||||
|
"react-native-safe-area-context": "^3.1.4",
|
||||||
|
"react-native-screens": "^2.10.1",
|
||||||
|
"react-native-web": "~0.13.12"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@babel/core": "~7.9.0"
|
||||||
|
},
|
||||||
|
"private": true
|
||||||
|
}
|
||||||