Merge Experiment to Main #70

Merged
thschleicher merged 7 commits from experimentation into main 2023-11-30 20:11:45 +01:00
20 changed files with 17920 additions and 25 deletions

41
.gitignore vendored Normal file
View file

@ -0,0 +1,41 @@
# Learn more https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files
# dependencies
node_modules/
# Expo
.expo/
dist/
web-build/
# Native
*.orig.*
*.jks
*.p8
*.p12
*.key
*.mobileprovision
# Metro
.metro-health-check*
# debug
npm-debug.*
yarn-debug.*
yarn-error.*
# macOS
.DS_Store
*.pem
# local env files
.env*.local
# typescript
*.tsbuildinfo
# @generated expo-cli sync-2b81b286409207a5da26e14c78851eb30d8ccbdb
# The following patterns were generated by expo-cli
expo-env.d.ts
# @end expo-cli

View file

@ -1,32 +1,13 @@
# Interaktive Systeme
# Interaktive Systeme - Finanzfuchs App
## Getting started
To make it easy for you to get started with GitLab, here's a list of recommended next steps.
Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)!
## Add your files
- [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files
- [ ] [Add files using the command line](https://docs.gitlab.com/ee/gitlab-basics/add-file.html#add-a-file-using-the-command-line) or push an existing Git repository with the following command:
```
cd existing_repo
git remote add origin https://git-ainf.aau.at/thschleicher/interaktive-systeme.git
git branch -M main
git push -uf origin main
```
## Integrate with your tools
- [ ] [Set up project integrations](https://git-ainf.aau.at/thschleicher/interaktive-systeme/-/settings/integrations)
## Collaborate with your team
- [ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/)
- [x] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/)
- [ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html)
- [ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically)
- [ ] [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/)
@ -44,10 +25,6 @@ Use the built-in continuous integration in GitLab.
***
# Editing this README
When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thank you to [makeareadme.com](https://www.makeareadme.com/) for this template.
## Suggestions for a good README
Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information.

39
app.json Normal file
View file

@ -0,0 +1,39 @@
{
"expo": {
"name": "interaktive-systeme",
"slug": "interaktive-systeme",
"version": "1.0.0",
"orientation": "portrait",
"icon": "./assets/images/icon.png",
"scheme": "finanzfuchs",
"userInterfaceStyle": "automatic",
"splash": {
"image": "./assets/images/splash.png",
"resizeMode": "contain",
"backgroundColor": "#ffffff"
},
"assetBundlePatterns": [
"**/*"
],
"ios": {
"supportsTablet": false
},
"android": {
"adaptiveIcon": {
"foregroundImage": "./assets/images/adaptive-icon.png",
"backgroundColor": "#ffffff"
}
},
"web": {
"bundler": "metro",
"output": "static",
"favicon": "./assets/images/favicon.png"
},
"plugins": [
"expo-router"
],
"experiments": {
"typedRoutes": true
}
}
}

56
app/_layout.tsx Normal file
View file

@ -0,0 +1,56 @@
import { Tabs } from "expo-router/tabs";
import {StyleSheet, View} from "react-native"
import { FontAwesome } from "@expo/vector-icons";
import {useThemeColor} from "../hooks/hooks";
import {color} from "ansi-fragments";
export default function Layout() {
const selectedColor: string = useThemeColor( "tabIconSelected");
const defaultColor: string = useThemeColor("tabIconDefault");
const backgroundColor: string = useThemeColor("backgroundColor");
const styles = StyleSheet.create({
sceneContainer: {
backgroundColor: backgroundColor,
position: "absolute",
},
view: {
backgroundColor: "red",
}
});
const screenOptions = {
tabBarActiveTintColor: selectedColor,
tabBarInactiveTintColor: defaultColor,
headerShown: false,
}
return (
<Tabs sceneContainerStyle={styles.sceneContainer} initialRouteName={"index"} screenOptions={{tabBarBackground: () => {
return <View style={styles.view}/>;
}}}>
<Tabs.Screen name="budget" options={
{
tabBarLabel: "Budget",
tabBarIcon: ({size, color}) => (
<FontAwesome name="money" size={size} color={color}/>),
}
}/>
<Tabs.Screen name="index" options={
{
tabBarLabel: "Home",
tabBarIcon: ({size, color}) => (
<FontAwesome name="home" size={size} color={color}/>),
}
}/>
<Tabs.Screen name="stats" options={
{
tabBarLabel: "Stats",
tabBarIcon: ({size, color}) => (
<FontAwesome name="bar-chart" size={size} color={color}/>),
}
}/>
</Tabs>
);
}

5
app/budget.tsx Normal file
View file

@ -0,0 +1,5 @@
import { Text } from 'react-native';
export default function Page() {
return <Text>Budget Page</Text>;
}

21
app/index.tsx Normal file
View file

@ -0,0 +1,21 @@
import { StyleSheet, View, Text } from 'react-native';
export default function Page() {
return (
<View style={styles.container}>
<Text style={styles.text}>Home</Text>
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
alignItems: "center",
justifyContent: "center",
},
text: {
fontSize: 70,
fontWeight: "bold"
}
});

5
app/stats.tsx Normal file
View file

@ -0,0 +1,5 @@
import { Text } from 'react-native';
export default function Page() {
return <Text>Stats Page</Text>;
}

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
assets/images/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
assets/images/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

BIN
assets/images/splash.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 KiB

9
babel.config.js Normal file
View file

@ -0,0 +1,9 @@
module.exports = function (api) {
api.cache(true);
return {
presets: ['babel-preset-expo'],
plugins: [
'expo-router/babel',
],
};
};

20
constants/colors.ts Normal file
View file

@ -0,0 +1,20 @@
export default {
light: {
tabIconDefault: "gray",
tabIconSelected: "orange",
color: "orange",
contrastColor: "",
accentColor: "",
backgroundColor: "#ffffff",
tabBarColor: "gray",
},
dark: {
tabIconDefault: "gray",
tabIconSelected: "orange",
color: "#1B9AAA",
contrastColor: "",
accentColor: "",
backgroundColor: "lightgray",
tabBarColor: "gray",
}
}

7
hooks/hooks.ts Normal file
View file

@ -0,0 +1,7 @@
import { useColorScheme } from "react-native";
import colors from "../constants/colors"
export function useThemeColor(colorName: keyof typeof colors.light & keyof typeof colors.dark): string {
const theme = useColorScheme() ?? "light";
return colors[theme][colorName];
}

10
metro.config.js Normal file
View file

@ -0,0 +1,10 @@
// Learn more https://docs.expo.io/guides/customizing-metro
const { getDefaultConfig } = require('expo/metro-config');
/** @type {import('expo/metro-config').MetroConfig} */
const config = getDefaultConfig(__dirname, {
// [Web-only]: Enables CSS support in Metro.
isCSSEnabled: true,
});
module.exports = config;

17639
package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

54
package.json Normal file
View file

@ -0,0 +1,54 @@
{
"name": "interaktive-systeme",
"main": "expo-router/entry",
"version": "1.0.0",
"scripts": {
"start": "expo start",
"android": "expo start --android",
"ios": "expo start --ios",
"web": "expo start --web",
"test": "jest --watchAll",
"start tunnel": "expo start --tunnel",
"android tunnel": "expo start --android --tunnel",
"ios tunnel": "expo start --ios --tunnel",
"web tunnel": "expo start --web --tunnel",
"test tunnel": "jest --watchAll --tunnel"
},
"jest": {
"preset": "jest-expo"
},
"dependencies": {
"@expo/vector-icons": "^13.0.0",
"@react-navigation/native": "^6.0.2",
"expo": "~49.0.15",
"expo-font": "~11.4.0",
"expo-linking": "~5.0.2",
"expo-router": "^2.0.0",
"expo-splash-screen": "~0.20.5",
"expo-status-bar": "~1.6.0",
"expo-system-ui": "~2.4.0",
"expo-web-browser": "~12.3.2",
"react": "18.2.0",
"react-dom": "18.2.0",
"react-native": "0.72.6",
"react-native-gesture-handler": "~2.12.0",
"react-native-safe-area-context": "4.6.3",
"react-native-screens": "~3.22.0",
"react-native-web": "~0.19.6"
},
"devDependencies": {
"@babel/core": "^7.20.0",
"@types/react": "~18.2.14",
"jest": "^29.2.1",
"jest-expo": "~49.0.0",
"react-test-renderer": "18.2.0",
"typescript": "^5.1.3"
},
"overrides": {
"react-refresh": "~0.14.0"
},
"resolutions": {
"react-refresh": "~0.14.0"
},
"private": true
}

12
tsconfig.json Normal file
View file

@ -0,0 +1,12 @@
{
"extends": "expo/tsconfig.base",
"compilerOptions": {
"strict": true,
},
"include": [
"**/*.ts",
"**/*.tsx",
".expo/types/**/*.ts",
"expo-env.d.ts"
]
}