From 47e493d9bd29c85a814ed6a23afb60606b87fe8a Mon Sep 17 00:00:00 2001 From: StarAppeal Date: Wed, 4 Dec 2024 03:22:05 +0100 Subject: [PATCH] =?UTF-8?q?i=20forgor=20=F0=9F=92=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eslintrc.js | 5 + App.tsx | 18 + app.json | 10 +- app/(tabs)/_layout.tsx | 42 - app/(tabs)/about.tsx | 37 - app/(tabs)/index.tsx | 65 - app/+not-found.tsx | 30 - app/_layout.tsx | 10 - app/screens/HomeScreen.tsx | 44 + app/screens/LoginScreen.tsx | 84 + app/screens/ProtectedScreen.tsx | 35 + assets/app.png | Bin 0 -> 46736 bytes assets/fonts/SpaceMono-Regular.ttf | Bin assets/icon.png | Bin 0 -> 18043 bytes assets/items/back.png | Bin 0 -> 189 bytes assets/items/dot.png | Bin 0 -> 1380 bytes assets/items/logo.png | Bin 0 -> 18043 bytes assets/splash.png | Bin 0 -> 86283 bytes components/Button.tsx | 61 - eas.json | 4 +- hooks/useService.ts | 35 - model/User.ts | 16 - package-lock.json | 4598 ++++++++++++++--- package.json | 57 +- server.ts | 41 + src/components/AuthenticatedWrapper.tsx | 15 + src/components/BackButton.tsx | 30 + .../components}/ImageViewer.tsx | 2 +- src/components/Logo.tsx | 19 + src/components/NotAuthenticated.tsx | 28 + .../components}/SpotifyAuthButton.tsx | 14 +- src/components/themed/ThemedBackground.tsx | 43 + src/components/themed/ThemedButton.tsx | 46 + src/components/themed/ThemedHeader.tsx | 26 + src/components/themed/ThemedParagraph.tsx | 28 + src/components/themed/ThemedText.tsx | 16 + src/components/themed/ThemedTextInput.tsx | 55 + src/components/themed/ThemedView.tsx | 16 + src/context/AuthProvider.tsx | 73 + src/context/ThemeProvider.tsx | 43 + src/core/AppNavigator.tsx | 73 + src/core/theme.ts | 44 + src/hooks/useService.ts | 28 + {hooks => src/hooks}/useSpotifyAuth.ts | 4 +- src/model/User.ts | 45 + {services => src/services}/RestService.ts | 70 +- src/utils/secureStorage.ts | 35 + 47 files changed, 4919 insertions(+), 1026 deletions(-) create mode 100644 .eslintrc.js create mode 100644 App.tsx delete mode 100644 app/(tabs)/_layout.tsx delete mode 100644 app/(tabs)/about.tsx delete mode 100644 app/(tabs)/index.tsx delete mode 100644 app/+not-found.tsx delete mode 100644 app/_layout.tsx create mode 100644 app/screens/HomeScreen.tsx create mode 100644 app/screens/LoginScreen.tsx create mode 100644 app/screens/ProtectedScreen.tsx create mode 100644 assets/app.png mode change 100755 => 100644 assets/fonts/SpaceMono-Regular.ttf create mode 100644 assets/icon.png create mode 100644 assets/items/back.png create mode 100644 assets/items/dot.png create mode 100644 assets/items/logo.png create mode 100644 assets/splash.png delete mode 100644 components/Button.tsx delete mode 100644 hooks/useService.ts delete mode 100644 model/User.ts create mode 100644 server.ts create mode 100644 src/components/AuthenticatedWrapper.tsx create mode 100644 src/components/BackButton.tsx rename {components => src/components}/ImageViewer.tsx (98%) create mode 100644 src/components/Logo.tsx create mode 100644 src/components/NotAuthenticated.tsx rename {components => src/components}/SpotifyAuthButton.tsx (57%) create mode 100644 src/components/themed/ThemedBackground.tsx create mode 100644 src/components/themed/ThemedButton.tsx create mode 100644 src/components/themed/ThemedHeader.tsx create mode 100644 src/components/themed/ThemedParagraph.tsx create mode 100644 src/components/themed/ThemedText.tsx create mode 100644 src/components/themed/ThemedTextInput.tsx create mode 100644 src/components/themed/ThemedView.tsx create mode 100644 src/context/AuthProvider.tsx create mode 100644 src/context/ThemeProvider.tsx create mode 100644 src/core/AppNavigator.tsx create mode 100644 src/core/theme.ts create mode 100644 src/hooks/useService.ts rename {hooks => src/hooks}/useSpotifyAuth.ts (94%) create mode 100644 src/model/User.ts rename {services => src/services}/RestService.ts (50%) create mode 100644 src/utils/secureStorage.ts diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..7296f7c --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,5 @@ +// https://docs.expo.dev/guides/using-eslint/ +module.exports = { + extends: 'expo', + ignorePatterns: ['/dist/*'], +}; diff --git a/App.tsx b/App.tsx new file mode 100644 index 0000000..340497d --- /dev/null +++ b/App.tsx @@ -0,0 +1,18 @@ +import React from "react"; +import {NavigationContainer} from "@react-navigation/native"; + +import {AuthProvider} from "@/src/context/AuthProvider"; +import {ThemeProvider} from "@/src/context/ThemeProvider"; +import AppNavigator from "@/src/core/AppNavigator"; + +export default function App() { + return ( + + + + + + + + ); +} diff --git a/app.json b/app.json index 1dc49c4..931c954 100644 --- a/app.json +++ b/app.json @@ -1,7 +1,7 @@ { "expo": { - "name": "matrix-frontend", - "slug": "matrix-frontend", + "name": "matrix", + "slug": "matrix", "version": "1.0.0", "orientation": "portrait", "icon": "./assets/images/icon.png", @@ -20,11 +20,10 @@ }, "web": { "bundler": "metro", - "output": "static", + "output": "server", "favicon": "./assets/images/favicon.png" }, "plugins": [ - "expo-router", [ "expo-splash-screen", { @@ -33,7 +32,8 @@ "resizeMode": "contain", "backgroundColor": "#ffffff" } - ] + ], + "expo-secure-store" ], "experiments": { "typedRoutes": true diff --git a/app/(tabs)/_layout.tsx b/app/(tabs)/_layout.tsx deleted file mode 100644 index 88ce1ff..0000000 --- a/app/(tabs)/_layout.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import {Tabs} from 'expo-router'; - -import Ionicons from '@expo/vector-icons/Ionicons'; - - -export default function TabLayout() { - return ( - - ( - - ), - }} - /> - ( - - ), - }} - /> - - ); -} diff --git a/app/(tabs)/about.tsx b/app/(tabs)/about.tsx deleted file mode 100644 index 294ef22..0000000 --- a/app/(tabs)/about.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import {StyleSheet, Text, View} from 'react-native'; -import React, {useState} from "react"; -import SpotifyAuthButton from "@/components/SpotifyAuthButton"; -import {Token} from "@/services/RestService"; - -export default function AboutScreen() { - const [token, setToken] = useState(null); - - const handleAuthSuccess = (token: Token) => { - setToken(token); - console.log('Erhaltener Authentifizierungscode:', token); - // Hier kannst du den Code weiterverwenden, um das Access Token zu erhalten - }; - - return ( - - About screen - Willkommen bei der Spotify Authentifizierung - - {token && Erhaltener Code: {token.access_token}} - - - - ); -} - -const styles = StyleSheet.create({ - container: { - flex: 1, - backgroundColor: '#25292e', - justifyContent: 'center', - alignItems: 'center', - }, - text: { - color: '#fff', - }, -}); diff --git a/app/(tabs)/index.tsx b/app/(tabs)/index.tsx deleted file mode 100644 index 0a6bc44..0000000 --- a/app/(tabs)/index.tsx +++ /dev/null @@ -1,65 +0,0 @@ -import {ActivityIndicator, StyleSheet, Text, View} from 'react-native'; -import Button from '@/components/Button'; -import ImageViewer from '@/components/ImageViewer'; -import * as ImagePicker from 'expo-image-picker'; -import {RestService} from '@/services/RestService'; -import useService from '@/hooks/useService'; - -const PlaceholderImage = require('@/assets/images/GarfieldCharakter.webp'); - -import * as WebBrowser from "expo-web-browser"; - -WebBrowser.maybeCompleteAuthSession(); - -export default function Index() { - const {data: usersData, loading: userLoading, error: userError} = useService(RestService.fetchAllUser); - - const pickImageAsync = async () => { - let result = await ImagePicker.launchImageLibraryAsync({ - mediaTypes: ['images'], - allowsEditing: true, - quality: 1, - }); - - if (!result.canceled) { - console.log(result); - } else { - alert('You did not select any image.'); - } - }; - - console.log(usersData); - return ( - - - - - - {userLoading && } - {userError && Error: {userError.message}} - {usersData && ( - - {usersData.users.map((item) => item.name).join('; ')} - - )} -