From e86f6a9cf0eb271abfc7cf53ec10ef372d52f0bd Mon Sep 17 00:00:00 2001 From: MohamedBassem Date: Sun, 17 Mar 2024 12:58:59 +0000 Subject: fix(mobile): Fix premature rendering of the app if the setting is not loaded --- apps/mobile/app/signin.tsx | 4 ++-- apps/mobile/lib/providers.tsx | 26 ++++++++++++++++++++++++-- 2 files changed, 26 insertions(+), 4 deletions(-) (limited to 'apps') diff --git a/apps/mobile/app/signin.tsx b/apps/mobile/app/signin.tsx index da7e2fea..07ab8e08 100644 --- a/apps/mobile/app/signin.tsx +++ b/apps/mobile/app/signin.tsx @@ -74,8 +74,8 @@ export default function Signin() { value={settings.address} autoCapitalize="none" keyboardType="url" - onEndEditing={(e) => - setSettings({ ...settings, address: e.nativeEvent.text }) + onChangeText={(e) => + setSettings({ ...settings, address: e }) } /> diff --git a/apps/mobile/lib/providers.tsx b/apps/mobile/lib/providers.tsx index 036e8ae2..38eaa99e 100644 --- a/apps/mobile/lib/providers.tsx +++ b/apps/mobile/lib/providers.tsx @@ -1,9 +1,11 @@ import { useEffect, useState } from "react"; +import FullPageSpinner from "@/components/ui/FullPageSpinner"; import { ToastProvider } from "@/components/ui/Toast"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { httpBatchLink } from "@trpc/client"; import superjson from "superjson"; +import type { Settings } from "./settings"; import useAppSettings, { getAppSettings } from "./settings"; import { api } from "./trpc"; @@ -26,8 +28,13 @@ function getTRPCClient(address: string) { }); } -export function Providers({ children }: { children: React.ReactNode }) { - const { settings } = useAppSettings(); +function TrpcProvider({ + children, + settings, +}: { + settings: Settings; + children: React.ReactNode; +}) { const [queryClient] = useState(() => new QueryClient()); const [trpcClient, setTrpcClient] = useState< @@ -50,3 +57,18 @@ export function Providers({ children }: { children: React.ReactNode }) { ); } + +export function Providers({ children }: { children: React.ReactNode }) { + const { settings, isLoading } = useAppSettings(); + + if (isLoading) { + // Don't render anything if the settings still hasn't been loaded + return ; + } + + return ( + + {children} + + ); +} -- cgit v1.2.3-70-g09d2