diff --git a/src/root.tsx b/src/root.tsx index 2749a7c..a6a687c 100644 --- a/src/root.tsx +++ b/src/root.tsx @@ -1,69 +1,22 @@ // @refresh reload -import { onCleanup, Suspense } from "solid-js"; +import { Suspense } from "solid-js"; import { Body, ErrorBoundary, - FileRoutes, Head, Html, Link, Meta, - Routes, Scripts, Title, - useNavigate } from "solid-start"; import "./root.css"; -import { App as CapacitorApp } from "@capacitor/app"; -import { Capacitor } from "@capacitor/core"; -import { ErrorDisplay, I18nProvider, Toaster } from "~/components"; +import { ErrorDisplay, I18nProvider } from "~/components"; import { Provider as MegaStoreProvider } from "~/state/megaStore"; - -function GlobalListeners() { - // listeners for native navigation handling - // Check if the platform is Android to handle back - if (Capacitor.getPlatform() === "android") { - const { remove } = CapacitorApp.addListener( - "backButton", - ({ canGoBack }) => { - if (!canGoBack) { - CapacitorApp.exitApp(); - } else { - window.history.back(); - } - } - ); - - // Ensure the listener is cleaned up when the component is destroyed - onCleanup(() => { - console.debug("cleaning up backButton listener"); - remove(); - }); - } - - // Handle app links on native platforms - if (Capacitor.isNativePlatform()) { - const navigate = useNavigate(); - const { remove } = CapacitorApp.addListener("appUrlOpen", (data) => { - const url = new URL(data.url); - const path = url.pathname; - const urlParams = new URLSearchParams(url.search); - - console.log(`Navigating to ${path}?${urlParams.toString()}`); - navigate(`${path}?${urlParams.toString()}`); - }); - - onCleanup(() => { - console.debug("cleaning up appUrlOpen listener"); - remove(); - }); - } - - return null; -} +import { Router } from "~/router"; export default function Root() { return ( @@ -126,11 +79,7 @@ export default function Root() { }> - - - - - + diff --git a/src/router.tsx b/src/router.tsx new file mode 100644 index 0000000..a9afccf --- /dev/null +++ b/src/router.tsx @@ -0,0 +1,74 @@ +// @refresh reload +import { Match, onCleanup, Switch } from "solid-js"; +import { FileRoutes, Routes, useNavigate } from "solid-start"; + +import "./root.css"; + +import { App as CapacitorApp } from "@capacitor/app"; +import { Capacitor } from "@capacitor/core"; + +import { SetupErrorDisplay, Toaster } from "~/components"; + +import { useMegaStore } from "./state/megaStore"; + +function GlobalListeners() { + // listeners for native navigation handling + // Check if the platform is Android to handle back + if (Capacitor.getPlatform() === "android") { + const { remove } = CapacitorApp.addListener( + "backButton", + ({ canGoBack }) => { + if (!canGoBack) { + CapacitorApp.exitApp(); + } else { + window.history.back(); + } + } + ); + + // Ensure the listener is cleaned up when the component is destroyed + onCleanup(() => { + console.debug("cleaning up backButton listener"); + remove(); + }); + } + + // Handle app links on native platforms + if (Capacitor.isNativePlatform()) { + const navigate = useNavigate(); + const { remove } = CapacitorApp.addListener("appUrlOpen", (data) => { + const url = new URL(data.url); + const path = url.pathname; + const urlParams = new URLSearchParams(url.search); + + console.log(`Navigating to ${path}?${urlParams.toString()}`); + navigate(`${path}?${urlParams.toString()}`); + }); + + onCleanup(() => { + console.debug("cleaning up appUrlOpen listener"); + remove(); + }); + } + + return null; +} + +export function Router() { + const [state, _] = useMegaStore(); + + return ( + + + + + + + + + + + + + ); +} diff --git a/src/routes/index.tsx b/src/routes/index.tsx index 6fe0e92..0f89d44 100644 --- a/src/routes/index.tsx +++ b/src/routes/index.tsx @@ -1,19 +1,105 @@ -import { Match, Switch } from "solid-js"; +import { Match, Show, Suspense, Switch } from "solid-js"; +import { A } from "solid-start"; -import { App, FullscreenLoader, SetupErrorDisplay } from "~/components"; +import settings from "~/assets/icons/settings.svg"; +import pixelLogo from "~/assets/mutiny-pixel-logo.png"; +import plusLogo from "~/assets/mutiny-plus-logo.png"; +import { + BalanceBox, + BetaWarningModal, + Card, + CombinedActivity, + DecryptDialog, + DefaultMain, + LoadingIndicator, + LoadingShimmer, + NavBar, + OnboardWarning, + PendingNwc, + ReloadPrompt, + SafeArea, + VStack +} from "~/components"; +import { useI18n } from "~/i18n/context"; +import { FeedbackLink } from "~/routes/Feedback"; import { useMegaStore } from "~/state/megaStore"; -export default function Home() { - const [state, _] = useMegaStore(); +export default function App() { + const i18n = useI18n(); + const [state, _actions] = useMegaStore(); return ( - }> - - - - - - - + + + + + + + + + + + + + + + + {state.mutiny_wallet?.get_network()} + + + + + + + + + + + + + + + + + + + + + + } + > + + + + + + + + + + + + + ); }