From 3452e47c94a55a525620c244f57edb9482989d1c Mon Sep 17 00:00:00 2001 From: MohamedBassem Date: Sat, 14 Sep 2024 20:32:16 +0100 Subject: feature(mobile): Add a page for testing connection to server --- apps/mobile/app/test-connection.tsx | 113 ++++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 apps/mobile/app/test-connection.tsx (limited to 'apps/mobile/app/test-connection.tsx') diff --git a/apps/mobile/app/test-connection.tsx b/apps/mobile/app/test-connection.tsx new file mode 100644 index 00000000..c269c55d --- /dev/null +++ b/apps/mobile/app/test-connection.tsx @@ -0,0 +1,113 @@ +import React from "react"; +import { Platform, Text, View } from "react-native"; +import * as Clipboard from "expo-clipboard"; +import { Button } from "@/components/ui/Button"; +import CustomSafeAreaView from "@/components/ui/CustomSafeAreaView"; +import { Input } from "@/components/ui/Input"; +import useAppSettings from "@/lib/settings"; +import { cn } from "@/lib/utils"; + +export default function TestConnection() { + const { settings, isLoading } = useAppSettings(); + const [text, setText] = React.useState(""); + const [randomId, setRandomId] = React.useState(Math.random()); + const [status, setStatus] = React.useState<"running" | "success" | "error">( + "running", + ); + + const appendText = (text: string) => { + setText((prev) => prev + (prev ? "\n\n" : "") + text); + }; + + React.useEffect(() => { + if (isLoading) { + return; + } + setStatus("running"); + appendText("Running connection test ..."); + function runTest() { + const request = new XMLHttpRequest(); + request.onreadystatechange = () => { + if (request.readyState !== 4) { + return; + } + + if (request.status === 0) { + appendText("Network connection failed: " + request.responseText); + setStatus("error"); + return; + } + + if (request.status !== 200) { + appendText("Recieve non success error code: " + request.status); + appendText("Got the following response:"); + appendText(request.responseText); + setStatus("error"); + } + if (request.status === 200) { + appendText("ALL GOOD"); + setStatus("success"); + } + }; + + appendText("Using address: " + settings.address); + request.open("GET", `${settings.address}`); + request.send(); + } + runTest(); + }, [settings.address, randomId]); + + return ( + + +