Merge Experiment to Main #70
20 changed files with 17920 additions and 25 deletions
41
.gitignore
vendored
Normal file
41
.gitignore
vendored
Normal 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
|
||||
27
README.md
27
README.md
|
|
@ -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
39
app.json
Normal 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
56
app/_layout.tsx
Normal 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
5
app/budget.tsx
Normal 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
21
app/index.tsx
Normal 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
5
app/stats.tsx
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
import { Text } from 'react-native';
|
||||
|
||||
export default function Page() {
|
||||
return <Text>Stats Page</Text>;
|
||||
}
|
||||
BIN
assets/fonts/SpaceMono-Regular.ttf
Executable file
BIN
assets/fonts/SpaceMono-Regular.ttf
Executable file
Binary file not shown.
BIN
assets/images/adaptive-icon.png
Normal file
BIN
assets/images/adaptive-icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
BIN
assets/images/favicon.png
Normal file
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
BIN
assets/images/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 22 KiB |
BIN
assets/images/splash-template.png
Normal file
BIN
assets/images/splash-template.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 46 KiB |
BIN
assets/images/splash.png
Normal file
BIN
assets/images/splash.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 259 KiB |
9
babel.config.js
Normal file
9
babel.config.js
Normal 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
20
constants/colors.ts
Normal 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
7
hooks/hooks.ts
Normal 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
10
metro.config.js
Normal 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
17639
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load diff
54
package.json
Normal file
54
package.json
Normal 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
12
tsconfig.json
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"extends": "expo/tsconfig.base",
|
||||
"compilerOptions": {
|
||||
"strict": true,
|
||||
},
|
||||
"include": [
|
||||
"**/*.ts",
|
||||
"**/*.tsx",
|
||||
".expo/types/**/*.ts",
|
||||
"expo-env.d.ts"
|
||||
]
|
||||
}
|
||||
Reference in a new issue