From 34a5bc882f58f208d837b805df9ce1ce401bb99e Mon Sep 17 00:00:00 2001 From: Roland <33993199+rolznz@users.noreply.github.com> Date: Fri, 31 Jan 2025 12:08:18 +0700 Subject: [PATCH] fix: new connection deeplink flow (#1009) * fix: use browser router in http mode * fix: update links to not use hash router * fix: add redirect from hash router url * fix: return nostrWalletConnectUrl in nwc connection success event and message * fix: include relay url and wallet pubkey in app created messages instead of full NWC url * chore: remove broken check --- api/api.go | 2 ++ api/models.go | 2 ++ frontend/src/App.tsx | 10 ++++++++-- frontend/src/components/SuggestedAppData.tsx | 8 ++++---- frontend/src/main.tsx | 19 +++++++++++++------ frontend/src/screens/apps/AppCreated.tsx | 15 +++++++++------ frontend/src/types.ts | 2 ++ 7 files changed, 40 insertions(+), 18 deletions(-) diff --git a/api/api.go b/api/api.go index 84e09d47b..77d4ac760 100644 --- a/api/api.go +++ b/api/api.go @@ -104,6 +104,8 @@ func (api *api) CreateApp(createAppRequest *CreateAppRequest) (*CreateAppRespons responseBody.Name = createAppRequest.Name responseBody.Pubkey = app.AppPubkey responseBody.PairingSecret = pairingSecretKey + responseBody.WalletPubkey = *app.WalletPubkey + responseBody.RelayUrl = relayUrl lightningAddress, err := api.albyOAuthSvc.GetLightningAddress() if err != nil { diff --git a/api/models.go b/api/models.go index 8f68613ce..f0d510ac9 100644 --- a/api/models.go +++ b/api/models.go @@ -153,6 +153,8 @@ type CreateAppResponse struct { PairingUri string `json:"pairingUri"` PairingSecret string `json:"pairingSecretKey"` Pubkey string `json:"pairingPublicKey"` + RelayUrl string `json:"relayUrl"` + WalletPubkey string `json:"walletPubkey"` Id uint `json:"id"` Name string `json:"name"` ReturnTo string `json:"returnTo"` diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index a6b4094eb..23f44e30b 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -1,4 +1,8 @@ -import { RouterProvider, createHashRouter } from "react-router-dom"; +import { + RouterProvider, + createBrowserRouter, + createHashRouter, +} from "react-router-dom"; import { ThemeProvider } from "src/components/ui/theme-provider"; @@ -6,8 +10,10 @@ import { Toaster } from "src/components/ui/toaster"; import { TouchProvider } from "src/components/ui/tooltip"; import { useInfo } from "src/hooks/useInfo"; import routes from "src/routes.tsx"; +import { isHttpMode } from "src/utils/isHttpMode"; -const router = createHashRouter(routes); +const createRouterFunc = isHttpMode() ? createBrowserRouter : createHashRouter; +const router = createRouterFunc(routes); function App() { const { data: info } = useInfo(); diff --git a/frontend/src/components/SuggestedAppData.tsx b/frontend/src/components/SuggestedAppData.tsx index acdc93948..0c695059b 100644 --- a/frontend/src/components/SuggestedAppData.tsx +++ b/frontend/src/components/SuggestedAppData.tsx @@ -429,7 +429,7 @@ export const suggestedApps: SuggestedApp[] = [