From 5fe330cd79be034e41f9c5181455e50e8c2fc5c1 Mon Sep 17 00:00:00 2001 From: MohamedBassem Date: Sun, 22 Sep 2024 02:17:43 +0100 Subject: feature(mobile): Allow users to login with API keys in the mobile app --- apps/mobile/app/_layout.tsx | 10 ++ apps/mobile/app/dashboard/_layout.tsx | 2 +- apps/mobile/app/index.tsx | 2 +- apps/mobile/app/server-address.tsx | 87 ++++++++++++++++ apps/mobile/app/signin.tsx | 188 +++++++++++++++++++++------------- 5 files changed, 214 insertions(+), 75 deletions(-) create mode 100644 apps/mobile/app/server-address.tsx diff --git a/apps/mobile/app/_layout.tsx b/apps/mobile/app/_layout.tsx index 677a0638..5eadad80 100644 --- a/apps/mobile/app/_layout.tsx +++ b/apps/mobile/app/_layout.tsx @@ -52,6 +52,16 @@ export default function RootLayout() { }} > + + { if (isLoggedIn !== undefined && !isLoggedIn) { - return router.replace("signin"); + return router.replace("server-address"); } }, [isLoggedIn]); diff --git a/apps/mobile/app/index.tsx b/apps/mobile/app/index.tsx index dbbea97e..702269a5 100644 --- a/apps/mobile/app/index.tsx +++ b/apps/mobile/app/index.tsx @@ -11,6 +11,6 @@ export default function App() { } else if (isLoggedIn) { return ; } else { - return ; + return ; } } diff --git a/apps/mobile/app/server-address.tsx b/apps/mobile/app/server-address.tsx new file mode 100644 index 00000000..c34806b3 --- /dev/null +++ b/apps/mobile/app/server-address.tsx @@ -0,0 +1,87 @@ +import { useState } from "react"; +import { + Keyboard, + KeyboardAvoidingView, + Platform, + Pressable, + Text, + TouchableWithoutFeedback, + View, +} from "react-native"; +import { Redirect, useRouter } from "expo-router"; +import Logo from "@/components/Logo"; +import { TailwindResolver } from "@/components/TailwindResolver"; +import { Button, buttonVariants } from "@/components/ui/Button"; +import { Input } from "@/components/ui/Input"; +import useAppSettings from "@/lib/settings"; +import { cn } from "@/lib/utils"; +import { Bug } from "lucide-react-native"; + +export default function ServerAddress() { + const router = useRouter(); + const { settings, setSettings } = useAppSettings(); + const [serverAddress, setServerAddress] = useState(settings.address); + + if (settings.apiKey) { + return ; + } + + return ( + + + + + ( + + )} + /> + + + Server Address + { + setServerAddress(e); + setSettings({ ...settings, address: e.replace(/\/$/, "") }); + }} + /> + + +